← All posts
Dev

Introducing Scaffy: a headless CMS that costs cents to run

Jun 14, 2026 · 2 min read · by Henners
A scaffy.config.ts file defining a content schema in TypeScript

I'm starting something new, and this is me planting a flag before I talk myself out of it. It's called Scaffy, and it's a headless CMS built for the kind of sites I keep making: small, mostly static, and updated once in a blue moon.

Those sites sit in an awkward middle. A hosted CMS wants a monthly subscription to manage a handful of pages. Self-hosting a traditional one means babysitting a server that sits idle most of the time. For a brochure site or a blog that changes twice a year, both feel like too much.

The core idea

Scaffy is serverless and developer-first. You deploy it to your own AWS account, define your content schemas in TypeScript, and deploy once. Out the other side you get an admin UI to edit content and an API to read it from. No subscription, no server to keep alive, and a cost target of under a dollar a month for a low-traffic site.

// scaffy.config.ts
export default defineConfig({
  schemas: {
    post: defineSchema({
      title: field.text(),
      body: field.richText(),
      published: field.boolean(),
    }),
  },
})

That config is most of the pitch. Your schema is the source of truth, your data lives in your own account, and the whole thing scales to zero when nobody is using it. It's MIT licensed, so you actually own it.

What's next

This is an announcement, not a launch. It's early, and there's a lot of build ahead. I'll be writing about it here as it comes together: the architecture, the AWS plumbing, and the decisions I get right and wrong along the way. More to come.