Skip to content

blogwright

Deploy static sites, single-page apps and server-rendered apps to AWS with one CLI. No CloudFormation, Terraform or CDK.

Static site

Astro, SvelteKit prerendered, or any pnpm build that writes HTML. Served from a private S3 bucket through CloudFront. Nothing extra to configure.

Single-page app

Add "spa": true. Unknown paths serve your index.html, so client-side routing works on refresh.

Server-rendered app

Add an ssr block. The build ships as a Lambda Web Function behind the same CloudFront distribution - Astro, SvelteKit, Nuxt, TanStack Start or Next.

Are you an agent? Start here!/llms.txt

Builds in a Lambda MicroVM

pnpm install && pnpm build runs in an isolated MicroVM. Only changed files upload, and only changed paths are invalidated.

PR previews and CI deploys

Static sites and SPAs get a subdomain per pull request. GitHub OIDC deploy roles mean CI never stores AWS keys.

Rollback and history

blogwright rollback <hash> re-deploys any earlier build. history, logs and status cover the rest.

Terminal window
pnpm add -D blogwright
pnpm exec blogwright init # first-run wizard - writes config/production.jsonc
pnpm exec blogwright bootstrap # create the infrastructure graph
pnpm exec blogwright deploy # build in a MicroVM and publish

The quickstart walks every step, and the configuration reference covers everything beyond the defaults. Reading by machine? Every page is Markdown - append .md to any URL, or start from /llms.txt.