2a28d88849bc88de38c9cc6374dffea21ab478a7
Root
Team collaboration platform built with SvelteKit, Supabase, and TailwindCSS.
Quick Start
npm install
cp .env.example .env # Fill in your credentials
npm run dev
Environment Variables
| Variable | Required | Description |
|---|---|---|
PUBLIC_SUPABASE_URL |
Yes | Supabase project URL |
PUBLIC_SUPABASE_ANON_KEY |
Yes | Supabase anonymous key |
GOOGLE_API_KEY |
No | Google Maps API key (for map module) |
GOOGLE_SERVICE_ACCOUNT_KEY |
No | Google Calendar push (JSON key) |
MATRIX_HOMESERVER_URL |
No | Matrix/Synapse homeserver URL |
MATRIX_ADMIN_TOKEN |
No | Synapse admin token for auto-provisioning |
RESEND_API_KEY |
No | Resend.com API key for invite emails |
RESEND_FROM_EMAIL |
No | Verified sender email (e.g. noreply@yourdomain.com) |
Database
Migrations are in supabase/migrations/. Push them with:
npm run db:push # Push pending migrations
npm run db:types # Regenerate TypeScript types
npm run db:migrate # Both in one step
Production Deployment
Docker
docker-compose up -d app
The app runs on port 3000 with a /health endpoint for monitoring.
Manual
npm run build
node build
Set PORT (default 3000), HOST (default 0.0.0.0), and NODE_ENV=production.
Development (Docker)
docker-compose up dev
Description
Languages
Svelte
54.8%
TypeScript
39.4%
PLpgSQL
5.4%
CSS
0.3%