Structured math tutoring from basic numbers toward calculus. React + Vite + TypeScript SPA with Path mode, Topics mode, and optional free-tier auth for progress sync.
npm install
npm run devOpen the local URL Vite prints (usually http://localhost:5173).
The app works with no backend: guest progress is stored in localStorage.
- Create a free project at supabase.com.
- In the SQL editor, run
supabase/schema.sql. - Copy
.env.exampleto.envand set:
VITE_SUPABASE_URL=https://YOUR_PROJECT.supabase.co
VITE_SUPABASE_ANON_KEY=YOUR_ANON_KEY- Restart
npm run dev.
Sign-in is only for saving progress and attempt history across devices.
| Command | Description |
|---|---|
npm run dev |
Local development server |
npm run build |
Typecheck + production build to dist/ |
npm run preview |
Preview the production build |
npm run lint |
ESLint |
- Push this repo to GitHub (or upload the project).
- In Cloudflare Pages: Create project → connect the repo.
- Build settings:
- Framework preset: Vite
- Build command:
npm run build - Build output directory:
dist
- Add the same
VITE_SUPABASE_*variables in Pages → Settings → Environment variables (if using Supabase). - Deploy.
public/_redirectsenables React Router deep links.
You can also deploy a local build with Wrangler:
npm run build
npx wrangler pages deploy dist --project-name=mathtutorAll tracks are available end-to-end at MVP depth:
- Numbers
- Arithmetic
- Pre-Algebra
- Algebra
- Geometry
- Trigonometry
- Precalculus
- Calculus
Content lives under src/content/. Each lesson has explanation, worked examples, and practice.
UI follows docs/DESIGN.md.