Open-source universal reading list. Save links from Mac, iPhone, and any browser. Sync locally-first via your own server or the hosted instance.
One container, SQLite, zero external dependencies.
# Download the config
curl -O https://raw.githubusercontent.com/eylonshm/stashbro/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/eylonshm/stashbro/main/.env.example
# Configure
cp .env.example .env
# Edit .env - set AUTH_TOKEN to a random string (openssl rand -hex 32)
# Run
docker compose up -dServer is now at http://your-server:3000.
docker run -d \
--name stashbro \
-v stashbro_data:/data \
-e AUTH_TOKEN=$(openssl rand -hex 32) \
-e AUTH_MODE=token \
-p 3000:3000 \
ghcr.io/eylonshm/stashbro-server:latest| Platform | Deploy | HTTPS |
|---|---|---|
| Railway | Automatic | |
| Render | Automatic | |
| Fly.io | cd apps/server && fly launch |
Automatic |
Cloud platforms handle HTTPS automatically - no extra config needed.
Once the server is running, open Settings in any client and enter:
| Client | Where to configure |
|---|---|
| Mac app | Settings > Server URL + Token |
| iOS app | Settings > Server URL + Token |
| Browser extension | Extension options > Server URL + Token |
Cloud deploys (Railway, Render, Fly.io) get HTTPS automatically. For Docker self-hosting on a VPS, put Caddy in front - it handles Let's Encrypt automatically:
stashbro.yourdomain.com {
reverse_proxy localhost:3000
}
Run with caddy run --config Caddyfile. That's it - Caddy provisions and renews TLS certs automatically.
For LAN-only use (e.g. your phone on the same Wi-Fi), plain HTTP is fine.
| Client | Download |
|---|---|
| Mac app (notch + menubar) | GitHub Releases |
| iOS app | TestFlight (coming soon) |
| Browser extension | Chrome Web Store (coming soon) |
- Save from anywhere: hotkey, drag to notch, share sheet, browser extension
- Notch-first Mac UI with menubar popover
- Auto-categorize: video / post / article
- Tags, priority, search
- Local-first sync - works offline
- Self-host or use hosted instance
Monorepo (pnpm + Turborepo):
apps/server- Hono + SQLite API server (single Docker image)apps/mac- SwiftUI Mac app (notch, menubar, share extension, widget)apps/mobile- Expo iOS app (share extension, widget)packages/shared- TypeScript types, API client, sync enginepackages/extension- Browser extension (WXT, Manifest V3)
pnpm install
pnpm test # run all tests
pnpm dev # start server in dev modeMIT