DEV Community

slick phantom
slick phantom

Posted on

I got tired or rewriting the same blog backend so I created a solution

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
Enter fullscreen mode Exit fullscreen mode

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)