IsotopeAI / docs

Guides

Getting started Configuration Supabase setup Sync & backup Backup console Community

Reference

Architecture API reference Database CLI Android APK Admin console

Help

Troubleshooting FAQ Contributing Changelog

Legal

Security Privacy Terms License

v3.4.1MIT licensedself-hosted

Study infrastructure you actually own.host.control.

IsotopeAI is a local-first study platform for JEE, NEET and Board students. The server runs on your device. Your data lives in your own Supabase project. No tenant, no subscription, no telemetry.

Press Enter to open the closest match.

42Database tables
80Postgres functions
153RLS policies
0Runtime dependencies

One command. Any platform.

A single Node process serves the app, proxies Supabase, and patches the frontend bundles at request time. Android via Termux is a first-class target, not an afterthought.

# clone and set up
$ git clone https://github.com/Suydev/isotope-code
$ cd isotope-code && ./setup.sh

# start the local server
$ isotope start
→ http://127.0.0.1:3000 

What it does

Study tooling, plus the infrastructure to keep it yours.

Focus timer with real session accounting

Sessions write to Postgres, not just localStorage. Streaks, per-subject totals and daily aggregates are computed server-side, so the numbers survive a reinstall. Picture-in-Picture keeps the timer visible while you work in other apps.

Tasks & syllabus

Chapter-level progress across subjects, with availability rules.

Exam analytics

Mock tests, countdowns and accuracy trends per subject.

Study groups, chat and leaderboards

Group membership, realtime chat, invite links and presence — all enforced by row-level security in your own database, using SECURITY DEFINER functions with pinned search paths.

Conflict-aware sync

Version + content-hash resolution. Rich data never loses to an empty snapshot.

Works offline

Service worker shell with an app-shell fallback and a real offline page.

Your data does not pass through us

There is no IsotopeAI server. The app talks to a Node process on your own machine, which talks to a Supabase project you created and control. The service-role key never reaches the browser, and nothing is reported anywhere.