Stash

A free, open-source read-it-later app. Save articles, highlights, and Kindle notes to your own database. No subscription. You own your data.

Get Started (Free)

Everything you need to save what matters

📄

Save Articles

One-click save from Chrome or any browser. Full article text extraction so you can read offline.

Save Highlights

Select any text on a page and save just that snippet. Perfect for quotes and research.

📚

Kindle Import

Upload your Kindle's My Clippings.txt file to import all your book highlights.

🔍

Full-Text Search

Search across everything you've saved. Find that article you read months ago.

📱

Works Everywhere

Web app works on Mac, iPhone, iPad. Add to home screen for app-like experience.

🔒

You Own Your Data

Everything stored in your own Supabase database. Export anytime. No lock-in.

📧

Weekly Digest Email

Get a weekly email with summaries of your saves plus random Kindle highlights to revisit.

🌙

Dark Mode

Easy on the eyes. Toggle between light and dark themes with one click.

📊

Reading Progress

Visual progress bar shows how far you've read in each article.

🔊

Text-to-Speech

Listen to articles with natural-sounding neural voices. Free, no API key needed (uses Edge TTS).

Recommended

Install with Claude Code

If you have Claude Code, setup takes 2 minutes. Just paste this prompt:

Copy this prompt
I want to set up Stash, a self-hosted read-it-later app from github.com/kbroose/stash

Please help me:
1. Clone the repo to my computer
2. Create a free Supabase project at supabase.com (I'll do this part manually and give you the credentials)
3. Run the database schema (including user_preferences for digest emails)
4. Configure the extension and web app with my Supabase credentials
5. Help me load the Chrome extension
6. Deploy the web app to Vercel (free)
7. Optionally: Set up weekly digest emails using Resend (free tier)
8. Optionally: Set up text-to-speech for articles (uses free Edge TTS)

Walk me through each step and wait for my input when needed.

Claude will guide you through each step interactively. You'll still need to create accounts on Supabase and Vercel (both free), but Claude handles all the technical setup.

Or Set Up Manually

No coding required. Just follow these steps.

1
2 minutes

Create a Free Supabase Account

Supabase is a free database service. Sign up with your GitHub account.

Go to supabase.com →
The free tier includes 500MB storage and unlimited API requests - more than enough for personal use.
2
3 minutes

Create a New Project

Click "New Project" and give it a name (like "stash"). Choose a strong password and select a region close to you.

Once created, go to SQL Editor in the left sidebar.

3
1 minute

Set Up the Database

Copy the entire contents of schema.sql and paste it into the SQL Editor. Click "Run".

This creates all the tables Stash needs.

4
2 minutes

Create Your User Account

Go to Authentication → Users in Supabase. Click "Add user" and create an account with your email.

Copy the User UID (the long string of letters and numbers) - you'll need this.

5
2 minutes

Get Your API Keys

Go to Project Settings → API in Supabase. Copy these two values:

  • Project URL (looks like https://xxxxx.supabase.co)
  • anon public key (the long key under "Project API keys")
6
5 minutes

Download and Configure Stash

Download the project from GitHub (click "Code" → "Download ZIP").

Unzip it, then edit these two files with your Supabase details:

  • extension/config.js
  • web/config.js

Replace the placeholder values with your Project URL, anon key, and User UID.

7
2 minutes

Install the Chrome Extension

Open Chrome and go to chrome://extensions

Turn on "Developer mode" (toggle in top right), then click "Load unpacked" and select the extension folder.

8
3 minutes

Deploy the Web App (Optional)

For the best experience, deploy the web app so you can access it from any device:

  1. Create a free account at vercel.com
  2. Upload the web folder
  3. Done! You'll get a URL like your-stash.vercel.app
Alternatively, just open web/index.html locally in your browser.

You're Done!

Click the Stash icon in Chrome to start saving articles. Your saves will sync to your Supabase database and appear in the web app.

To import Kindle highlights: Connect your Kindle via USB, copy My Clippings.txt from the documents folder, then use "Import Kindle" in the web app.

Questions

Is this really free?

Yes. Supabase's free tier is generous (500MB, unlimited requests), and Vercel's free tier handles unlimited personal projects. You'll never pay anything unless you save tens of thousands of articles.

Do I need to know how to code?

No. You just need to copy-paste a few things and click some buttons. If you can edit a text file, you can set this up.

Can I use this on my phone?

Yes. The web app works great on mobile. Add it to your home screen for an app-like experience. There's also an iOS Shortcut for saving from Safari.

What happens to my data?

Your data lives in your own Supabase database. You can export it anytime, delete it, or migrate it somewhere else. You're in full control.

Why did you make this?

I wanted a Pocket replacement that I owned. Most read-it-later apps are subscription services that can shut down or change their terms. With Stash, your data is yours forever.

How does the weekly digest email work?

Optional feature: Set up Resend (free tier) to get weekly emails with summaries of everything you saved, plus 5 random Kindle highlights to revisit. Configure your preferred day and time in the app settings.

How does text-to-speech work?

Optional feature: Run the included Python script on your computer. It uses Microsoft Edge TTS (free, no API key) to generate natural-sounding audio for your articles. Audio files are stored in Supabase and play in the web app.

I have a question / found a bug / want a feature!

I built this app in a few hours and don't plan to actively support it. If you run into issues or want to add features, ask Claude or your favorite AI coding tool for help - that's how I built it in the first place!