EscapeHatch is the monorepo for the Creator Co-Op Hub Chat Platform: a Matrix-based, Discord-like community product for creator collectives.
The repository now runs a usable local chat demo backed by the control-plane + PostgreSQL:
- Auth: developer login (or Discord OIDC when configured)
- One-time bootstrap: first authenticated user initializes hub/admin
- Chat domain: servers, channels, and persistent channel messages
- Web client: accessible browser UI for login, bootstrap, channel selection, and messaging
Synapse/Discord remain optional for day-one local testing.
.
├── apps/
│ ├── control-plane/ # Fastify control-plane API + auth/provisioning/chat routes
│ └── web/ # Next.js hosted client (local chat UI)
├── packages/
│ └── shared/ # Shared auth + domain contracts
├── .github/workflows/ci.yml
├── docker-compose.yml # Local infra: Postgres, Synapse, Keycloak, LiveKit, coturn
└── creator_co_op_hub_chat_platform_project_spec_reference_architecture.md
pnpm install
cp .env.example .env
docker compose up -d
pnpm dev- Web UI: http://localhost:3000
- Control plane health: http://localhost:4000/health
pnpm dev auto-loads root .env for both apps/control-plane and apps/web.
If you are using Matrix features for the first time:
- Generate the signing key:
bash docker/synapse/setup-synapse.sh - Start Synapse:
docker compose up -d synapse - Generate an admin access token (needed for
SYNAPSE_ACCESS_TOKENin.env) via the Synapse admin API or by manually creating a user and promoting them.
- Open
http://localhost:3000 - Sign in (default local path is Developer Login when
DEV_AUTH_BYPASS=true) - Run bootstrap in the UI by entering:
Hub NameSetup Token(must matchSETUP_BOOTSTRAP_TOKENfrom.env)
- Start messaging in the default
#generalchannel
pnpm lint
pnpm typecheck
pnpm build
pnpm test