Capture from anywhere
Paste a link, import public GitHub stars, or save from the browser extension
(Alt+Shift+S), the share sheet, or the tray app.
save · organize · revisit
Stash is a self-hosted save-for-later that doesn't just collect links — it organizes them for you. Drop in a Threads post, a GitHub star, or any web page and Stash files it into smart collections, builds a live interest graph, and gently brings it back before it rots in a graveyard.
# paste any link
$ curl -X POST https://your-stash/api/captures \
-d '{"url":"https://github.com/nextjs/next.js"}'
# stash files it, embeds it, and files it into the right collection
✓ saved as repo → "TypeScript frameworks"
✓ embedded · tf-idf + local embeddings
✓ filed → 3 topics · 1 collection
✓ queued for review · revisit in 3 days
Bookmarks and saves accumulate. Threads posts vanish when the author deletes them. Hundreds of starred repos sit unorganized and unevaluated. Nothing ever comes back. Stash breaks that loop.
Paste a link, import public GitHub stars, or save from the browser extension
(Alt+Shift+S), the share sheet, or the tray app.
Keyword clustering plus optional local AI files new saves into the right collections. No folder-tree homework.
Your collections and semantic links render as a live 3D force graph, clustered by community detection and filterable by source.
Free, on-device embeddings with a TF-IDF fallback. Find things by meaning, not just keywords. No API key.
A review queue and daily digest surface what you've never opened — so saved content comes back instead of rotting.
Every collection becomes a public page with rich Open Graph cards. Send one link; no account needed to view.
Everything lives in your own Postgres — on your machine or your VPS. No account, no cloud lock-in, no telemetry.
The core loop — capture, organize, revisit — works with zero API spend, including local embeddings and semantic search.
A plain HTTP API underneath, so you can automate saves, exports, and digests however you like.
Bring your own Postgres. Script it with plain HTTP. Self-host on a VPS with Coolify, or run it as a PWA, browser extension, or native shell. No SaaS, no telemetry, no vendor lock-in.
$ git clone https://github.com/stoyanov-x/stash.git
$ cd stash
$ docker compose up --build
# → http://localhost:3000
# your data lives in local named volumes — nothing leaves your machine