Add horizontal padding to page containers so cards don't bleed to the edges on small screens, reduce card inner padding on mobile, scale down headings at mobile breakpoints, and change the first/last name grid from a fixed two-column layout to responsive (single column on mobile). Replace the fixed-width form class (w-95) with w-full on the login form. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .circleci | ||
| .superpowers/brainstorm | ||
| .vscode | ||
| apps | ||
| backend | ||
| docs | ||
| go_backend | ||
| infra | ||
| packages | ||
| scripts | ||
| supabase | ||
| xtablo-expo | ||
| .dockerignore | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| biome.json | ||
| CLAUDE.md | ||
| DEVELOPMENT.md | ||
| justfile | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| SECURITY_NOTICE.md | ||
| static-analysis.datadog.yml | ||
| turbo.json | ||
Xtablo Monorepo
This is a Turborepo-based monorepo for the Xtablo project, containing multiple apps and shared packages.
Project Structure
xtablo-source/
├── apps/
│ ├── main/ # Main UI application
│ └── external/ # External booking widget microfrontend
├── packages/
│ ├── ui/ # Shared UI components (buttons, inputs, etc.)
│ └── shared/ # Shared utilities, hooks, contexts, and types
├── api/ # TypeScript/Node.js API
├── backend/ # Python backend
├── go_backend/ # Go backend
└── xtablo-expo/ # React Native Expo app
Getting Started
Prerequisites
- Node.js 18+ and pnpm 10.19.0+
- For other services: Python 3.11+, Go 1.21+
Quick Start
# Install dependencies
pnpm install
# Start development (packages are source-only, no build needed)
pnpm dev
For detailed development workflows, see DEVELOPMENT.md.
Common Commands
# Development
pnpm dev # Run all apps
pnpm dev:main # Run main app only
pnpm dev:external # Run external app only
# Building
pnpm build # Build all apps
pnpm build:apps # Build apps only
pnpm build:staging # Build main app for staging
pnpm build:prod # Build main app for production
# Testing & Quality
pnpm test # Run all tests
pnpm lint # Check all packages
pnpm lint:fix # Fix linting issues
pnpm typecheck # Type check everything
# Cleaning
pnpm clean # Clean all build artifacts
Packages
@xtablo/ui
Shared UI components library used across the main and external apps. Contains all base UI components like buttons, inputs, dialogs, etc.
Usage:
import { Button } from "@xtablo/ui/components/button";
import { Input } from "@xtablo/ui/components/input";
@xtablo/shared
Shared utilities, hooks, contexts, and types used across apps.
Usage:
import { useSession } from "@xtablo/shared/contexts/SessionContext";
import { api } from "@xtablo/shared/lib/api";
import { Tables } from "@xtablo/shared/types/database.types";
Apps
Main (@xtablo/main)
The main Xtablo application with full dashboard, planning, chat, and administrative features.
Local URL: http://localhost:5173
External (@xtablo/external)
Embeddable booking widget that can be integrated into external websites. Supports both embedded and floating widget modes.
Local URL: http://localhost:5174
Usage:
- Embedded mode:
?mode=embed&eventTypeId=... - Floating widget:
?mode=widget&eventTypeId=...
Turborepo Features
This monorepo uses Turborepo for:
- Fast builds: Parallel task execution and intelligent caching
- Dependency management: Automatic build ordering based on package dependencies
- Code sharing: Easy sharing of components and utilities between apps
Development Workflow
For comprehensive development documentation including:
- Package development workflow
- Testing strategies
- Troubleshooting guide
- CI/CD setup
See DEVELOPMENT.md
Adding a New Package
See the "Adding a New Package" section in DEVELOPMENT.md for detailed instructions.
Migration Notes
This project was migrated from a single UI app to a Turborepo monorepo with the following changes:
- Before: Single
ui/directory with all code - After:
apps/main/- Main applicationapps/external/- Separate microfrontend for booking widgetspackages/ui/- Shared UI componentspackages/shared/- Shared utilities and logic
All import paths have been updated to use workspace packages (@xtablo/ui, @xtablo/shared).
Contributing
When adding new shared code:
- Add to the appropriate package (
uifor UI components,sharedfor logic/utils) - Export from the package's appropriate entry point
- Use the workspace import in your apps
For more details, see DEVELOPMENT.md
License
[Your License Here]