Skip to content

On Book Pro — Developer Documentation

Technical reference for developers contributing to On Book Pro.


Architecture Overview

On Book Pro is a Progressive Web Application (PWA) built for theatrical production management with real-time collaboration and offline-first design.

Tech Stack

LayerTechnologyVersion
Frontend FrameworkReact19.2
LanguageTypeScript5.9
Build ToolVite8.0
StylingTailwind CSS3.4
State ManagementZustand + Immer + Zundo5.0 / 11.1 / 2.3
Rich Text EditorTipTap + Y.js (CRDT)3.15 / 13.6
Graphics/CanvasKonva.js + react-konva10.0 / 19.2
Drag & Drop@dnd-kit6.3
AudioHowler.js2.2
BackendFirebase (Auth, Firestore, Functions, Hosting, Storage)12.7
AI IntegrationGoogle ADK + Vertex AI (Gemini)0.5
Animationmotion (Framer Motion)12.34
Form ValidationReact Hook Form + Zod7.71 / 4.3.6
Unit TestingVitest + React Testing Library4.0
E2E TestingPlaywright1.58

Project Structure

src/
├── components/           # Reusable UI primitives
│   └── common/           # Design system components
├── features/             # Feature modules (domain-specific)
│   ├── admin/            # Admin Portal (members, roles, permissions)
│   ├── attendance/       # Attendance tracking, QR sign-in, Cloud Function, real-time sync
│   ├── audio/            # Audio playback utilities
│   ├── auth/             # Authentication & RBAC
│   ├── barry/            # Barry AI production assistant (ADK v2)
│   ├── blocking/         # Blocking Tracker (canvas)
│   ├── budget/           # Budget Dashboard & alerts
│   ├── calendar/         # Cast calendar (read-only schedule view)
│   ├── cast/             # Personnel management
│   ├── costumes/         # Costume management (measurements, pieces, fittings)
│   ├── dashboard/        # Personalized dashboard with role-based widgets
│   ├── email/            # Email system (Postmark templates & composers)
│   ├── feed/             # Production feed and updates
│   ├── files/            # File repository with cloud storage
│   ├── fly/              # Fly cue management for rigging
│   ├── layout/           # App shell & workspace navigation
│   ├── lighting/         # Lighting cues, follow spots, LX reports
│   ├── notes/            # Rich text notes (TipTap)
│   ├── notifications/    # In-app notification system
│   ├── onboarding/       # First-run onboarding (SM wizard, welcome card)
│   ├── performance/      # Live show-calling interface (Performance & Show Calling)
│   ├── print/            # Print views (Costume Bible, Quick Change Plot)
│   ├── production/       # Production management & deadlines
│   ├── projections/      # Projections & media management
│   ├── prompt-book/      # Prompt book (script + blocking composite view)
│   ├── props/            # Props inventory
│   ├── run-sheet/        # Core run sheet
│   ├── scheduler/        # Rehearsal calendar & AEA compliance
│   ├── sets/             # Set Builder (canvas)
│   ├── settings/         # Settings tool tab
│   ├── show-structure/   # Acts/Scenes/Characters
│   ├── sound/            # Sound cues & soundboard
│   ├── sync/             # Cloud sync & presence
│   └── video/            # Video conferencing (Daily.co)
├── store/                # Zustand global state (useAppStore.ts)
├── types/                # TypeScript definitions
└── utils/                # Shared utilities

Getting Started


Core Subsystems

Explore the architecture of key systems:


Technical Guides

In-depth guides for specific patterns:


API Reference


For user-facing documentation, see the User Guide.