OhhWells Starter Template
A minimal base for every vibe-coded site.
Clean structure, content-driven architecture, and a brand layer ready for any client. Swap colors, fonts, and copy — nothing else changes.
Vibe coding workflow
Content in one place. Components stay pure.
All copy lives in /content. Sections accept typed props only. Brand tokens drive visuals through CSS variables.
Typed props only
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos.
Brand controls visuals
Colors and fonts are CSS variables from brand.ts — change them once, the whole UI updates.
Ownership model
Developers own code. Platform owns data. Handoffs stay clean.
What's included
Every layer, already built.
Six core conventions that make every OhhWells site consistent, editable, and fast to launch.
Brand Layer
All visual tokens — colors, fonts, spacing — live in brand.ts. One file controls the entire look of the site.
Content Convention
Content lives in typed TS objects. Components receive data via props. The OhhWells Content API can override any field.
Ownership Model
Developers own the template structure. Clients own the data. Clean handoff, zero conflicts.
App Router
Built on Next.js App Router with server components, typed metadata, and SEO utilities baked in.
Typed Everywhere
Every content shape has an interface in types/content.ts. Catch errors at build time, not in production.
Deploy Ready
Sitemap, robots.txt, OG images, 404, error pages. Configured out of the box for Vercel or any host.
About this template
Built once. Customised forever.
The OhhWells starter is a neutral canvas — no opinionated colors, no industry-specific imagery. It gives you the architecture: brand tokens, content conventions, typed props, and App Router scaffolding.
From here, every site fork gets a unique brand, real photography, and genuine copy — all while staying compatible with the OhhWells editor.
Testimonials
Builders who rely on it.
“The content convention means I can hand off to any client knowing they won't accidentally break the layout.”
“Switching brand tokens takes two minutes. I've launched five client sites from this base in a month.”
“TypeScript interfaces on every content shape means zero runtime surprises. It just works.”
Ready to build
Fork it. Brand it. Ship it.
The base template is your starting point. Every client gets a unique skin on top of the same solid architecture.