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

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

  1. Create a project at supabase.com
  2. Copy .env.example to .env and fill in your credentials:
cp .env.example .env
PUBLIC_SUPABASE_URL=https://your-project.supabase.co
PUBLIC_SUPABASE_ANON_KEY=your-anon-key
  1. Run the database migration in Supabase SQL editor:
    • Open supabase/migrations/001_initial_schema.sql
    • Execute in your Supabase dashboard

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 variants
  • Input - Text input with label, error, hint
  • Textarea - Multi-line input
  • Select - Dropdown select
  • Avatar - User avatars with status
  • Badge - Status badges
  • Card - Content containers
  • Modal - Dialog windows
  • Spinner - Loading indicators
  • Toggle - On/off switches

Visit /style to see all components.