Our story
Site A started as a small project that needed a fast site and a way for one person to keep shipping content without the weight of a CMS. It became the platform other teams in the portfolio asked us to put their sites on.
The thesis hasn’t changed: marketing sites are publishing systems. They are read by humans and indexed by language models, and both audiences punish slow, cluttered pages. The system we built rewards typing the words, sketching the layout, and getting out of the way.
What we build
Multi-site marketing platforms with shared design systems, content collections, and AI-assisted authoring. Each site sits behind the same templates and tokens; brand differentiation is a token file, not a fork.
The repo is open in the sense that any of the engineers on the team can open the files, change a paragraph, and ship the result through the same review pipeline a code change would take. There is no “CMS” in the org chart, and there is no CMS budget to defend.
How a typical engagement runs
We start with a one-week token + content-model sprint: brand palette in OKLCH, type scale, the four or five content types you actually need. Then four to eight weeks of build, with working preview URLs from week one. After launch we stay on retainer for the first quarter so the editorial cadence has a backstop while the team gets used to the workflow.
Where we’re going
The roadmap focuses on what we can’t buy off the shelf: better authoring affordances for AI agents, deeper structured-data coverage so the sites surface well in answer engines, and tighter measurement so we can prove the polish is paying off in pipeline.
How we work
Speed is content
A page that loads in 600ms outperforms one that loads in 1.6s before either has rendered a single word. We treat performance as a feature, not a follow-up.
Schemas before content
Frontmatter is validated by Zod at build time. The first time a content type ships is the moment we know exactly what fields it has, forever.
AI-first authoring
Files in git, prose in Markdown/MDX, components on an allowlist. The platform is shaped to be edited by an AI agent at human speed without breaking guard rails.
Self-hosted by default
Coolify on our hardware, GitHub Actions for CI, Pagefind for search. No vendor lock-in we can't reverse with a one-file change.
Polish is non-negotiable
Lighthouse 95+/100/95+/100. WCAG AA, real motion, real focus rings, real copy. The visible polish is the part of the site users actually feel.
Reversibility matters
Every vendor in the stack — HubSpot, GlitchTip, Coolify — sits behind a single file we can swap. We document irreversible commitments in the architecture log so future-us knows what's load-bearing.
Four engineers and writers, one shipping cadence.
We sit close to the work and rotate roles. The same person who wrote the schema is usually the one writing the launch post — there isn't a content team, an engineering team, and a handoff between them.
Building something similar?
We pick a few engagements each quarter. Tell us what you're working on — even a half-formed brief is enough to start.