No description
Find a file
2026-05-17 15:05:13 +02:00
.github/workflows CI for go-backend on github actions 2026-05-08 16:28:48 +02:00
.planning docs(18): capture phase context 2026-05-17 15:05:13 +02:00
.superpowers/brainstorm Retry signup tests with Stripe CLI 2026-03-15 19:09:35 +01:00
.vscode Initial commit 2025-01-18 22:40:32 +01:00
.zed Split components, add sessions to the DB and make the apercu page 2026-05-08 16:03:54 +02:00
apps fix: make revenuecat config optional in api 2026-05-06 23:44:02 +02:00
backend feat(17): add day-separator headers to planning event list 2026-05-17 13:03:30 +02:00
docs Rename tasks plan dashboard state types 2026-05-10 22:18:00 +02:00
go-backend feat(17-02): wire PlanningMainContent with real planning view (GREEN) 2026-05-17 10:35:30 +02:00
infra First work on infra with traefik 2025-02-24 14:58:59 +01:00
packages feat: add apple billing flow for expo app 2026-05-03 09:28:46 +02:00
prompts Merge branch 'main' into work-2 2026-04-29 15:46:46 +02:00
scripts Modify backend 2025-03-15 08:46:51 +01:00
supabase feat: add apple billing flow for expo app 2026-05-03 09:28:46 +02:00
xtablo-expo feat: add apple billing flow for expo app 2026-05-03 09:28:46 +02:00
.dockerignore Use github CI instead of circle ci 2026-04-19 17:28:11 +02:00
.gitignore Made various improvements to the file management 2026-05-15 19:57:46 +02:00
.pre-commit-config.yaml Fix lint 2025-10-10 11:10:28 +02:00
biome.json merge: resolve develop conflicts 2026-04-24 17:05:56 +02:00
CLAUDE.md docs: create roadmap (7 phases) 2026-05-14 16:28:40 +02:00
DEVELOPMENT.md Lint and format 2025-10-23 21:36:21 +02:00
justfile Add task management 2025-11-15 22:58:18 +01:00
package.json merge: resolve develop conflicts 2026-04-24 17:05:56 +02:00
pnpm-lock.yaml feat: add go-backend design system and tablos UI 2026-05-09 20:18:24 +02:00
pnpm-workspace.yaml feat: add go-backend design system and tablos UI 2026-05-09 20:18:24 +02:00
README.md Lint and format 2025-10-23 21:36:21 +02:00
SECURITY_NOTICE.md Remove secrets from env files 2025-11-04 10:53:31 +01:00
static-analysis.datadog.yml Add a lot of tests 2025-10-11 12:32:52 +02:00
turbo.json merge: resolve develop conflicts 2026-04-24 17:05:56 +02:00

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 application
    • apps/external/ - Separate microfrontend for booking widgets
    • packages/ui/ - Shared UI components
    • packages/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:

  1. Add to the appropriate package (ui for UI components, shared for logic/utils)
  2. Export from the package's appropriate entry point
  3. Use the workspace import in your apps

For more details, see DEVELOPMENT.md

License

[Your License Here]