Designer

Documentation

Everything you need to understand and build on this design system.

1-Minute Overview

What is this?

Airestate is a multi-tenant SaaS for real estate agents. Three apps share one design system:

Apps

AgentOSBack-office for agents — listings, clients, website configapps/agentosairestate.app
WebsitePublic tenant websites — listings, map, searchapps/website*.airestate.website
DesignerThis app — design system gallery, docs, Sketch syncapps/designerdesigner.airestate.app

Tech Stack

Next.js 15 · React 19 · TypeScript · CSS Modules (no Tailwind) · Supabase (Postgres + Auth + Storage) · Drizzle ORM · pnpm monorepo · Vercel

Shared Packages

@airestate/tokens36 design tokens + 5 materials + CSS generatorpackages/tokens
@airestate/ui40 React components + 10 blocks + 4 views + fixturespackages/ui
@airestate/dbDrizzle schema, tenant isolation, migrationspackages/db
@airestate/authSupabase Auth helperspackages/auth
@airestate/typesShared TypeScript typespackages/types
@airestate/permissionsRBAC engine + plan limitspackages/permissions

Styling Rules

  • CSS Modules only — every component has [name].module.css
  • Design tokens — use var(--color-*), var(--space-*), never hardcode
  • No Tailwind — no utility classes anywhere
  • Inline styles — only for runtime-computed values (dynamic width, position)
  • Multi-tenancy — CSS vars injected on <html>, components consume via var()

Component Structure

packages/ui/src/components/[name]/
  [name].tsx            # Component logic + JSX
  [name].module.css     # All styles (CSS Modules + tokens)
  index.ts              # Barrel export

Key Commands

pnpm devStart all apps (turbo)
pnpm design:devStart Designer on port 3002
pnpm design:generateRegenerate tokens.css from definitions
pnpm buildBuild all packages + apps

To Build a New Feature

  1. Read CLAUDE.md for the relevant system section
  2. Create component in packages/ui/src/components/[name]/
  3. Use CSS Modules + tokens, export from index.ts
  4. Add preview page in apps/designer/src/app/components/[name]/page.tsx
  5. Import in the app that needs it

Deep Dive

Architecture

Apps, packages, database, auth, deployment

Design System Rules

Naming conventions, component categories, Sketch mapping, checklists

Prompt Templates

Ready-to-use prompts for Sketch MCP and building new features