Write posts in Markdown. Push to GitHub. Pressbin syncs them in seconds — no Node, PHP, or Docker on the server. From zero to a live blog in under 30 minutes.
How it works
No admin panel to log into. No deploy script to run. Git is your CMS.
Create .md files in your GitHub repo with front matter for title, date, and tags.
Commit posts or images. A GitHub Action runs on every push to main that touches posts/ or assets/images/.
The Action runs pressbin-sync against your instance (Bearer sync key). SQLite updates. Content is live.
Every page read is a single SQLite query. No rendering, no cache warming, no wait.
Features
The entire engine — web server, API, templates — ships as one executable. Copy it to your server and run.
No separate database server. Embedded SQLite file with FTS5 full-text search. WAL mode for fast writes.
Separate admin and sync keys — admin manages the site, sync publishes from GitHub. Strict roles, bcrypt hashed, no overlap.
SQLite FTS5 powers instant search across all your posts. No Elasticsearch, no Algolia, no extra cost.
Tag your posts in front matter. Filter by tag. RSS feed at /feed.xml built in out of the box.
Admin API for posts, keys, and settings; sync API for GitHub publishing. Build your own dashboard, CLI, or tooling on top.
Comparison
| Feature | Pressbin | WordPress | Ghost | Hugo (static) |
|---|---|---|---|---|
| Single binary deploy | ✓ | ✗ | ✗ | ✗ |
| No server dependencies | ✓ | ✗ PHP + MySQL | ✗ Node + MySQL | ✓ |
| Git push to publish | ✓ | ✗ | ✗ | ✓ |
| Dynamic full-text search | ✓ | ✓ | ✓ | ✗ |
| REST API for custom UIs | ✓ | ✓ | ✓ | ✗ |
| No exposed admin panel | ✓ | ✗ | ✗ | ✓ |
| Sub-millisecond response | ✓ | ✗ | ✗ | ✓ |
Run the installer, add the GitHub Action, push a Markdown file. No root, no systemd.
See install command