A website builder shaped like a note to a friend.
Most website builders try to make you feel like a designer. Drag this column, snap that grid, configure the breakpoint. The result is the same site every other indie owner ends up with: the template you almost-customized.
WriteOne takes the other path. You write about your work the way you'd write a note to a sharp friend: who you serve, what you charge, how it should feel. A site assembles around your words. You keep editing the same way: “raise my prices,” “add last week's testimonial,” “warmer.”
The point isn't magic. The point is that writing is already how you get clear about your business, and it turns out to be the right interface for the small, opinionated, voice-driven decisions a real site needs. No editor to learn, because the writing is the editor.
It started as a favor.
WriteOne started as a site I built for a friend who runs a coaching practice. He didn't want a template, didn't want Squarespace, didn't want to learn Webflow. He wanted to tell someone what to put on the page and have it appear.
The first version was a one-off: his content, his voice, my code. It worked, and other people kept asking for the same thing. So I rebuilt it as a product. The conversation stayed; the rest grew up around it.
Today WriteOne is one engineer, an AI editor that knows its way around your site, and a small but growing roster of owners shipping with it. If that's the kind of thing you want (honest, opinionated, made-by-a-human-for-other-humans), you might like it here.
Stack
What it's built on.
Honest stack: boring choices where it matters, modern where it earns its keep.
- Frontend
- Next.js 15 (App Router), React Server Components, Tailwind, hosted on Coolify.
- CMS
- Payload v3 with multi-tenancy, Postgres, Drizzle migrations.
- AI
- Vercel AI SDK with first-party providers for Anthropic, OpenAI, Google, and AWS Bedrock. Bring your own key, or use ours.
- Routing
- Cloudflare for SaaS Custom Hostnames for owner-supplied domains.
- Storage
- Garage S3-compatible object storage for the media library.
- Auth
- Clerk for owner sign-in. Tenant sites are public by default.
Curious enough to try?
Write your first draft free, or grab a slot and I'll walk you through it.