Your blog. Your domain.
Your git repo.

Write from a terminal or browser. Publish to a custom domain in one click. GitHub is the database.

download cli

live in 60 seconds

Connect a GitHub repo, point your domain, done. No build configs, no YAML graveyard, no dashboards to babysit.

write from anywhere

Draft in Vim at 2am. Edit in the browser on your phone. Paste from Cursor. It's all the same markdown files in the same repo — pick your weapon.

open source, forever yours

MIT licensed and fully open source. No lock-in, no export button, no migration dread. The repo is the blog — delete essay.sh tomorrow and your writing is still sitting in main.

Two ways to ship. Same git history.

terminal

$ essay new "why I left substack"

  → drafts/why-i-left-substack.md

$ essay publish

committed to main

live at tim.essay.sh/why-i-left-substack

  ⧖ 3.2s

For when you're already in the shell and don't want to leave.

tim.essay.sh/new

markdown

# Why I left substack

After three years and 4,000

subscribers, I decided...

The thing about platforms

is that they own the...

preview

Why I left substack

After three years and 4,000 subscribers, I decided...

The thing about platforms is that they own the...

draft · unsaved

For when you're on the couch, at the coffee shop, or explaining the product to someone who doesn't own a terminal.

Both hit the same repo. Both are just git.

Built for developers who write, writers who code, and anyone tired of their blog being held hostage by a CMS.

Your next post is one commit away.

Free while in beta. No credit card, no “book a demo.”