Skip to content

docs: rewrite the web development guide#3224

Open
bartlomieju wants to merge 8 commits into
mainfrom
docs/web-dev-rewrite
Open

docs: rewrite the web development guide#3224
bartlomieju wants to merge 8 commits into
mainfrom
docs/web-dev-rewrite

Conversation

@bartlomieju

@bartlomieju bartlomieju commented Jun 11, 2026

Copy link
Copy Markdown
Member

This rewrites the web development guide so it actually guides, instead of
listing scaffold commands.

The page is structured around the three ways to build for the web with
Deno, introduced by a decision table so a reader can route themselves: no
framework, a Deno-native framework, or an npm framework.

The "start without a framework" section leads with a real, verified server
(an HTML page, a JSON API route, and static files in about twenty lines)
built on Deno.serve with standard Request/Response. It shows minimal
permissions (--allow-net --allow-read, only what it touches) and then
points to the HTTP server guide for routing, streaming, WebSockets, and the
rest. Hono and Oak live here as the lightweight-router step up, which this
page owns (the HTTP server guide links here).

Fresh and Lume stay as full Deno-native sections, since they are genuinely
different (no package.json, config in deno.json/_config.ts).

The npm frameworks are no longer six near-identical sections. They collapse
into one explanation of the shared pattern (scaffold with -A, deno install to create node_modules, run with deno task) plus a
verified-command table. Folding them into a table makes room to cover more
frameworks without bulk: alongside Next.js, Astro, Vite, and Docusaurus, the
table now includes SvelteKit and Nuxt, both freshly scaffolded under Deno to
confirm the command and the resulting project shape (Nuxt's generator even
lists Deno as a package manager). Per-framework caveats (Vite templates,
Astro's install wizard, Docusaurus --skip-install, the interactive
SvelteKit and Nuxt prompts) are kept as short notes.

The built-in-server snippet and all six framework setups were executed
under Deno before being documented. URL and redirect entries are unchanged.

Restore last_modified (the site renders it as the visible last-updated
date), pass the project name to create-astro so the cd that follows is
guaranteed to match, and add a deno install step to the Docusaurus
section so the scaffold works on machines without npm.
Pass the directory to @fresh/init so the cd that follows matches (same
fix as Astro), and add --skip-install to create-docusaurus so the
generator does not invoke npm itself; deno install handles it.
Comment thread runtime/fundamentals/web_dev.md Outdated
Comment on lines +18 to +20
Servers you write yourself need far less, and the
[no-framework section](#without-a-framework) shows what minimal permissions look
like in practice.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a note that if user doesn't want to grant all permission they can run without a flag and answer interactive prompts

The page was a scaffolding catalog: six framework sections, four of them
the same 'it's an npm project, run deno install' paragraph, with all the
actual web-development content linked out to other pages.

Give it a spine instead. Lead with a decision table (no framework /
Deno-native / npm) so readers can self-route. Add a 'start without a
framework' section with a real, verified ~20-line server (HTML page, JSON
route, static files) that earns the page's title, then points to the HTTP
server guide for depth. Keep Fresh and Lume as full Deno-native sections.
Collapse the four near-identical npm-framework sections into one shared
'how npm frameworks work under Deno' explanation plus a verified-command
table, which also lets the table cover SvelteKit and Nuxt (both newly
verified to scaffold and run under Deno) without adding bulk.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant