File 06 / 06
Gridframe.
A headless CMS with a spreadsheet soul — content modeling marketers actually enjoy.
Year
2022
Role
Engineer
Timeline
4 months
Status
Side project
Stack
01 — Overview
Gridframe treats content like a spreadsheet that grew a conscience — columns with types, rows with workflows, and an API your frontend actually enjoys consuming. Built in Rust for the speed your marketing team will never notice but your bill will.
02 — The challenge
Marketers live in spreadsheets; CMSs live in rigid content-type forms. Every project paid the same tax: engineers modeling content, then re-modeling it, while the marketing team waited and the spreadsheet-of-truth diverged from production.
03 — Approach
- Built the core in Rust with Postgres as the store — column-typed content models with spreadsheet-grade keyboard interaction
- Exposed everything through a GraphQL layer whose schema updates live as models change, with typed migrations not vibes
- Added workflow states per row — draft, review, scheduled, live — so process lives in the data, not in meetings
- Kept the whole thing headless and self-hostable: one binary, one database, no vendor dashboard required
04 — The outcome
Gridframe powers content for a handful of sites including my own. It remains my favorite proof that choosing boring, fast primitives — Rust, Postgres, one binary — is a feature users can feel.