Skip to main content

Engineering Documentation

Technical documentation for the Juniro platform.

Last Updated: February 17, 2026


DocumentDescription
Product StatusCurrent state of all features, what's built vs what's needed
API ArchitectureBackend architecture, endpoints, data flow
API ServicesDetailed API endpoint documentation
Data ModelDatabase schema and relationships
Multi-RegionUS/India data residency architecture
EnvironmentsDev, staging, production setup
AI ArchitectureAI/ML features architecture
API MandateAPI-first development principles
Codebase AssessmentComprehensive codebase review

Current Status Summary​

ComponentStatusNotes
Backend APIβœ… MVP Done25 routes, 32 models, Supabase Auth
Design Systemβœ… Done409 components, Storybook documented
Public Website🟑 UI DoneNeeds API wiring
Parents Portal🟑 UI DoneNeeds API wiring
Providers Portal🟑 UI DoneNeeds API wiring
Admin Portal🟑 UI DoneNeeds API wiring
Payments🟑 PartialStripe/Razorpay config ready, SDKs not installed
Communications🟑 PartialResend ready, WhatsApp TODO

Next Priority: Wire frontends to the existing API


Tech Stack​

LayerTechnology
FrontendNext.js 15, React 18, TypeScript, Tailwind CSS
Design SystemCustom components, Storybook
BackendHono (Node.js), TypeScript
DatabasePostgreSQL, Prisma ORM
AuthSupabase Auth (JWT)
HostingVercel (all apps)
PaymentsStripe (US), Razorpay (India)
EmailResend
AnalyticsPosthog
CRMAttio

Repository Map​

RepositoryPurposeTechStatus
juniro-designUI component libraryNext.js, Storybookβœ… Active
juniro-web-publicPublic websiteNext.jsβœ… Deployed
juniro-web-parentsParents portalNext.jsβœ… Deployed
juniro-web-providersProviders portalNext.jsβœ… Deployed
juniro-web-adminAdmin portalNext.jsβœ… Deployed
juniro-web-launchPre-launch site (juniro.com)Next.jsβœ… Live
juniro-apiBackend APIHono, Prismaβœ… MVP Done
juniro-docsDocumentationDocusaurusβœ… Active
juniro-infraScripts, CI/CDShell, GitHub Actionsβœ… Active

Key URLs​

Production​

ServiceURL
Public Websitehttps://juniro.com
Parents Portalhttps://parents.juniro.com (TBD)
Providers Portalhttps://providers.juniro.com (TBD)
Admin Portalhttps://admin.juniro.com (TBD)
US APIhttps://api.us.juniro.com
India APIhttps://api.in.juniro.com (TBD)
API Docshttps://api.us.juniro.com/docs

Staging/Preview​

ServiceURL
Public Websitehttps://juniro-web-public.vercel.app
Parents Portalhttps://juniro-web-parents.vercel.app
Providers Portalhttps://juniro-web-providers.vercel.app
Admin Portalhttps://juniro-web-admin.vercel.app

Development Tools​

ServiceURL
Storybook (Customer)https://juniro-design-customer.vercel.app
Storybook (Admin)https://juniro-design-admin.vercel.app
Documentationhttps://juniro-docs.vercel.app

Local Development​

Ports​

ServicePort
Public Website4000
Parents Portal4001
Providers Portal4002
Admin Portal4003
Pre-launch Site4004
API5001
Storybook (Customer)3000
Storybook (Admin)3001
PostgreSQL5432

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​

  1. Add Supabase Auth to all frontends βœ… Done
  2. Create shared API client
  3. Wire search, booking, profile flows

Priority 2: Payment Webhooks (1 week)​

  1. Stripe webhook handlers
  2. Razorpay webhook handlers
  3. Booking status updates

Priority 3: Communications (1 week)​

  1. Booking confirmation emails
  2. Provider notifications
  3. WhatsApp integration (India)

For questions, see Getting Started or reach out in Slack.