Focalboard is an open source, self-hosted project management platform designed for technical teams and individuals seeking full control over their data. It replaces proprietary tools like Trello, Notion, and Asana by offering a flexible, multi-view interface for managing tasks, goals, and workflows without vendor lock-in. Built with Go and TypeScript, it supports both desktop and server deployments with SQLite or Docker, enabling privacy-focused teams to run it on their own infrastructure.
Focalboard integrates with the Mattermost ecosystem and provides a full-stack architecture with a Go backend, React-based web UI, and native desktop apps for Windows, macOS, and Linux. It supports real-time collaboration, customizable templates, and API-driven extensibility, making it ideal for teams that prioritize data sovereignty and customization over cloud-based SaaS solutions.
What You Get
- Kanban, Table, Gallery, and Calendar Views - Switch between four visual layouts to organize tasks based on workflow preference, with drag-and-drop reordering and real-time updates across all views.
- Unlimited Custom Attributes - Define custom fields (e.g., priority, due date, assignee) for cards to match your team’s workflow without being restricted by predefined options.
- Board Permissions & User Roles - Control access at the board level, allowing granular sharing with individuals or teams while maintaining data privacy on self-hosted servers.
- Customizable Templates - Use pre-built templates for Project Tasks, OKRs, Meeting Agendas, and Roadmaps, or create and save your own for repeatable workflows.
- File Sharing & Attachments - Upload and attach files directly to cards, enabling centralized document management without external links or cloud dependencies.
- Archiving & Backup Snapshots - Archive completed boards and create snapshots to preserve historical data for compliance or audit purposes without losing context.
- Real-Time Collaboration - Comment on cards, @mention teammates, and see live updates as team members make changes — all without leaving the platform.
- Multi-Team Views - View and manage tasks across multiple boards and teams from a single interface, enabling cross-functional alignment without switching tools.
Common Use Cases
- Running a technical team’s sprint planning - A DevOps lead uses Focalboard’s Kanban board to track Jira-style epics and tickets, with custom priority labels and due dates, all hosted internally for compliance.
- Managing a content calendar for a marketing team - A content manager uses the Gallery view to visualize blog posts, assign writers, and track deadlines with custom fields for SEO keywords and publishing status.
- Tracking company OKRs with visual progress - A product manager creates a dedicated board with goal cards, linked subtasks, and progress bars to align engineering and sales teams on quarterly objectives.
- Coordinating recurring team meetings - A team lead uses the Meeting Agenda template to collect agenda items in real time, assign action items to attendees, and archive minutes for future reference.
Under The Hood
Architecture
- Clear separation of concerns between Go backend and React frontend via a well-defined REST API
- Service-layer design with distinct model, service, and storage packages using constructor-based dependency injection
- Modular plugin system based on interface contracts to decouple external integrations from core functionality
- Configuration-driven runtime behavior through JSON files and environment flags, enabling seamless deployment across environments
- Lightweight server layer using Go’s native HTTP stack with explicit routing, avoiding heavy frameworks
Tech Stack
- Go 1.19+ backend with SQLite3 and PostgreSQL support, leveraging build tags for driver flexibility and embedded version metadata
- React and TypeScript frontend with SCSS styling, bundled via npm and served from the Go server
- Custom Makefile build system supporting cross-platform compilation, Docker integration, and binary packaging
- Embedded SQLite3 as default storage with optional PostgreSQL, configured at runtime via JSON
- Prometheus metrics endpoint and local socket communication for desktop and observability use cases
- CI/CD pipeline using GitLab CI with pre-built container images and external configuration inheritance
Code Quality
- Extensive test coverage across frontend and backend with unit, integration, and snapshot tests
- Modular code organization with isolated component testing and realistic state mocking via Redux and test factories
- Consistent use of snapshot testing to catch unintended UI changes and strong type safety enforced via TypeScript and Go structs
- Comprehensive error validation in tests using standard error types and structured assertions
- Clean naming conventions and test structure, though automated linting tooling is not explicitly evident
What Makes It Unique
- Native Mattermost plugin integration enables embedded board collaboration within team communication workflows
- Extensible lexical editor with custom inline formatting strategies for rich text without external dependencies
- Cross-platform architecture with shared core logic delivering consistent experience across web, desktop, and Nextcloud
- Real-time collaboration built into the data model with live markdown rendering and presence awareness
- Plugin-driven views and cards allow users to extend functionality without forking, fostering a flexible ecosystem