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.sampleinto.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.jsthenbun run lib/tasks/embed.js bun dev& open the link!
- Next.js site
- Chroma for embeddings database
umap-jsfor positioning posts- React Flow for infinite canvas
bsky-react-postfor post embeds- Radix Themes for search UI
MIT License