Booting the blog
$ ./boot.sh
[ ok ] mounting markdown...
[ ok ] rendering static html...
[ ok ] syncing to s3...
[ ok ] invalidating cloudfront...
ready.
Welcome to the first post. This blog is intentionally boring infrastructure: markdown files in a git repo, compiled to static HTML by a small Node script, served from S3 behind CloudFront. No servers, no database, no runtime.
How a post becomes a page
- I write a
.mdfile incontent/posts/. build.jsparses the frontmatter and renders the body to HTML.- The output lands in
dist/posts/<slug>/index.html. - A push to
maintriggers GitHub Actions, which syncsdist/to S3 and invalidates the CDN cache.
Why serverless
- Costs cents per month.
- Scales to zero when nobody’s reading.
- Nothing to patch at 3am.
The best server is the one you don’t run.
More soon.