Why we built WriteKit
Blogging platforms got it wrong. We're fixing that. True ownership, zero lock-in, built for developers who ship.
I’ve been blogging for over a decade. Built sites with Hugo, rolled my own from scratch, tried Ghost, WordPress, Medium, Hashnode, and Dev.to. They all fall short in the same frustrating ways.
The problem with existing platforms
| Platform | Monthly Active Users | The Catch |
|---|---|---|
| Medium | 100M+ readers | They paywall your content, own your audience |
| Dev.to | 8.8M developers | Your content lives on their subdomain |
| Hashnode | 1M+ users | Better, but still platform-dependent |
| Ghost | 3M+ sites | Node.js + MySQL = heavy infrastructure |
Medium treats your content like their content. In 2017, they pivoted to a metered paywall system—suddenly readers hit a wall on your articles. They’ve changed monetization rules three times since then.
Hashnode and Dev.to are better—they’re built for developers. But they’re still platforms that own your distribution. Your SEO juice flows to their domain, not yours.
Ghost is legitimately good software. But it requires:1
- Node.js 18+ runtime
- MySQL 8.0 database
- 1GB RAM minimum (2GB recommended)
- A server to maintain
For a personal blog? That’s infrastructure overhead most developers don’t want to manage.
Static site generators (Hugo, Eleventy, Jekyll) solve the ownership problem, but the moment you want dynamic features, you’re assembling a Frankenstein:
- Disqus for comments (loads 2MB+ of JavaScript)
- Mailchimp for newsletters ($20/mo at 500 subscribers)
- Google Analytics (privacy nightmare)
- Cloudinary for images
- Algolia for search
Each service requires separate accounts, APIs, billing, and maintenance.
What developers actually need
After years of frustration, I compiled what I actually wanted:
- Write in markdown—not a WYSIWYG that mangles code blocks
- Own my data—my posts, my database, export anytime
- Analytics that don’t suck—know what resonates without tracking pixels
- Comments that work—without embedding third-party scripts
- Newsletter built-in—no integration hell
- Fast by default—not “fast if you configure it right”
- API access—because I’m a developer
The SQLite insight
The architecture clicked when I started thinking differently about multi-tenancy.
Traditional SaaS puts everyone in one database with a tenant_id column. Your data sits next to everyone else’s. A bug could leak data. Exports require complex queries. You’re trusting the platform completely.
What if every blog was its own SQLite database? Not a row—an actual file that belongs to you.
/data/tenants/
├── your-blog.db # Your entire blog: posts, comments, analytics
├── another-blog.db
└── third-blog.db
You could literally download your entire blog and run it locally. That’s true ownership—not “we’ll email you a JSON export eventually.”
The technical bet
We built WriteKit on boring, proven technology:
- Go
- Compiles to a single binary. No runtime dependencies. Handles thousands of concurrent connections with minimal memory. Used by Cloudflare, Docker, and Kubernetes.
- SQLite
- 35+ years of development. Trillion-dollar companies trust it. The most deployed database in the world—literally on every smartphone.2
- React
- Only where it matters. The blog reader is server-rendered HTML. The admin dashboard is a SPA because editors need real-time feedback.
This stack means:
- Cold start: 0ms (no serverless spin-up)
- Memory per tenant: ~2MB idle
- Page response: <50ms average
Built for developers who ship
WriteKit isn’t trying to be everything to everyone. It’s built for developers who:
- Write technical content and care about code formatting
- Want to understand their audience without surveillance capitalism
- Value owning their data over platform convenience
- Ship consistently and need tools that stay out of the way
We’re not building the next Medium. We’re building the blogging tool we wished existed.
If you’ve felt the same frustrations, try the demo. Fifteen minutes is all it takes to see if this is what you’ve been looking for.
Own your words. Own your blog.
-
Ghost system requirements from their official documentation as of January 2025. ↩︎
-
SQLite is used on billions of devices. See sqlite.org/mostdeployed.html ↩︎