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
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.tsOnly 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.sqlYou 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/accountNothing about you is sold
No ads, no tracking cookies. The privacy policy names every service that touches your data, and why.
privacy policyRun your own copy.
Five commands and free accounts on Supabase, Gemini and Upstash. The README lists every setting.
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.
- Found a bug? Open an issue. For security problems, report them privately from the repository's Security tab.
- 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.
- 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.