A URL bookmarking and feed reader service. Spiritual successor to sufr.
See docs/screenshots.md for what you're gonna get.
- Save and organize URLs with titles, descriptions, and tags
- Automatic page title and tag fetching
- Feed discovery and tracking for saved URLs
- API key authentication for some programmatic access
- Go 1.26+
- PostgreSQL 14+
Some task commands assume podman is available.
The dev environment is managed with Nix. Enter the shell to get all tools and environment variables set:
nix develop # or: direnv allow
task db:start # starts a postgres container
task db:wait
task db:init
air # runs the server, rebuilds when files change.go build ./cmd/booksmk ./cmd/booksmkctl
task test
Store and migration tests require BOOKSMK_DATABASE_URL to be set and will be skipped otherwise.
Generate sqlc and templ code:
task generate
| Variable | Default | Description |
|---|---|---|
BOOKSMK_DATABASE_URL |
required | PostgreSQL connection string |
BOOKSMK_SECURE_COOKIES |
false | Enables secure cookies for production |
BOOKSMK_ADDR |
:8080 |
Address and port to listen on |