docs: split Get Started into two deployment targets - #817
Merged
Conversation
Webiny now has two deployment targets rather than two products or editions. The quickstart becomes a chooser and the target-specific instructions move into nested pages. - `/get-started/quickstart` keeps its URL and becomes a short chooser. It holds the inbound links, the three vercel.json redirects that point at it, and the accumulated search ranking, so nothing was redirected away. - New `/get-started/quickstart/standalone` for Webiny Standalone, with the alpha constraint above the install command. - New `/get-started/quickstart/aws` holding the former quickstart body. Heading text is preserved verbatim so the old anchors resolve there. - New `/get-started/deployment-targets` carrying the comparison, cost shape and Standalone's current gaps. - New `<TargetCards>` / `<TargetCard>` MDX components. No card or chooser component existed in the repo. - `StandaloneVersionNotice` removed. It collected emails for the non-AWS version, which now exists. - Scoping notes added to Local Development and Deploy Webiny, which are AWS-only, and the flat "Webiny requires AWS" claim in the architecture overview corrected. Corrects three prerequisites that were wrong against the published CLI: Node 24 rather than 22, and Yarn 1.22.21 / 3 rather than 1.22.0 / 2. All three are enforced by @webiny/system-requirements in 6.4.8 today. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Resolves the open question. Extensions and customisations are fully portable between the two targets; webiny.config.tsx needs only a few lines changed in its Infra declarations; a migration script for moving content between instances is planned. This scopes "disposable" to content created in the Admin panel rather than to the whole project, which is the difference between the alpha reading as a dead end and reading as a usable head start. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The "self-hosted / server" versus "Standalone" mismatch is known and will be polished later, so the page maps the two in one sentence rather than presenting the CLI's wording as out of date. The prompt text stays quoted verbatim, since readers need it to pick the right option. Also records in both .ai.txt files that all six deviations from the original brief were confirmed, so they are not re-litigated on the next pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`yarn webiny watch` with no `api`, `admin`, or `-p` argument starts nothing and prints a warning. This holds on both deployment targets: cli-aws warns "No watch processes were started", cli-server warns "Watching all apps at once is not supported yet". - cli/watch.mdx states the requirement and that watching both apps at once is not supported yet - build-with-ai/ai-assisted-development.mdx had two bare `yarn webiny watch` examples that would not have worked Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Splits the Get Started section along the two deployment targets. The quickstart URL is preserved and becomes a chooser; the target-specific instructions move into nested pages.
Pages
/get-started/quickstartid./get-started/quickstart/standalone/get-started/quickstart/aws/get-started/deployment-targetsNothing was redirected away from
/get-started/quickstart, so the inbound links, the threevercel.jsonredirects that target it (/,/docs,/docs/webiny/introduction) and the search ranking all stay put. No new redirects were needed, since every changed page either keeps its URL or is new.Also in this PR: a new
<TargetCards>/<TargetCard>component (none existed), removal ofStandaloneVersionNotice, the sidebar reordering, and scoping notes on the pages that turned out to be AWS-only.Anchor links that will break
Four anchors on
/get-started/quickstartstop resolving:#prerequisites,#create-a-new-project,#deploy-your-project,#access-the-admin-panel.This cannot be fixed with a redirect. A URL fragment is never sent to the server, so Vercel cannot match on one. All seven existing anchor redirects in
vercel.jsonput the anchor in the destination only, which is a different thing. Vercel'shas/missingconditions match headers, cookies and query params, not fragments.What I did instead: the heading text on
/get-started/quickstart/awsis preserved verbatim, so all four anchors resolve on that page. Anyone landing on the chooser with a stale fragment gets a valid page with no scroll target rather than a 404. If that is not good enough, the only remaining option is a small client-sideuseEffecton the chooser that maps known legacy hashes to the AWS page. Say the word and I will add it.Code portability: resolved
The open question is answered, and the copy now states it.
Extensions and customisations users write are fully portable between the two targets.
webiny.config.tsxis not portable as-is, but the change is small and confined to theInfradeclarations. Content does not move yet; a migration script for moving content between instances is planned, with no date attached.That changes the risk callout materially, as expected. "Disposable" is now scoped to content created in the Admin panel rather than to the whole project, so the alpha reads as a usable head start instead of a dead end:
Four other places were updated to match: the chooser's Standalone paragraph, the "Moving Between Targets" section on the comparison page (which now leads with code portability before the content warning), the gap list entry, and "Still to Come", which names the migration script rather than generic tooling. Both
.ai.txtfiles record the answer and the reasoning, so this does not get re-litigated.Findings that contradict the brief: all confirmed
Six things I could not write as specified, because the published code said otherwise. All six were put to Sven and confirmed, so the pages describe reality and nothing here is outstanding. Verified against
create-webiny-project@6.6.0-alpha.0and the localwebiny-jscheckout.1. Standalone is not in the stable release.
create-webiny-project@latestis 6.4.8 and contains no server code at all: no hosting-type prompt, no server templates. Standalone exists only under thealphatag (6.6.0-alpha.0). Confirmed. The page pins that version explicitly, and will need updating when a newer alpha ships.2.
yarn webiny watchon its own does not work.WatchCommandbails with "Watching all apps at once is not supported yet. Run them separately". The page documentsyarn webiny watch apiandyarn webiny watch adminin two terminals. Confirmed, and a single command is planned, so the page says "not supported yet". Two smaller CLI messaging bugs remain worth filing, since they mislead users today: the scaffolded template's own comment says "Run it withyarn webiny watch", and the warning text nameswebiny-server, a monorepo-only bin that does not exist in a scaffolded project.3. Node 24, not 22.
@webiny/system-requirementspinsnode: ">=24"in both 6.4.8 and 6.6.0-alpha.0, the scaffoldedpackage.jsonsetsengines.node: "^24.0.0", andensureSystemRequirements()runs as the first action increate-webiny-project. The existing quickstart's "Node.js ≥22" was already wrong for the shipped CLI, so I corrected it on the AWS page too. Yarn was wrong the same way: the enforced constraint is>=1.22.21 || >=3, not "1.22.0 or later" and "Yarn ≥2".4. There is a database prompt on Standalone. The brief said to omit database selection because Standalone is SQLite-only. The CLI prompts between "SQLite (single-file local database)" and "PostgreSQL (connect to a Postgres server)", and both templates ship in the published alpha. Omitting it would strand the reader at a live prompt, so it gets one short inline paragraph rather than its own section, including the sentence you wanted about the contrast with AWS permanence. Postgres is therefore described as already available rather than coming.
5. The CLI does not say "Standalone". Its prompt reads
Self-hosted / server (Node HTTP server + SQL storage) — ALPHA, the value isserver, the env var isWEBINY_HOSTING_TYPE. Renaming the CLI was out of scope, so the page quotes the prompt text verbatim and states that it is the same thing. Confirmed as a known mismatch to be polished later, so the page maps the two names in one neutral sentence rather than presenting the CLI wording as out of date. The prompt text stays quoted verbatim, since readers need it to pick the right option.6. Multi-tenancy is not a target difference. It is gated by the
multiTenancylicence feature flag (FeatureFlag.CanUseMultiTenancy) andapi-core-sqlcarries a fulltenancymodule, so tenant scoping is in the storage layer of both targets. Presenting it as a target difference would entangle the Community/Business axis with this one, which the brief itself rules out, so the comparison page states plainly that it is a licence feature. The AWS card still says "multi-tenant" as drafted, which is true of AWS. I have not verified multi-tenancy end to end on Standalone in alpha.One smaller nuance:
@webiny/cli-serverdoes expose aservecommand, described in its own help text as "Serves built apps as long-running servers (production)". Since no image, template or deployment path is published, the pages do not present it as a way to deploy, and the "no supported way to deploy" callout stands as written. Flagging it because it sits slightly awkwardly against that sentence.Search behaviour under SQLite, since you asked
Verified, and it differs from OpenSearch in a way worth documenting.
listEntriespushes onlytenant,modelId,isLatest/isPublishedandwbyDeleteddown to SQL. Every field filter, the search term, sorting and pagination are applied in Node memory after the rows load (MAX_LIST_LIMITis 1,000,000). The search term is split on whitespace, and every word must appear as a case-insensitive substring within a single field value. No stemming, no relevance ranking, no fuzzy matching.This is the same code path the DynamoDB-only AWS setup uses (
@webiny/api-headless-cms-storage). Only DynamoDB + OpenSearch is index-backed. Stating the equivalence is more useful than describing SQLite in isolation, so both new pages do that.Scoping: Local Development and Deploy Webiny
Both are AWS-only end to end, as suspected. Each now carries an "Applies to the AWS target" note pointing at the Standalone page, and nothing else was rewritten in this pass.
get-started/local-development.mdx: "Webiny runs on AWS, but you develop locally", and the wholewatchmodel depends on deployed infrastructure. Its Quickstart link now points at the AWS page, since it tells the reader their project is already deployed.get-started/deploy-webiny.mdx: "Webiny deploys three applications to AWS", plus environments anddestroy, none of which exist on Standalone.core-concepts/local-development.mdxhas the same problem and was not in the brief. It got the same note.core-concepts/architecture.mdx(a hidden page) claimed "Webiny requires AWS (on-premises not supported)" and listed "Quick Prototypes" as a poor fit because "initial setup requires AWS account and deployment". Both are now wrong in a way that matters, so they are corrected. Standalone is arguably the best answer for quick prototypes now.These two genuinely need rewriting rather than annotating, but that is a separate pass.
webiny watchrequires an app argument, everywhereConfirmed that
yarn webiny watchmust always nameapioradminat this point, so I swept the rest of 6.x for the bare form. It is enforced on both targets:cli-awswarns "No watch processes were started. Please ensure that you have specified valid "app" or "package" parameters", andcli-serverwarns "Watching all apps at once is not supported yet".Two pages outside the Get Started section were showing a command that does nothing:
build-with-ai/ai-assisted-development.mdxhad two bareyarn webiny watchexamples, in the workflow list and the closing checklist. Both now name an app.cli/watch.mdx, the canonical reference, showed only the correct forms but never stated the rule. It now says so explicitly, and notes that watching both apps at once is not supported yet.Everything else in 6.x already specified an app.
cli/watch.ai.txtrecords the requirement, both CLI warning strings, and a note to revisit when the single-command form lands.This is slightly outside the brief's scope, but it was a documented command that could not work, on the exact point being confirmed.
Repo notes
AGENTS.mdsays docs live indocs/developer-docs/6.0.x/; the tree is6.x. It also listsget-started/install-webiny.mdxandoverview/pricing.mdxas validation exceptions, neither of which exists in 6.x, and says "no shell/bash code blocks" while every Get Started page uses them. Worth a tidy-up.yarn validate:mdxalready fails on master: 12 missing.ai.txtand 3 orphaned. This PR adds companions for all four pages it touches, which takes the missing count from 12 to 11. The rest is pre-existing.yarn generatealready fails on master on 10 files with broken/reference/api/...links. None of them is a file this PR touches, and no link on the new pages is flagged.yarn format:checkbaseline is unchanged at 43 files.yarn lintproduces only pre-existing warnings.Verification
yarn build:nextpasses with all four routes statically prerendered. Served the production build and confirmed: both cards render in the right order with correcthrefsand the Alpha pill; the comparison table renders with 12 dimension rows; the sidebar reads Quickstart, Run Webiny Locally, Deploy to AWS, Deployment Targets, Connect Your AI Environment, First Customization, Local Development, Deploy Webiny, Upgrade to Business.One bug caught and fixed during that check: a blank line followed by indented text inside the card JSX was parsed by MDX as an indented code block, so the second line of each card rendered through
<Editor>as a code snippet.TargetCardnow takes anoteprop, and the component carries a comment so the trap is not re-set later.🤖 Generated with Claude Code