How it works
From bookmarking a tweet to finding it on this site.
The canvas below is rendered with a small custom json-render catalog to show how data moves through ingestion, enrichment, storage, and search.
Bookmarks data flow
Drag nodes to rearrange ยท edges follow automatically
Bookmark on Twitter/X
A saved tweet starts the pipeline.
launchd sync job
Runs every 15 min on the Mac Mini.
bird CLI pull
Fetches bookmarks as JSON from X.
Transform + dedupe
Normalizes, extracts URLs, upserts.
Supabase Postgres
Stores bookmarks, tags, authors, search indexes.
OpenAI enrichment
Categorizes, tags, and summarizes.
search_bookmarks()
Full-text search via Postgres RPC.
Next.js web app
Renders search results with SSR.
Public reader
Searches & browses bookmarks.
Bookmark a tweet
Tap the bookmark icon on any tweet in Twitter/X. That's the only manual step.
Sync runs
A background job pulls your latest bookmarks every 15 minutes.
Pull bookmarks
The bird CLI fetches the last 200 bookmarks as JSON from the Twitter API.
Transform & upsert
Extracts author info, URLs, and metrics. Dedupes against existing rows and upserts into Supabase.
LLM enrichment
GPT-5.4-nano categorizes each new bookmark, generates tags and a one-line summary.
Searchable on site
Next.js queries Supabase via a Postgres full-text search function. Instantly findable.