platform-codebase/features/webmap
2026-01-04 07:14:50 -08:00
..
backend-api 🔧 Clean up package dependencies and use bootstrap health exports 2026-01-02 20:22:03 -08:00
database Complete staging deployment with all apps verified 2026-01-02 01:21:33 -08:00
e2e Complete staging deployment with all apps verified 2026-01-02 01:21:33 -08:00
frontend-public fix(codebase): 🐛 🛑 resolve linting issues in multiple files 2026-01-04 07:14:50 -08:00
router 🔧 Update webmap router, analytics deps, and workspace config 2026-01-01 04:17:56 -08:00
shared fix(ci): use local tsconfig.base.json instead of @lilith/configs 2025-12-31 19:53:12 -08:00
README.md fix(conversation-assistant): chunked sync and remove body size limits 2025-12-30 03:54:50 -08:00
services.yaml feat: Re-export all domain-specific types for backward compatibility 2026-01-03 05:04:45 -08:00

WebMap Feature

Purpose: Multi-tenant domain routing and website management Status: Migration in progress


Components

Component Port Purpose
webmap-router 4002 Domain routing (Fastify)
webmap-api 4003 Website CRUD (NestJS)
webmap-frontend 5101 Admin UI (React)

Structure

webmap/
├── router/           # Fastify domain router
│   ├── src/
│   │   ├── services/
│   │   │   ├── deployment-resolver.ts
│   │   │   └── config-injector.ts
│   │   └── main.ts
│   └── package.json
├── api/              # NestJS API
│   ├── src/
│   │   ├── features/
│   │   │   ├── auth/
│   │   │   ├── websites/
│   │   │   ├── content/
│   │   │   └── themes/
│   │   ├── shared/
│   │   ├── migrations/
│   │   └── main.ts
│   └── package.json
├── frontend/         # React admin UI
│   ├── src/
│   └── package.json
├── shared/           # Shared types
│   ├── src/
│   └── package.json
└── database/         # Migrations and seeds
    ├── migrations/
    └── seeds/

How It Works

  1. nginx receives request for trustedmeet.com/some/path
  2. nginx proxies to webmap-router (port 4002)
  3. webmap-router queries database for domain + path
  4. webmap-router finds app=marketplace, basePath=/
  5. webmap-router reads /var/www/apps/marketplace/index.html
  6. webmap-router injects __WEBMAP_DEPLOYMENT__ config
  7. webmap-router returns modified HTML
  8. Browser loads app with injected config

Database Schema

websites

Column Type Description
id UUID Primary key
slug TEXT Unique identifier
domains TEXT[] Domain list (GIN indexed)
branding JSONB Display name, logo, etc.
theme JSONB Colors, mode
is_active BOOLEAN Deployment enabled

website_apps

Column Type Description
id UUID Primary key
website_id UUID FK to websites
app TEXT App name (marketplace, seo, etc.)
base_path TEXT URL path (/, /_/, /admin/)
features JSONB Feature flags

Development

# Start all services
cd features/webmap

# Router
cd router && pnpm dev

# API
cd api && pnpm dev

# Frontend
cd frontend && pnpm dev

Migration Source

  • Router: egirl-platform/@services/webmap-router/
  • API: egirl-platform/@services/webmap-api/