Inkwell v0.1 — A lightweight, binary-compiled blog engine for developers who just want to ship.
The Problem
A client asked me to build a blog site. Cool. Built it.
Another client asked. Same thing. Built it again.
Third time? I caught myself writing the same create/post/delete/admin logic from scratch. Again.
I thought: There has to be a better way.
The Search
I went looking. Surely someone has solved this.
Found some stuff on GitHub. Looked promising until I dug deeper.
Good features? Locked behind paywalls.
Blog engine shouldn't be paid for.
So I decided to build one myself.
The Build
I needed something:
- Compiled to binary — runs anywhere, no dependencies
- Fast — no slow interpreted stuff
- No bloat — does one thing well
Started with Go. Made sense. But I was still learning and progress was slow.
Switched to Dart. Things clicked. Built the core logic. Struggled through some parts. Learned a ton. Kept going.
Introducing Inkwell v0.1
It's basic. It's buggy. It works.
curl -sSL "https://gitlab.com/dart.co/inkwell/-/raw/main/install.sh" | bash
./inkwell
First run generates an admin token. Save it. Use it for X-API-KEY headers.
What It Does
For readers:
- GET /posts — list all blog posts (reads from posts/ folder)
- GET /posts/:slug — get a single post as markdown
- GET /search?q=query — search posts by filename and content
- GET /feed.xml — RSS feed
For you (admin):
- POST /admin/posts — create new post
- PUT /admin/posts/:slug — update post
- DELETE /admin/posts/:slug — delete post
All admin endpoints need your X-API-KEY.
How It Works
send posts to the create endpoint or read the Readme
The API reads them, serves them, searches them. No database. No config. No paywall.
The Current State
v0.1 is a prototype. I'll be honest:
- ✅ Core features work (create, read, search, RSS)
- ⚠️ Storage is just files (not fully safe, but lightweight) -🐛 It's buggy in places
- 🔧 Better storage solution coming in future versions
But for a solo dev who just wants to blog without the bloat? It gets the job done.
What's Next
- Fix the bugs (help welcome!)
- Find a better storage solution (keeping it lightweight)
- Stable v1
Try It
git
Star it if you like the idea. Open issues if you find bugs. PRs if you want to help.
Or just use it and tell me what sucks. I can take it.
Built because rewriting the same code three times is two times too many.
Top comments (0)