Bookmarks — a Bespoke app
A quick-access dashboard of saved links, opened when you want to jump straight to a site without hunting for it.
This is an unofficial, third-party app for Bespoke. Nobody vetted it but its
author. Read What it does with your stuff
before installing it, the same as any code you run as yourself.
Install
From your Bespoke instance directory, with the platform at v0.13.0 or newer:
go tool bespoke add bookmarks
That pins this module, writes apps/bookmarks/app.toml with a free port, and
recompiles your instance stylesheet. Pin a version you have actually read with
bespoke add bookmarks@v0.1.0.
The directory must be named bookmarks: the slug names this app's database,
process, and subdomain, and the source picks it.
What it does with your stuff
- Stores in its own SQLite database: the links you save, their titles, and
tags.
- Talks to the sites you bookmark — one 5-second GET per saved link, to read
its
<title>. That means the site sees a request from your host when you save
it. Nothing else leaves the machine.
- Never sends your links anywhere else.
- Publishes domain events (
bookmarks.link_added, bookmarks.link_deleted)
to your instance's platformd for automation rules — silent, no notifications.
Like every Bespoke app it runs as your user, so nothing above is enforced by
the platform — it is a description you can check against the source
(ADR-0031).
Spec
The behavior this app is built to, unchanged from its original private build.
Records
Bookmark
- id
- url (required)
- title (auto-fetched from page on add, editable)
- tags (optional, comma-separated or list)
- created_at
Views
- GET / — Dashboard: reverse-chronological list of bookmarks (title + tag chips), tapping a bookmark opens the link directly in a new tab; tag chips filter the list in place (tap again to clear)
- GET /add — Paste URL, auto-fetch title, optional tags
- GET /bookmarks/:id/edit — Edit title/tags/URL, delete option
- Dashboard card: shows most recent 3-5 bookmarks with titles, tap to open
- Chat tools: add_bookmark(url), list_bookmarks(tag?)
- Intents: "save this link", "show my bookmarks"
Non-goals
- No folders or nested organization
- No sharing/export
- No detail/notes view — title + tags only
Later
- Favicon display
- Pin/reorder favorites
- Broken-link detection
Developing
views/*_templ.go is committed on purpose — instances build this module
straight out of the read-only Go module cache and never run templ generate
over it. After editing a .templ, run just ui and commit the output.
License
MIT — see LICENSE.