Colanode is an open-source, local-first alternative to Slack and Notion that empowers teams to collaborate without surrendering data control. Designed for individuals and organizations seeking privacy and autonomy, it unifies chat, documents, databases, and file storage in a single self-hostable platform. Unlike cloud-dependent tools, Colanode saves all changes locally first using SQLite, then syncs them in the background via CRDTs, ensuring uninterrupted work even offline.
Built with TypeScript and Electron for desktop, and powered by Yjs for real-time collaboration and Postgres with pgvector for structured data, Colanode supports deployment via Docker Compose, Kubernetes, or its free cloud beta. It integrates S3, Google Cloud Storage, and Azure Blob for file storage, and uses Redis for real-time messaging and state synchronization, making it a robust, production-ready alternative to proprietary tools.
What You Get
- Real-Time Chat - Instant messaging with channels and direct messages, synced via CRDTs and backed by Redis for low-latency delivery across devices.
- Rich Text Pages - A Notion-like editor with block-based formatting, embeds, and inline mentions, powered by Yjs for concurrent editing and local-first persistence.
- Customizable Databases - Structured data with custom fields, dynamic views (table, kanban, calendar), and relational links—all synced locally using SQLite and CRDTs.
- File Management - Upload, share, and organize files with support for S3, Google Cloud Storage, and Azure Blob backends, with local caching and permission controls.
- Local-First Sync - All edits are saved to a local SQLite database first, then asynchronously synced to the server using Conflict-free Replicated Data Types (CRDTs) via Yjs.
- Self-Hosting Support - Full control via Docker Compose or Kubernetes (with Helm charts), requiring only Postgres (with pgvector), Redis, and a storage backend to deploy independently.
Common Use Cases
- Running a privacy-focused team workspace - A remote team uses Colanode to replace Slack and Notion, hosting it on their own server to avoid third-party data collection while maintaining real-time chat and document collaboration.
- Offline-first documentation hub - A field research team in low-connectivity areas uses Colanode’s local-first editor to create and update wikis, syncing changes when back online without data loss.
- Self-hosted knowledge base for compliance - A healthcare startup uses Colanode to build an internal wiki with databases and file storage, ensuring HIPAA compliance by hosting all data on-premises.
- Developer team managing internal tools - A DevOps team deploys Colanode via Kubernetes to centralize project documentation, chat, and file sharing, reducing SaaS dependencies and licensing costs.
Under The Hood
Architecture
- Monorepo structure with Turbo enabling independent build and test pipelines for core modules like @colanode/core and @colanode/crdt
- Clear separation of concerns through domain-specific modules (MutationMap, QueryMap, JobMap) that encapsulate CRDT operations, query resolution, and background jobs without UI-layer database access
- Implicit dependency injection via service registries and factory patterns in EventBusService and SynchronizerMap, promoting loose coupling
- React components are strictly presentational, receiving data via external services to enforce business logic separation
- Consistent TypeScript configuration with strict mode, path aliases, and modular imports, reinforced by unified ESLint and Prettier standards
- Event-driven architecture using EventBus and ConnectionMutex to enable real-time synchronization without tight client coupling
Tech Stack
- Full-stack TypeScript ecosystem with Fastify for APIs, Kysely for type-safe SQL, and Zod for runtime validation
- React frontend powered by TanStack libraries for state and data fetching, with Lucide-React and Tiptap for rich UI components
- Vite for fast development builds and Vitest for comprehensive testing, supported by ESLint and Prettier for code consistency
- Electron-based desktop application with Forge, TSX-powered migrations, and post-install scripting
- Integrated tooling including debug utilities, lodash-es, and @tus for file uploads, with environment-aware configuration and end-to-end type safety
Code Quality
- Extensive test coverage spanning unit, integration, and end-to-end scenarios with realistic database and Redis environments
- Well-structured test helpers that abstract seed data creation, improving readability and reusability across modules
- Robust error handling with validation, custom boundaries, and graceful degradation in file and JSON operations
- Domain-driven naming conventions that reflect business semantics rather than technical implementation
- Strong TypeScript enforcement with precise interfaces for data contracts, reducing runtime errors and improving maintainability
- Uniform linting and configuration management across the monorepo, ensuring consistent code quality standards
What Makes It Unique
- Native offline-first synchronization using local-first node-based state management for seamless collaboration without real-time server dependency
- Unified file system abstraction that harmonizes mobile and web environments under a single interface
- Decoupled record field components with reactive, type-safe value binding that adapts dynamically to field metadata
- Client-side document graph manipulation with revision tracking to enable conflict-free edits prior to sync
- Extensible UI components built on domain-specific types, creating a self-documenting, structure-enforced component ecosystem
- Integrated ID generation system with typed identifiers that prevent cross-entity reference errors at compile time