Engineering Documentation
Technical documentation for the Juniro platform.
Last Updated: February 17, 2026
Quick Linksβ
| Document | Description |
|---|---|
| Product Status | Current state of all features, what's built vs what's needed |
| API Architecture | Backend architecture, endpoints, data flow |
| API Services | Detailed API endpoint documentation |
| Data Model | Database schema and relationships |
| Multi-Region | US/India data residency architecture |
| Environments | Dev, staging, production setup |
| AI Architecture | AI/ML features architecture |
| API Mandate | API-first development principles |
| Codebase Assessment | Comprehensive codebase review |
Current Status Summaryβ
| Component | Status | Notes |
|---|---|---|
| Backend API | β MVP Done | 25 routes, 32 models, Supabase Auth |
| Design System | β Done | 409 components, Storybook documented |
| Public Website | π‘ UI Done | Needs API wiring |
| Parents Portal | π‘ UI Done | Needs API wiring |
| Providers Portal | π‘ UI Done | Needs API wiring |
| Admin Portal | π‘ UI Done | Needs API wiring |
| Payments | π‘ Partial | Stripe/Razorpay config ready, SDKs not installed |
| Communications | π‘ Partial | Resend ready, WhatsApp TODO |
Next Priority: Wire frontends to the existing API
Tech Stackβ
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 18, TypeScript, Tailwind CSS |
| Design System | Custom components, Storybook |
| Backend | Hono (Node.js), TypeScript |
| Database | PostgreSQL, Prisma ORM |
| Auth | Supabase Auth (JWT) |
| Hosting | Vercel (all apps) |
| Payments | Stripe (US), Razorpay (India) |
| Resend | |
| Analytics | Posthog |
| CRM | Attio |
Repository Mapβ
| Repository | Purpose | Tech | Status |
|---|---|---|---|
juniro-design | UI component library | Next.js, Storybook | β Active |
juniro-web-public | Public website | Next.js | β Deployed |
juniro-web-parents | Parents portal | Next.js | β Deployed |
juniro-web-providers | Providers portal | Next.js | β Deployed |
juniro-web-admin | Admin portal | Next.js | β Deployed |
juniro-web-launch | Pre-launch site (juniro.com) | Next.js | β Live |
juniro-api | Backend API | Hono, Prisma | β MVP Done |
juniro-docs | Documentation | Docusaurus | β Active |
juniro-infra | Scripts, CI/CD | Shell, GitHub Actions | β Active |
Key URLsβ
Productionβ
| Service | URL |
|---|---|
| Public Website | https://juniro.com |
| Parents Portal | https://parents.juniro.com (TBD) |
| Providers Portal | https://providers.juniro.com (TBD) |
| Admin Portal | https://admin.juniro.com (TBD) |
| US API | https://api.us.juniro.com |
| India API | https://api.in.juniro.com (TBD) |
| API Docs | https://api.us.juniro.com/docs |
Staging/Previewβ
| Service | URL |
|---|---|
| Public Website | https://juniro-web-public.vercel.app |
| Parents Portal | https://juniro-web-parents.vercel.app |
| Providers Portal | https://juniro-web-providers.vercel.app |
| Admin Portal | https://juniro-web-admin.vercel.app |
Development Toolsβ
| Service | URL |
|---|---|
| Storybook (Customer) | https://juniro-design-customer.vercel.app |
| Storybook (Admin) | https://juniro-design-admin.vercel.app |
| Documentation | https://juniro-docs.vercel.app |
Local Developmentβ
Portsβ
| Service | Port |
|---|---|
| Public Website | 4000 |
| Parents Portal | 4001 |
| Providers Portal | 4002 |
| Admin Portal | 4003 |
| Pre-launch Site | 4004 |
| API | 5001 |
| Storybook (Customer) | 3000 |
| Storybook (Admin) | 3001 |
| PostgreSQL | 5432 |
Quick Startβ
# Clone all repos
git clone https://github.com/Juniro/juniro-design.git
git clone https://github.com/Juniro/juniro-web-public.git
git clone https://github.com/Juniro/juniro-api.git
# Start API
cd juniro-api
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=juniro postgres:16
npm install && npm run db:generate && npm run db:migrate && npm run dev
# Start frontend (in another terminal)
cd juniro-web-public
bun install && bun run dev
Architecture Overviewβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Clients β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β juniro.com parents.juniro.com providers.juniro.com β
β (Public) (Parents Portal) (Providers Portal) β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Vercel Edge β
β (Static + Serverless) β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β juniro-api β
β (Hono + TypeScript) β
β β
β βββββββββββ βββββββββββ βββββββββββ βββββββββββ β
β β Auth β β Parents β βProvidersβ βBookings β β
β βββββββββββ βββββββββββ βββββββββββ βββββββββββ β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ βββββ
β
βββββββββββββββΌββββββββββββββ
βΌ βΌ βΌ
ββββββββββββ ββββββββββββ ββββββββββββ
β Supabase β βPostgreSQLβ β Stripe β
β Auth β β (Prisma) β β Razorpay β
ββββββββββββ ββββββββββββ ββββββββββββ
Next Stepsβ
See Product Status for detailed breakdown.
Priority 1: Wire Frontends to APIβ
Add Supabase Auth to all frontendsβ Done- Create shared API client
- Wire search, booking, profile flows
Priority 2: Payment Webhooks (1 week)β
- Stripe webhook handlers
- Razorpay webhook handlers
- Booking status updates
Priority 3: Communications (1 week)β
- Booking confirmation emails
- Provider notifications
- WhatsApp integration (India)
For questions, see Getting Started or reach out in Slack.