A self-hosted markdown notes system with real-time sync between web and terminal.
Click the button above, then:
- Connect GitHub (if prompted)
- Create repository - name it whatever you want
- Configure environment variables:
DATABASE_URL→ Click Add Integration → Select Neon → This creates your database automaticallyAUTH_PASSWORD→ Choose any password for login
- Click Deploy and wait for the build to complete
- Visit your app URL and login with your password
Click CLI in the top-right corner of your app (or go to https://your-app.vercel.app/cli).
Copy and run the install command. It will:
- Download the CLI for your system
- Connect to your server automatically
- Ask for your password
notes-cli # Browse notes in terminal
notes-cli -pull # Pull notes from server
notes-cli -push # Push local changes
notes-cli -watch # Auto-sync on file changesYour notes are stored as markdown files in ~/notes/ and sync automatically.
Web App
- PWA - install on your phone's home screen
- Offline support
- Dark mode
CLI
- Terminal UI with fuzzy search
- Real-time file watching
- Auto-sync
Sync
- Bidirectional sync
- Conflict detection
- Works offline
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL connection string |
AUTH_PASSWORD |
Yes | Password for login |
JWT_SECRET |
No | Auto-generated if not set |
For contributors
- Node.js 20+
- Go 1.22+
- pnpm
./setup.shWebapp:
cd webapp
pnpm install
cp .env.example .env.local # Edit with your values
pnpm db:push
pnpm devCLI:
cd cli
go build -o notes-cli ./cmd/notes-cli
./notes-cli -initnotes-sync/
├── webapp/ # Next.js 15 web app
├── cli/ # Go CLI (Bubble Tea)
├── install.sh # Standalone CLI installer
├── setup.sh # Local dev setup
└── .github/ # CI for releases
MIT