You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.2 KiB
3.2 KiB
Root Organization Platform
Team collaboration platform with Documents, Kanban, and Calendar - no messaging.
Tech Stack
- Frontend: SvelteKit 2 + Svelte 5 + TailwindCSS 4
- Backend: Supabase (PostgreSQL + Auth + Realtime)
- Deployment: Docker + adapter-node
Features
- 📁 Documents - Folders and rich text documents with collaborative editing
- 📋 Kanban - Visual task boards with drag-drop and real-time sync
- 📅 Calendar - Team scheduling with events and attendees
- 👥 Teams - Organizations, members, roles (Owner/Admin/Editor/Viewer)
Quick Start
1. Install dependencies
npm install
2. Set up Supabase
- Create a project at supabase.com
- Copy
.env.exampleto.envand fill in your credentials:
cp .env.example .env
PUBLIC_SUPABASE_URL=https://your-project.supabase.co
PUBLIC_SUPABASE_ANON_KEY=your-anon-key
- Run the database migration in Supabase SQL editor:
- Open
supabase/migrations/001_initial_schema.sql - Execute in your Supabase dashboard
- Open
3. Run development server
npm run dev
Visit http://localhost:5173
Docker
Production
docker-compose up app
Development (with hot reload)
docker-compose up dev
Routes
| Route | Description |
|---|---|
/ |
Organization list (home) |
/login |
Auth (login/signup) |
/style |
UI component showcase |
/health |
Health check endpoint |
/[orgSlug] |
Organization overview |
/[orgSlug]/documents |
Documents with rich text editor |
/[orgSlug]/kanban |
Kanban boards |
/[orgSlug]/calendar |
Calendar events |
Project Structure
src/
├── lib/
│ ├── api/ # Supabase API functions
│ │ ├── organizations.ts
│ │ ├── documents.ts
│ │ ├── kanban.ts
│ │ └── calendar.ts
│ ├── components/
│ │ ├── ui/ # Reusable UI components
│ │ ├── documents/ # FileTree, Editor
│ │ ├── kanban/ # KanbanBoard
│ │ └── calendar/ # Calendar
│ ├── stores/ # Svelte 5 state stores
│ └── supabase/ # Supabase client & types
├── routes/
│ ├── login/ # Auth pages
│ ├── style/ # Component showcase
│ ├── health/ # Health endpoint
│ ├── auth/callback/ # OAuth callback
│ ├── auth/logout/ # Sign out
│ └── [orgSlug]/ # Organization routes
│ ├── documents/
│ ├── kanban/
│ └── calendar/
└── hooks.server.ts # Auth middleware
UI Components
All components available in $lib/components/ui:
Button- Primary, Secondary, Ghost, Danger, Success variantsInput- Text input with label, error, hintTextarea- Multi-line inputSelect- Dropdown selectAvatar- User avatars with statusBadge- Status badgesCard- Content containersModal- Dialog windowsSpinner- Loading indicatorsToggle- On/off switches
Visit /style to see all components.