I’ve combined my 1) desire to re-surface content from my Bluesky feed 2) embeddings & semantic search and 3) my love of infinite canvas UIs:
It’s an OpenAI embeddings-powered search tool for my Bluesky likes, with advanced filtering, on an infinite canvas with draggable results. I started this project last spring for my Twitter likes + bookmarks, and since adapted it to Bluesky.
Right now you can only run it locally or self-host it; I’m not offering a hosted version.
(Using Bun because it’s excellent for scripting)
- Clone repo,
cd
bun i
- Copy
.env.sample
into.env
, and fill out the API credentials. You’ll need an OpenAI API key, your Bsky handle (e.g.lachlanjc.com
), plus a Bsky App Password - Install Chroma, then in another terminal,
chroma run
(you’ll need to keep this running both for the download scripts and querying the embeddings database) - If you’re using Zed, spawn the task for download, then for embedding. Otherwise,
bun run lib/tasks/download.js
thenbun run lib/tasks/embed.js
bun dev
& open the link!
- Next.js site
- Chroma for embeddings database
umap-js
for positioning posts- React Flow for infinite canvas
bsky-react-post
for post embeds- Radix Themes for search UI
MIT License