Self-hosted read-later and bookmark manager. Every page you save gets archived locally as a single self-contained HTML file, so nothing disappears when sites go down.
You save a link. Markeep fetches the page, inlines all CSS, fonts, and images into a single HTML file, and stores it locally. The original site can go down, change, or paywalled -- your copy stays intact and renders correctly.
On top of that: full-text search, a reader mode that strips page clutter, highlights, a reading queue, RSS feeds, link rot detection, and Obsidian export.
No accounts. No cloud. One binary.
| Full-page archiving | CSS, fonts, and images inlined at save time -- works offline |
| Reader mode | Clean article view, stripped of ads and navigation |
| Full-text search | Searches titles, descriptions, and article content |
| Reading queue | Triage links into Inbox, Up Next, or Someday |
| Link rot detection | Flags dead links and links to the Wayback Machine snapshot |
| Highlights | Select and save text passages in Reader mode |
| Snooze | Hide a link until a specific date |
| RSS feeds | Subscribe to feeds, new articles saved automatically |
| Bookmarklet | Save any page in one click from any browser |
| Import / export | Netscape HTML, JSON, CSV, Markdown (Obsidian-compatible) |
| API | REST API with key-based auth |
| Dark mode | System preference detected, toggle in UI |
git clone https://github.com/phlx0/markeep
cd markeep
docker compose up -dOpen http://localhost:3000.
Requirements: Go 1.21+, Node 20+
make build
./bin/markeep# Terminal 1 -- API on :3000
make dev/backend
# Terminal 2 -- Vite on :5173
make dev/frontend| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
Listen port |
DATA_DIR |
./data |
Database and archive storage |
WORKER_COUNT |
3 |
Concurrent archive workers |
SESSION_DURATION |
720h |
Login session lifetime |
Open by default. Set a password at Settings > Password.
API access uses bearer tokens generated at Settings > API Key:
Authorization: Bearer <key>
Everything lives in DATA_DIR:
data/
markeep.db SQLite database
archives/ One folder per saved link, contains index.html
favicons/ Cached favicons by domain
Copy the folder to back up. Restore by putting it back and restarting.
- Single user
- No browser extension (bookmarklet only)
- FTS covers title, description, article text -- not images or PDFs
