Documentation
Everything, in 24 pages
Stoneware is small on purpose. If a page here feels long, that is a bug in the page rather than a sign of depth.
Source, issues and releases: stoneware-dev/stoneware-core
What it solves
The specific problems Stoneware exists for — and the ones it does not.
Quick start
Scaffold a project, run it, and understand what the two directories mean.
What gets generated
Every file create-stoneware writes, what it is for, and what a build adds.
How it works
The path a request takes, and what hydration does to the DOM.
Routing
File-based, Next.js-style conventions resolved by Bun's own router.
Islands
How a component earns its JavaScript, and what hydration actually does.
When islands hydrate
client:visible, client:idle and client:media — and what a page stops downloading.
Head and images
Per-page metadata, and an <Image> that fixes layout shift without a build pipeline.
SEO and sharing
One seo() call for search engines, every social network, and rich results.
Styling
Co-located CSS, collected by the build, with no import and no link tag to maintain.
Error pages
Custom 404 and 500 pages, and the three properties that hold whether or not you write them.
Error boundaries
Lose one subtree instead of the whole page, without losing the error.
Server actions
Form handling where CSRF verification is structural, not a decorator.
Middleware and APIs
One file that runs on every request, and what changed for API routes.
Databases
Where db.ts goes, where queries run, and the one place they must never.
Security defaults
What is on before you configure anything, and why it cannot be off by accident.
CLI and builds
Dev server, production build, and what each command actually emits.
Deploying
A checklist, one decision, and a walkthrough per platform — server or static, Vercel or Cloudflare.
Static export
Prerender the whole site to files any host can serve, and know exactly which pages cannot go.
Benchmark
The same 16-page site built in Stoneware, Astro and Next.js, measured.
What's new
0.1.7 — deployed sites keep their CSS, third parties get a policy that extends, the export checks its own links, and errors name the component.
v0.1.6
Error boundaries, a request hook, a request path about three times faster, and a dev server that stopped breaking itself.
v0.1.4 & v0.1.5
The two deploy releases — why a build would not run where it was not built.
Past releases
What shipped in 0.1.3 and 0.1.2, and what each change replaced.