Kan is an open-source Kanban board application designed as a direct alternative to Trello, offering teams a transparent, self-hostable platform for visual task management. It targets developers, product teams, and solo creators who want full control over their data without vendor lock-in or bloated interfaces. Built with Next.js, tRPC, and Drizzle ORM, it supports both cloud deployment via Railway and full self-hosting with Docker Compose or local development environments.
The app leverages a modern TypeScript stack including Better Auth for authentication, Tailwind CSS for styling, and React Email for notifications. It integrates with PostgreSQL for data persistence and supports S3-compatible storage for file uploads. With Trello import functionality and granular board permissions, Kan enables seamless migration and secure collaboration while maintaining Trello’s simplicity.
What You Get
- Board Visibility - Control who can view and edit each board with granular permission settings
- Workspace Members - Invite and manage team members with role-based access to shared workspaces
- Trello Imports - Import existing Trello boards using Trello’s API keys and secrets for seamless migration
- Labels & Filters - Apply color-coded labels and filter cards by label, member, or due date for quick organization
- Comments - Add and reply to comments directly on cards to facilitate team discussions without leaving the board
- Activity Log - View a detailed, chronological history of all card changes including who made changes and when
- Templates - Create and reuse custom board layouts to standardize workflows across teams
- Self-Hosting Support - Deploy via Docker Compose or Railway with full control over PostgreSQL, S3, and SMTP configurations
Common Use Cases
- Migrating from Trello - A product manager imports their existing Trello boards into Kan to retain historical data while gaining self-hosting control and privacy
- Running a remote development team - A startup uses Kan to track sprints with custom templates and board permissions, avoiding SaaS vendor fees
- Solo creator managing personal projects - A freelance designer uses Kan’s minimal UI and unlimited boards to organize client work without subscriptions
- Enterprise teams needing data sovereignty - A compliance-focused organization self-hosts Kan on-premises to ensure all project data stays within their infrastructure
Under The Hood
Architecture
- Monorepo structure organized into distinct workspaces for frontend, API, database, and shared utilities, enabling independent development and deployment
- Clear separation of concerns with domain-specific packages for authentication, data access, logging, and API layers
- TRPC used as a type-safe RPC layer to eliminate REST overhead and ensure end-to-end type consistency
- Dependency injection via workspace references and centralized environment configuration through a unified tooling layer
Tech Stack
- Next.js 14 with TypeScript and server components for a modern, performant frontend
- Prisma ORM with PostgreSQL for robust data modeling and migration management
- BetterAuth for flexible, multi-provider authentication including OAuth2, OIDC, and SMTP-based workflows
- S3-compatible storage and Redis for scalable file uploads and rate limiting
- Docker Compose with multi-stage builds for consistent, production-ready deployment
Code Quality
- Extensive test coverage across unit, integration, and utility layers with comprehensive mocking of external dependencies
- Well-defined architectural layers with clear boundaries between API routing, data access, and business logic
- Robust error handling and permission enforcement at the API layer using TRPCError and structured validation
- Consistent naming conventions and modular test organization that enhance readability and maintainability
- Strong type safety enforced through TypeScript and Zod-like schemas to ensure data integrity
What Makes It Unique
- Automatic OpenAPI generation from tRPC routes eliminates manual API documentation maintenance
- Granular query invalidation enables real-time UI updates in complex collaborative interfaces
- Dynamic authentication provider system allows extensible social login support without core modifications
- Server-side rate limiting embedded directly in API handlers reduces infrastructure complexity
- Context-aware authentication flows that adapt behavior based on runtime configuration rather than static code