$ account AppFlowy-IO
AppFlowy is an open-source AI workspace application (Notion alternative) with a Rust backend and Flutter frontend. The system provides document editing, database views (grid/board/calendar), AI chat and completion, cloud sync, collaboration, file storage, and search. It employs a modular, event-driven architecture using a custom plugin system (lib-dispatch) and protobuf code generation. The backend is split into many small crates with clear trait abstractions for cloud services, storage, and field types. Notable strengths include a well-structured database type-option system, a priority task scheduler, and support for local AI via Ollama. Weaknesses include a complex dependency graph, custom build tools, and some duplicate test infrastructure. Overall, it is a high-quality, actively developed product with strong engineering practices.
AppFlowy-Cloud is the Rust backend for the AppFlowy collaborative workspace platform, providing real-time document editing via CRDT (Yrs) with WebSocket sync, REST APIs for user/workspace management, AI features (chat, completion, embeddings), file storage (S3/MinIO), and background indexing. It follows a multi-service architecture with a main Actix-web server, a background worker (Axum), and an admin frontend (Axum/Askama), all orchestrated via Docker Compose. The codebase is extensive and well-structured, with many reusable libraries for database access, access control (Casbin), real-time protocol handling, and AI client integration. A significant portion is dedicated to integration tests covering collaborative sync, file uploads, and AI operations. However, this repository is explicitly marked as a legacy open-source release. The README states it is no longer maintained; active development has moved to a closed-source commercial fork. This results in some technical drift, such as deprecated endpoints, commented-out tests, and workarounds for known issues. Despite this, the code demonstrates high craftsmanship with clean abstractions (e.g., StreamRouter, ReconnectionManager, CollabStore trait) and robust patterns for distributed systems. It serves as a valuable reference for building real-time collaborative backends, but any reuse should account for its stale maintenance status and the need to update dependencies and fix known bugs.
AppFlowy-Web is a feature-rich collaborative workspace application built with React, TypeScript, and Yjs (CRDT). It provides real-time collaborative document editing via a Slate-based editor, multiple database views (grid, board, calendar, gallery, list, timeline, feed, chart), AI-powered writing assistance and chat, publishing/sharing capabilities, and workspace management. The application is designed as an open-source alternative to Notion, supporting both cloud-hosted and self-hosted deployments. The architecture is a single-page application with Yjs as the core data model for offline-first collaboration, backed by IndexedDB caching and REST/WebSocket APIs. The codebase is extensive (4000+ files) with comprehensive unit and E2E tests, but exhibits moderate technical drift due to mixed UI paradigms (MUI + Radix), complex Yjs observer lifecycle management, and some deprecated environment variable mappings.