Microformats are the public page's API for other sites (potluck first): each bookmark is an h-entry with u-bookmark-of, p-name, p-summary, a p-category per tag (linked to a tag search), dt-published (bookmarked) and dt-updated (last edited). Prev/next links carry rel=prev/next, so a reader can follow a filter's pages. Tests parse the page with microformats-parser to pin the contract. Generated-by: Claude Opus 5.5
diigo-cache
Your diigo bookmarks, cached in a workerd worker, with a public page you can filter by week: /public/<you>?in=2026-W41. Your diigo session cookie is stored in one Durable Object and nowhere else.
Getting started
pnpm install
pnpm dev # → http://localhost:8787/
Then, in the browser:
- mint the diigo session at webapp: paste the
Cookieheader from diigo.com (devtools, any logged-in request). - wire it, mode public. Save the cache id it shows (the password-manager button does this).
- open this cache → fill, and watch it walk your bookmarks.
- Visit
/public/<your diigo username>?days=7.
Bookmarks you hold, a page anyone can read
- Filter by date and search:
?days=7,?in=2026-W41(ISO week, UTC),?after=2026-01-01&before=2026-02-01,?by=created, and?q=with words,"phrases",#tags,-negation, and gmail-stylenewer_than:7d. AddAccept: application/jsonfor JSON. - Private stays private: the public cache drops private bookmarks before storing anything, so it never holds them.
- Ids are capabilities: the cache id is a bearer key you keep in your password manager. It rides URL fragments and POST bodies, never a path or query string, so it stays out of logs and history.
- Cheap to read: pages come from Durable Object SQLite storage, and a fill job in the background fetches each diigo page once.
Design, tests, and deploying: CONTRIBUTING.