The Docs project is an open-source collaborative note-taking, wiki, and documentation platform designed to scale efficiently. It serves as an alternative to tools like Notion or Outline, emphasizing simplicity and real-time collaboration. The architecture of Docs is structured to support these goals, integrating various technologies and components.
Follow these steps to get the project up and running:
git clone https://github.com/suitenumerique/docs.git && \
cd docs && \
make bootstrap FLUSH_ARGS='--no-input'
The last command prepares the application for use by building the necessary services, installing dependencies, applying migrations, and compiling translations β all in one step.
π οΈ Backend (Django + DRF) aka impress: Powers the business logic, API endpoints, authentication, and permission management. Built with Django and the Django Rest Framework, itβs the backbone of all server-side operations.
πΌοΈ Frontend (React): The user interface is crafted with React, providing a fast, clean, and intuitive experience for document editing and navigation.
π€ Real-Time Collaboration (Yjs): Enables multiplayer editing with real-time syncing using Yjs, a CRDT-based framework that ensures conflict-free collaboration across users and devices.
π§ AI Assistant: Built-in AI actions let users generate, summarize, translate, and correct content, helping teams work faster and smarter.
π¦ Storage (MinIO): Uses MinIO, an S3-compatible object storage system, to handle uploaded documents, media assets, and persistent file storage β ideal for scalable deployments.
ποΈ Database (PostgreSQL): Relies on PostgreSQL for reliable and structured data management, ensuring transactional integrity and scalability across user and document data.
β‘ Caching & Task Queues (Redis): Leverages Redis for both caching and message queuing between services β boosting performance and enabling asynchronous operations like background processing.