Docs is a self-hosted, collaborative note-taking and documentation platform that enables teams to write, edit, and organize knowledge in real time. Built for public sector organizations and open communities, it offers a clean, structured alternative to proprietary tools like Notion or Google Docs, with full control over data and infrastructure. It emphasizes transparency, interoperability, and compliance with open standards.
The platform combines Django Rest Framework for the backend, React and Next.js for the frontend, and leverages BlockNote.js and Yjs for real-time collaborative editing. It supports deployment via Docker Compose, Kubernetes, Nix, and YunoHost, and integrates with S3-compatible storage. All core functionality is MIT-licensed, with optional GPL-licensed export features that can be disabled for full compliance.
What You Get
- Real-time collaborative editing - Multiple users can edit documents simultaneously with live cursors, presence indicators, and conflict-free synchronization powered by Yjs and HocusPocus.
- Block-based editor with slash commands - A flexible block system inspired by Notion allows users to insert headings, lists, code blocks, and media with intuitive slash commands.
- Granular access control - Define per-document permissions for teams and individuals, enabling secure knowledge sharing within organizations.
- Export to multiple formats - Export documents to .docx, .odt, .pdf, and .md for interoperability with legacy systems and external workflows.
- Offline editing support - Continue working without internet connectivity, with changes syncing automatically when reconnected.
- AI-assisted writing tools - Built-in AI helpers for rewriting, summarizing, translating, and fixing typos to accelerate content creation.
- Searchable knowledge base - Full-text search across all documents and subpages to quickly locate information in large documentation sets.
- Self-hosted deployment options - Deploy on Docker Compose, Kubernetes, Nix, or YunoHost with full control over data and infrastructure.
Common Use Cases
- Running a government knowledge base - A public agency uses Docs to centralize internal policies, procedures, and onboarding materials with role-based access and audit trails.
- Managing open-source project documentation - A developer team uses Docs to maintain API docs, contributor guides, and RFCs with real-time collaboration and Markdown export.
- Creating internal training materials - An HR department builds interactive onboarding modules with embedded media and version history, exported to PDF for distribution.
- Collaborative research documentation - A university lab shares experiment notes, data interpretations, and citations in a structured, searchable format with team-wide editing rights.
Under The Hood
Architecture
- Django-based backend with clear separation of models, management commands, and API endpoints using Django REST Framework patterns
- Frontend built with React, Zustand for state management, and TanStack Query for data fetching, ensuring clean separation of API clients, hooks, and UI components
- Modular monorepo structure with isolated frontend and backend directories, each with dedicated Docker build stages and dependency management
- Microservice-like Docker composition featuring decoupled services (PostgreSQL, Redis, MinIO, Celery, Nginx) connected via named networks and health checks
- Dependency injection via environment variables and Django’s configuration flags to seamlessly switch between development, build, and production environments
- Independent frontend and backend builds using multi-stage Dockerfiles with optimized static asset handling and symlink strategies
Tech Stack
- Django backend powered by Python 3.13.3-alpine, enhanced with Django REST Framework and Celery for asynchronous task processing
- Primary data stores include PostgreSQL and Redis, with MinIO for object storage and Mailcatcher for email testing in non-production environments
- Docker-based multi-stage builds with custom entrypoints and user isolation for secure, reproducible development and production deployments
- Nginx serving as a reverse proxy for both frontend and backend traffic, with integrated Keycloak authentication
- Frontend built with Node.js and Yarn, using custom Dockerized bundling pipelines for optimized asset delivery
- Automated dependency updates via Renovate with strict version pinning and SOPS for secrets encryption across environments
Code Quality
- Comprehensive test coverage spanning unit, integration, and end-to-end layers with precise assertions for edge cases and permission flows
- Robust error handling through custom exception classes and consistent use of pytest.raises for predictable failure scenarios
- Clear separation between backend services and API endpoints, with test files structured to mirror production module organization
- Strong type safety enforced across both Python and TypeScript codebases using type guards and interface validation
- Extensive E2E testing with Playwright validating complex UI state transitions, inheritance logic, and accessibility compliance
- Strict linting and modular test suites with descriptive naming that reflect domain semantics and promote maintainability
What Makes It Unique
- Integrated Yjs-based real-time collaboration directly into document editing, enabling live co-editing without external dependencies
- Built-in document import/export engine supporting Word and Markdown with automatic state synchronization via Yjs updates
- Unified onboarding system leveraging a design system component library to deliver guided first-use experiences with minimal custom code
- Seamless API-layer validation that transforms Django ValidationErrors into rich, standardized frontend error responses
- Native document duplication with automatic content state preservation before cloning, ensuring fidelity without user intervention
- Deep integration of a government design system (La Suite) to ensure consistent, accessible, and compliant UI components across the platform