Ritro
How it worksExtensionChangelogOpen sourceLog in

Every line of Ritro is open source.

Your archive is personal, so you should be able to see exactly what happens to it. The website, the API, the extension and the database are all public on GitHub.

licence
AGPL-3.0
licence
tracking cookies
0
tracking cookies
automated tests
50
automated tests
database tables
3
database tables
github.com/ritrolabs/ritro

client/src/app/

The website and its API: every page and every endpoint.

api/bookmarks
Save, list, edit and delete bookmarks
api/jobs
The tagging worker and the daily retry job
api/account
Download your data, delete your account
api/digest
The daily email of things you saved
app
Your dashboard and settings
auth
Sign up, log in, reset password

AGPL-3.0: use it, study it, change it and share it. If you run a changed version as a service for other people, share your changes with them too.

Four promises, and the code that keeps them.

Your links can't reach our servers' insides

Ritro fetches the pages you save. Every address, every redirect and the connection itself are checked, so a link can only ever reach the public internet.

url-validation.ts · safe-fetch.ts

Only you can read your saves

Database rules scope every row to its owner, and every API route checks who is asking before it reads or writes anything.

supabase-rls.sql

You can leave with everything

Download every bookmark, tag and collection as a file, or delete your account and all of it, yourself, from Settings.

api/account

Nothing about you is sold

No ads, no tracking cookies. The privacy policy names every service that touches your data, and why.

privacy policy

Run your own copy.

Five commands and free accounts on Supabase, Gemini and Upstash. The README lists every setting.

Terminal
git clone https://github.com/ritrolabs/ritro.git && cd ritro/client
npm install
cp .env.example .env.local   # add your Supabase, Gemini and Upstash keys
npx prisma generate          # build the database client
npx prisma db push           # create the tables
npm run dev                  # http://localhost:3000

Help make it better.

  1. Found a bug? Open an issue. For security problems, report them privately from the repository's Security tab.
  2. Want to change something? Fork the repository, make a branch, and open a pull request. Every pull request is checked by tests and reviewed automatically.
  3. Bigger idea? Open an issue first so we can agree on the approach, or write to me.

Standing on open source.

  • Next.js

    MIT

    The website and its API

  • React

    MIT

    The interface

  • Tailwind CSS

    MIT

    Styling

  • Prisma

    Apache-2.0

    Talking to the database

  • Supabase

    Apache-2.0 / MIT

    Accounts and Postgres

  • Upstash

    MIT

    Queue and rate limits

  • Lucide

    ISC

    Icons

  • open-graph-scraper

    MIT

    Reading page previews

  • Source Serif 4

    OFL-1.1

    Headings

  • Geist and Geist Mono

    OFL-1.1

    Text and dates

Full licence details are in THIRD_PARTY_NOTICES.md.

Ritro

Save anything. Find everything. A personal archive that brings your saves back.

Product

  • Open Ritro
  • Chrome extension
  • Changelog

Open source

  • How it's built
  • GitHub
  • llms.txt

Ritro

  • FAQ
  • Contact
  • Privacy
  • Terms

© 2026 Minit Jain. Code licensed under AGPL-3.0.