AppFlowy is an open-source, AI-powered collaborative workspace, serving as an alternative to Notion. It is developed by a community-driven initiative emphasizing data privacy and cross-platform functionality using Flutter and Rust. The project is in an active development phase with a focus on expanding features and addressing user feedback.
LucasXu0
Ahad-patel
Nathan.fooo
Xazin
Richard Shiue
Kilu.He
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 40 | 4 | 12 | 21 | 1 |
30 Days | 100 | 89 | 81 | 65 | 1 |
90 Days | 311 | 161 | 383 | 142 | 1 |
All Time | 2940 | 2087 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Lucas | 2 | 16/13/2 | 35 | 129 | 8182 | |
Richard Shiue | 1 | 15/14/1 | 14 | 111 | 6084 | |
Nathan.fooo | 8 | 9/7/0 | 35 | 76 | 5672 | |
Kilu.He | 2 | 5/5/0 | 6 | 132 | 3916 | |
Mathias Mogensen | 1 | 9/7/0 | 7 | 68 | 3726 | |
Zack | 4 | 3/1/3 | 15 | 26 | 2245 | |
rensawamo | 1 | 1/1/0 | 1 | 2 | 127 | |
proxycon | 1 | 1/1/0 | 1 | 27 | 126 | |
Murat Sarıbaş | 1 | 1/1/0 | 1 | 7 | 98 | |
Blas (Xeoneid) | 0 | 1/0/0 | 0 | 0 | 0 | |
Ahad Patel (Ahad-patel) | 0 | 2/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 4 | The project faces significant delivery risks due to a substantial backlog of 853 open issues, including critical bugs like #6677. The lack of structured milestone planning further exacerbates this risk. Additionally, incomplete implementations in pull requests, such as the placeholder functions in PR#6597, indicate potential delays. |
Velocity | 3 | The project's velocity is moderate, with active commit activity from key developers like Lucas and Richard Shiue. However, the increasing issue backlog and dependency on a few contributors pose risks to sustained velocity. The disparity between opened and closed issues over 90 days highlights potential bottlenecks. |
Dependency | 3 | The project shows dependency risks primarily due to reliance on key developers for major contributions. If these individuals become unavailable, it could significantly impact progress. Additionally, issues like #6643 regarding data import failures on macOS suggest potential external dependency challenges. |
Team | 3 | While the team shows strong collaboration in code reviews and testing, the uneven distribution of workload among developers could lead to burnout or dependency on specific individuals. The high number of unresolved issues also suggests potential communication or prioritization challenges. |
Code Quality | 4 | Code quality is at risk due to incomplete implementations in pull requests (e.g., PR#6597) and the rapid pace of changes without adequate review processes. The reversion of PR #6613 post-merge due to unforeseen issues highlights potential quality concerns. |
Technical Debt | 4 | Technical debt is a concern given the high volume of changes and lack of comprehensive documentation or testing. The complexity introduced by rapid development and customization, such as in 'appflowy_popup_menu.dart', could lead to maintainability challenges. |
Test Coverage | 5 | Test coverage is critically insufficient across multiple pull requests, posing significant risks to reliability and stability. Many PRs lack test cases entirely, which could lead to undetected issues and regressions. |
Error Handling | 4 | Error handling mechanisms are limited, with most files relying on basic UI feedback without robust logging or tracking systems. This poses a risk for capturing and analyzing unexpected errors, impacting overall reliability. |
Recent GitHub issue activity for the AppFlowy project has been notably high, with a focus on bug fixes and feature requests. There are 853 open issues, indicating an active development cycle with ongoing challenges and user feedback integration.
Several issues exhibit anomalies or special significance:
Themes among the issues include mobile app enhancements, data migration challenges, and AI feature improvements. The presence of numerous feature requests indicates a strong user interest in expanding AppFlowy's capabilities.
#6677: "[Bug] Desktop app does not open after fresh install"
#6665: "[FR] Share image from gallery to Android version of AppFlowy"
#6664: "[Bug] Not supported on android Sdk 24"
#6670: "1"
#6603: "[Bug] Building from source: error"
#6578: "[FR] Creation of link to a page"
These issues reflect ongoing efforts to address both critical bugs and user-requested features, showcasing AppFlowy's commitment to improving its platform through community engagement and developer responsiveness.
This analysis covers recent pull requests (PRs) for the AppFlowy project, focusing on open and recently closed PRs. The aim is to identify notable issues, improvements, and any PRs that were closed without being merged.
#6673: feat: enable link to database in slash menu
#6672: fix: Owner can delete spaces created by other users
#6671: chore: optimize import appflowy data
#6632: feat: files media improvements
#6614: feat: custom namespace/domain
#6676: chore: capitalization for field editor insert left/right
#6675: feat(flutter_desktop): press enter to confirm a dialog
#6666: fix: optimize bundle
#6658: chore(flutter_desktop): improve title and heading appearance
#6582: feat(flutter): date picker improvements
The AppFlowy project demonstrates active development with a focus on enhancing features and optimizing performance. However, there are areas needing attention such as ensuring comprehensive test coverage and addressing translation gaps. The community's engagement through contributions is evident, but maintaining quality assurance will be crucial as the project evolves.
frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/space/shared_widget.dart
SpacePermissionSwitch
, SpaceCancelOrConfirmButton
, and ConfirmPopup
indicates a modular approach.Bloc
) is evident, which is a good practice for managing complex UI states.LocaleKeys
) for text, indicating support for multiple languages.frontend/appflowy_flutter/test/widget_test/confirm_dialog_test.dart
flutter_test
package effectively to simulate user interactions.pumpWidget
and simulateKeyEvent
demonstrates a good understanding of Flutter's testing framework.frontend/appflowy_flutter/lib/workspace/presentation/settings/pages/settings_workspace_view.dart
frontend/appflowy_web_app/index.html
<%- cdnLinks %>
) which can improve load times by leveraging cached resources across different users.frontend/rust-lib/flowy-user/src/services/data_import/appflowy_data_import.rs
rayon::prelude::*
) effectively for parallel processing.anyhow
. However, at 1351 lines, it might be beneficial to split this file into smaller modules focusing on specific tasks (e.g., session management, database operations)..github/workflows/flutter_ci.yaml
.github/workflows/rust_ci.yaml
rustfmt
) and linting (clippy
). Also manages Docker containers for integration tests with AppFlowy Cloud.frontend/resources/translations/en.json
frontend/appflowy_flutter/lib/plugins/database/widgets/cell/card_cell_skeleton/text_card_cell.dart
Bloc
). Supports keyboard shortcuts for editing actions.frontend/appflowy_web_app/src/components/editor/components/leaf/mention/MentionPage.tsx
useEffect
, useState
, useMemo
) appropriately to manage component lifecycle and memoization. TypeScript types are used effectively to ensure type safety.Overall, the codebase demonstrates strong adherence to modern development practices across different technologies (Flutter/Dart, Rust, TypeScript). There are opportunities for further modularization in some larger files to improve maintainability without compromising functionality or performance.
Richard Shiue (richardshiue)
Kilu.He (qinluhe)
Proxycon (Proxycon)
Nathan.fooo (appflowy)
Lucas (LucasXu0)
Rensawamo (rensawamo)
Mathias Mogensen (Xazin)
Zack (speed2exe)
Murat Sarıbaş (muratsaribas)
Overall, the AppFlowy development team is actively working towards enhancing the platform's capabilities while ensuring stability and usability across different environments.