Skip to content

Admin (apps/admin)

Admin dashboard for the Booking Platform, built with SolidJS and TanStack Start. Provides platform operations, compliance, financial management, and feature flag controls.

Overview

The admin workspace is a separate application from the website, dedicated to platform administration. It features a command palette (Cmd+K), unified sidebar navigation with 7 route groups, and a shared data table system with pagination, search, filters, and date range pickers.

Tech Stack

LayerTechnologyVersion
FrameworkSolidJS^1.9.14
Meta FrameworkTanStack Start^1.168.32
RouterTanStack Solid Router^1.170.18
Data FetchingTanStack Solid Query^5.101.4
FormsTanStack Solid Form^1.33.2
StateTanStack Solid Store^0.11.0
TablesTanStack Solid Table^8.21.3
API LayeroRPC^1.14.12
ValidationZod^4.4.3
DatabaseDrizzle ORM^0.45.2
AuthSupabase + jose JWT^2.111.0 / ^6.2.4
PaymentsStripe^22.5.0
StylingUnoCSS^66.7.5
CacheRedis (ioredis)^5.11.1
TestingVitest + Playwright^4.1.10 / ^1.62.0
LintingBiome^2.5.6
BuildVite^8.2.1

Route Groups

GroupDescription
(operations)Overview, health, reports, settings, users
(bookings)Bookings, abandoned bookings, disputes
(financial)Payments, subscriptions, payouts, financial ledger
(compliance)Audit log, compliance, privacy, security, tax
(marketing)Audience, communications, notifications, promotions, referrals, reviews, search, seller leads, short URLs
(platform)Certifications, domains, feature flags, integrations, partners, providers
api/Health check, metrics, oRPC RPC handler, REST handler, OpenAPI spec

Key Features

FeatureDescription
Command PaletteCmd+K palette with keyboard navigation and global shortcuts
Unified LayoutSidebar navigation with root navbar and route groups
Admin Data TablesPagination, search, filters, date range pickers via AdminDataTableShell
Feature FlagsFeature flag management with table and create form
Webhook LabEvent monitoring, dead letter queue, replay
Privacy ManagementConsent, data export, data minimization, data retention (GDPR/CCPA)
Provider VerificationsVerifications and certifications management
Platform HealthSystem health monitoring and status dashboards
Scheduled ReportsAutomated report scheduling and delivery
Financial LedgerPayment management, payouts, subscriptions, ledger

Key Scripts

bash
# Development
moon run apps-admin:dev

# Build
moon run apps-admin:build

# Preview
moon run apps-admin:preview

# Database
moon run apps-admin:db-generate    # Generate migration
moon run apps-admin:db-migrate      # Run migrations
moon run apps-admin:db-push         # Push schema (dev only)
moon run apps-admin:db-studio       # Open Drizzle Studio

# Testing
moon run apps-admin:test            # Unit tests
moon run apps-admin:test-e2e        # Playwright E2E

# Quality
moon run apps-admin:lint
moon run apps-admin:typecheck
moon run apps-admin:verify

Architecture

apps/admin/
├── app/
│   ├── client.tsx          # Client entry with devtools
│   ├── server.ts           # Server entry with Redis, DB, auth
│   ├── router.tsx          # TanStack Router configuration
│   ├── routes/
│   │   ├── __root.tsx
│   │   ├── (bookings)/     # Booking management
│   │   ├── (compliance)/   # Compliance and security
│   │   ├── (financial)/    # Payments and subscriptions
│   │   ├── (marketing)/    # Marketing and communications
│   │   ├── (operations)/   # Operations and settings
│   │   ├── (platform)/     # Platform management
│   │   └── api/            # API routes (health, metrics, rpc, rest)
│   ├── modules/
│   │   ├── config-admin/   # Admin configuration
│   │   └── settings/       # Admin settings
│   ├── server/             # oRPC server handlers (30+ handler groups)
│   ├── lib/                # Shared libraries
│   ├── presentation/       # UI components
│   └── shared/             # Shared utilities
├── scripts/
│   └── check-bundle-size.ts
├── package.json
├── moon.yml
├── tsconfig.json
└── wrangler.jsonc          # Cloudflare deployment config

Server Handlers

The admin app has 30+ oRPC server handler groups under app/server/:

Handler GroupDescription
bookingBooking operations
communicationsEmail, SMS, and notification dispatch
complianceCompliance and audit operations
currencyCurrency conversion
exportData export operations
feature-flagsFeature flag management
financeFinancial operations
i18nInternationalization
loyaltyLoyalty program operations
membershipMembership management
notificationsNotification management
offlineOffline sync support
overviewDashboard overview data
partnerPartner operations
paymentPayment processing
privacyPrivacy and data management
providerProvider operations
reportsReport generation
route-guardRoute-level permission checks
searchSearch operations
securitySecurity operations
servicesService management
supportSupport ticket operations
taxTax calculation
userUser management
webhooksWebhook event management

Environment Variables

The admin workspace uses Infisical for secrets management. See apps/admin/.env.example for all required variables.

Released under the MIT License.