IsotopeAI is a self-hosted study planner for JEE, NEET, and Board students. It runs on your own device — phone, laptop, or desktop — with optional Supabase cloud sync. No subscription. No vendor lock-in.
Most study apps are SaaS products. You log your data into someone else's server, pay a monthly fee, and lose everything if you stop paying. IsotopeAI runs entirely on your device. Supabase is optional — it only provides sync, auth, and community. Stop paying for Supabase? Export your data and keep studying locally.
Start the Node.js server, open localhost:3000, and the entire app runs locally. No data ever touches a server you don't own.
After first launch the service worker caches the app shell. You can study, use the timer, and view analytics without internet — server-side features show honest offline status.
Point the app at your own free Supabase project for auth, realtime community, and cloud backup. Run the SQL schema once and you're done.
Run IsotopeAI entirely on an Android phone via Termux. One install command, then home-screen widget buttons for start, update, and open.
The Supabase project is yours — you create it, own the credentials, and can export or delete all data at any time. IsotopeAI never has access to it.
This is not a self-hosted SaaS. There is no server to provision, configure, or maintain. The app is a Node.js process on your own machine.
Built specifically for competitive exam prep — not generic productivity.
You need Node.js 18+ and a free Supabase project for auth and sync. For local-only testing, you can start the server immediately and skip Supabase.
Step 1: Install Termux from F-Droid or GitHub Releases — not the Play Store.
Step 2: Open Termux and paste this one command:
bash <(curl -fsSL https://raw.githubusercontent.com/Suydev/isotope-code/main/install-termux.sh)
Step 3: After install, use home-screen widget buttons — no typing needed.
git clone https://github.com/Suydev/isotope-code.git
cd isotope-code
bash setup.sh
setup.sh automatically installs Node.js 22 via NodeSource on Ubuntu/Debian if not present.
After setup, open http://127.0.0.1:3000.
CMD or PowerShell:
git clone https://github.com/Suydev/isotope-code.git
cd isotope-code
setup.bat
PowerShell (automated Node install):
git clone https://github.com/Suydev/isotope-code.git
cd isotope-code
.\install.ps1
# From any directory after setup
isotope update
Stashes local changes → fetches latest → fast-forward merges → runs npm install if needed → restarts server.
On Android, automatically refreshes widget shortcuts too.
# Windows
update.bat
isotope start # start server in background
isotope stop # stop server
isotope restart # stop + start + open
isotope update # pull latest version
isotope status # show PID, port, version, config
isotope doctor # full diagnostic — checks everything
isotope open # open in browser
isotope logs # last 80 log lines (secrets redacted)
isotope repair # fix broken deps or CLI
Required for auth, community, and cross-device sync. The free Supabase tier works indefinitely for personal use.
isotope-complete.sql from the repo. Creates all 24 tables, RLS policies, triggers, storage buckets, and seed data in one shot..env:SUPABASE_URL=https://your-ref.supabase.coSUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY. Normal users only need the anon key. The service-role key grants unrestricted database access.
Three layers. You own all of them. No intermediary server.
The React app is compiled to static files and served by your local Node.js server. The service worker enables offline use after the first visit.
Runs on your device. Proxies auth and database requests to Supabase, adds JWT verification, and serves the compiled frontend. The only process you run.
Acts as a cloud database, auth provider, and storage backend — only if you connect it. IsotopeAI is designed to gracefully handle offline or unconfigured Supabase.
CI runs against every push to main. Install scripts are syntax-checked, shell-linted, and smoke-tested against a real Node.js server start.
bash -n on all 7 shell scripts on every CI run/api/health using safe placeholder credentialsTERMUX_VERSION=ci-test.env for the app to fully function..env file on your device.isotope update from any directory, or tap the isotope-update widget on Android. It stashes local changes, pulls the latest commit, reinstalls dependencies if needed, and restarts the server — all without touching your .env.isotope doctor — it checks Node.js, Git, PATH, Supabase config, PWA files, server health, and (on Android) Termux tools and widget shortcuts. For deeper issues, run isotope repair to re-install dependencies and refresh the CLI.