Website (apps/website)
Main web application of the Booking Platform, built with SolidJS and TanStack Start.
Overview
The website workspace is the primary application providing the full booking platform experience. It includes customer-facing pages, provider dashboards, admin panels, and all server-side API handlers.
Tech Stack
| Layer | Technology | Version |
|---|---|---|
| Framework | SolidJS | ^1.9.14 |
| Meta Framework | TanStack Start | ^1.168.28 |
| Build Tool | Vite (Rolldown) | npm:rolldown-vite@latest |
| Router | TanStack Solid Router | ^1.170.18 |
| State | TanStack Solid Store | ^0.11.0 |
| Data Fetching | TanStack Solid Query | ^5.101.2 |
| Forms | TanStack Solid Form | ^1.33.2 |
| API Layer | oRPC | ^1.14.8 |
| Validation | Zod | ^4.4.3 |
| Database | Drizzle ORM | ^0.45.2 |
| Auth | Supabase + jose JWT | ^2.110.7 / ^6.2.3 |
| Payments | Stripe | ^22.3.2 |
| Styling | UnoCSS | ^66.7.5 |
| AI | TanStack AI + OpenAI | ^0.39.1 / ^0.15.10 |
| Table | TanStack Solid Table | ^8.21.3 |
| Redis | ioredis | ^5.11.1 |
| Testing | Vitest + Playwright | ^4.1.10 / ^1.61.1 |
| Resend | ^6.17.2 | |
| Markdown | markdown-it + @shikijs/markdown-it | ^14.3.0 / ^4.3.1 |
| Sanitization | isomorphic-dompurify | ^3.18.0 |
Modules
The website source code is organized into 18 top-level feature modules under src/modules/, containing 295 route files and 21 server handler groups:
| Module | Description |
|---|---|
admin | Admin panel — users, providers, disputes, promotions, reports |
auth | Authentication, RBAC, guards, session management |
billing | Billing and subscription management |
config | App configuration and feature flags |
database | Drizzle ORM schema, migrations, seeds |
devtools | Developer tools and debugging utilities |
feature-flags | Feature flag management and toggles |
infrastructure | Server infrastructure, middleware, oRPC setup |
layout | App layout — header, footer, navigation, sidebar |
bookings | Customer booking management and history |
native | Capacitor mobile bridge — biometric, haptics, camera |
provider | Provider dashboard — 30+ sub-modules including bookings, services, staff, calendar, chat, analytics, reviews, promotions, onboarding, notifications, availability, loyalty, realtime, recurring-bookings, social-sharing, subdomain, video-consultations |
public-pages | Public-facing pages with custom domains |
search | Provider and service search with filters |
settings | User and provider settings |
shared | Shared utilities and common components |
support | Support tickets, SLA, AI assistant |
user | User profile, verification, badges |
Key Scripts
bash
# Development
moon run apps-website:dev
# Build
moon run apps-website:build
# SPA build (for Capacitor)
moon run apps-website:build-spa
# Database
moon run apps-website:db-generate # Generate migration
moon run apps-website:db-migrate # Run migrations
moon run apps-website:db-push # Push schema (dev only)
moon run apps-website:db-studio # Open Drizzle Studio
moon run apps-website:db-seed # Seed database
# Testing
moon run apps-website:test # Unit tests
moon run apps-website:test-coverage # Coverage report
moon run apps-website:test-e2e # Playwright E2E
# Quality
moon run apps-website:lint
moon run apps-website:typecheck
moon run apps-website:verifyEnvironment Variables
See apps/website/.env.example for all required variables. The website workspace uses Infisical for secrets management — see apps/website/.infisical.json.
| Variable | Description | Required |
|---|---|---|
DATABASE_URL | PostgreSQL connection string | Yes |
VITE_SUPABASE_URL | Supabase project URL | Yes |
VITE_SUPABASE_ANON_KEY | Supabase anon key | Yes |
SUPABASE_SERVICE_ROLE_KEY | Supabase service role (server) | Yes |
STRIPE_SECRET_KEY | Stripe API secret | Yes |
STRIPE_WEBHOOK_SECRET | Stripe webhook signing secret | Yes |
VITE_STRIPE_PUBLISHABLE_KEY | Stripe publishable key (client) | Yes |
OPENAI_API_KEY | OpenAI API key | No |
CLOUDFLARE_API_TOKEN | Cloudflare API token | No |
DEMO_PASSWORD | Demo account password | Dev only |
Architecture
apps/website/src/
├── modules/ # 18 top-level feature modules
│ ├── admin/ # Admin panel
│ ├── auth/ # Authentication & RBAC
│ ├── billing/ # Billing & subscriptions
│ ├── config/ # App configuration
│ ├── database/ # Drizzle schema & migrations
│ ├── devtools/ # Developer tools
│ ├── feature-flags/ # Feature flag management
│ ├── infrastructure/ # Server setup & oRPC
│ ├── layout/ # App layout
│ ├── bookings/ # Customer bookings
│ ├── native/ # Capacitor bridge
│ ├── provider/ # 30+ sub-modules (bookings, services, staff, etc.)
│ ├── public-pages/ # Public-facing pages
│ ├── search/ # Search & discovery
│ ├── settings/ # User & provider settings
│ ├── shared/ # Shared utilities
│ ├── support/ # Support tickets
│ └── user/ # User profile
├── routes/ # TanStack Router file-based routes
└── server/ # oRPC server handlers (21 handler groups)