Open-source project management and collaboration for teams. Kanban boards, team workspaces, calendar views, and a command palette, all self-hosted with Docker Compose. No SaaS fees, no vendor lock-in, just your data on your infrastructure.
π Our Live Demo is online! Check it out!
π Read the Werkyn Documentation for more information and features.
For local testing and development. Expect breaking changes before a stable release. There may be security flaws in the current state. Do not use in production. This will require Docker and Docker Compose.
- Clone the repository:
git clone https://github.com/werkyn/werkyn.git
cd werkyn- Start the application:
docker compose up --buildThis builds the app image, starts PostgreSQL, runs database migrations, and launches the server.
- App:
http://localhost:3000 - Mailpit (email testing UI):
http://localhost:8025
Kanban Boards - Visual task management with customizable status columns
- List View - Table view with sorting, filtering, and bulk operations
- Calendar View - Timeline and calendar integration for scheduling
- Task Properties - Rich task details including:
- Priorities (Urgent, High, Medium, Low)
- Assignees and labels
- Due dates and start dates
- Subtasks and dependencies
- Comments with @mentions
- File attachments
- Custom fields (text, number, date, select)
- Task Templates - Reusable task templates for common workflows
- Recurring Tasks - Automatically create tasks on schedules
- Real-time Updates - WebSocket-powered live collaboration
- Notion-like Editor - Rich text editing with BlockNote
- Spaces & Pages - Organized wiki structure
- Team Documentation - Collaborative knowledge base
- Personal Files - Private file storage per user
- Team Shares - Shared folders and team collaboration
- File Uploads - Direct file attachments to tasks
- Multi-workspace Support - Organize projects by workspace
- Team Collaboration - Member management and permissions
- Command Palette - Quick navigation and actions (cmdk)
- Dark Mode - Modern UI with theme support
This is a pnpm monorepo with three packages:
werkyn/
βββ packages/
β βββ shared/ # Zod schemas, TypeScript types, and constants
β βββ backend/ # Fastify HTTP/WebSocket server with Prisma
β βββ frontend/ # React SPA with Vite
βββ package.json # Root workspace configuration
βββ tsconfig.base.json
- Backend modules follow routes β controller β service layering
- Authorization resolves workspace context from route params
- Real-time events broadcast via WebSocket subscriptions
- Frontend features organized into feature folders with
api.ts,components/, andhooks/
- React 19 - Latest React with modern features
- Vite - Fast build tool and dev server
- TanStack Router - Type-safe file-based routing
- TanStack Query - Server state management
- Zustand - Client state management
- Tailwind CSS v4 - Utility-first styling
- Mantine UI - Component library
- BlockNote - Rich text editor
- FullCalendar - Calendar component
- dnd-kit - Drag and drop functionality
- Node.js - Runtime environment
- Fastify 5 - Fast web framework
- Prisma - Type-safe ORM
- PostgreSQL - Database
- WebSocket - Real-time communication
- JWT - Authentication
- Zod - Schema validation
- pnpm Workspaces - Monorepo package management
- TypeScript - Type safety across the stack
- Docker Compose - Single-command containerized deployment
For contributors who want to run outside of Docker:
- Node.js >= 20.0.0
- pnpm >= 9.0.0
- Docker (for PostgreSQL and Mailpit)
- Start the infrastructure services:
docker compose up postgres mailpit- Install dependencies:
pnpm install- Set up environment variables:
cd packages/backend
cp .env.example .env
# Edit .env with your database connection and other settings- Set up the database:
cd packages/backend
pnpm db:generate
pnpm db:migrate
pnpm db:seed # Optional: seed with sample data- Start development servers:
# From the root directory
pnpm devThis will start both the backend and frontend in development mode:
- Backend:
http://localhost:3000 - Frontend:
http://localhost:5173
Root level:
pnpm dev- Start both backend and frontend in development modepnpm build- Build all packagespnpm lint- Lint all packagespnpm format- Format code with Prettierpnpm format:check- Check code formatting
Backend (packages/backend):
pnpm dev- Start development server with hot reloadpnpm build- Build for productionpnpm start- Start production serverpnpm db:migrate- Run database migrationspnpm db:generate- Generate Prisma clientpnpm db:seed- Seed database with sample datapnpm db:studio- Open Prisma Studio
Frontend (packages/frontend):
pnpm dev- Start Vite dev serverpnpm build- Build for productionpnpm preview- Preview production build
Contributions are welcome! This project is in active development. Please check back soon for contribution guidelines and code of conduct.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
The AGPL-3.0 license ensures that:
- You can use, modify, and distribute the software
- If you modify the software and run it as a network service, you must make the source code available to users
- All modifications must be released under the same license
- Live Demo: demo.werkyn.com
- Issues: GitHub Issues
- Discussions: GitHub Discussions

