ToolJet is an open-source low-code platform for building internal business applications, managed by a vibrant community. It features a drag-and-drop builder and supports integration with numerous data sources. The project is highly active, with a strong trajectory towards enhancing user experience and expanding functionality.
EventManager.jsx
are large and may benefit from refactoring for better maintainability.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 43 | 16 | 192 | 9 | 1 |
30 Days | 135 | 46 | 778 | 10 | 1 |
90 Days | 230 | 89 | 959 | 15 | 4 |
All Time | 4412 | 3571 | - | - | - |
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 |
---|---|---|---|---|---|---|
Johnson Cherian | 1 | 1/0/0 | 4 | 402 | 77200 | |
Parth | 1 | 0/0/0 | 2 | 5 | 30290 | |
Pratik Agrawal | 5 | 10/10/4 | 33 | 355 | 4351 | |
Shaurya Sharma (shaurya-sharma064) | 4 | 4/4/0 | 15 | 22 | 3847 | |
Aman Regu | 3 | 5/3/1 | 12 | 15 | 1666 | |
Devanshu Rastogi | 1 | 0/0/0 | 3 | 15 | 1175 | |
Karan Rathod | 1 | 4/4/0 | 10 | 30 | 967 | |
None (vjaris42) | 1 | 2/2/0 | 3 | 30 | 681 | |
Rohan Lahori (rohanlahori) | 1 | 2/3/0 | 5 | 40 | 489 | |
Rudhra Deep Biswas (rudeUltra) | 1 | 2/3/0 | 6 | 14 | 344 | |
Kartik Gupta (Kartik18g) | 1 | 2/2/0 | 2 | 12 | 317 | |
Joshua Oluikpe | 1 | 1/1/0 | 8 | 3 | 268 | |
Hisham Akmal | 1 | 1/1/0 | 5 | 2 | 214 | |
Nakul Nagargade (nakulnagargade) | 2 | 4/3/0 | 5 | 12 | 124 | |
Dhruv Sharma | 1 | 1/1/0 | 1 | 2 | 120 | |
Vrushabh Gawas | 1 | 1/1/0 | 1 | 2 | 100 | |
Saipavan Lingamallu | 1 | 1/1/0 | 1 | 2 | 96 | |
Abhinav | 1 | 1/1/0 | 1 | 2 | 92 | |
Atul1231 | 1 | 1/1/0 | 1 | 2 | 88 | |
Vanshjain2701 | 1 | 1/1/0 | 1 | 2 | 86 | |
avnish100 | 1 | 1/1/0 | 1 | 2 | 84 | |
Aayush Paigwar | 1 | 1/1/0 | 1 | 2 | 82 | |
Aryan Khurana | 1 | 1/1/0 | 1 | 2 | 81 | |
Olibhia Ghosh | 1 | 0/1/0 | 1 | 2 | 76 | |
Suraj | 1 | 1/1/1 | 1 | 2 | 72 | |
Adish M (adishM98) | 4 | 2/0/0 | 6 | 2 | 69 | |
Cyphrr_07 | 1 | 4/1/3 | 5 | 2 | 66 | |
void-hr | 1 | 0/1/0 | 1 | 2 | 64 | |
Baibhav Kumar | 1 | 1/1/0 | 1 | 2 | 64 | |
Sanket Rajendra Shinde | 1 | 0/1/0 | 1 | 2 | 64 | |
Vaishnavi-Raykar | 1 | 0/1/0 | 1 | 2 | 60 | |
Himanshu Balani | 1 | 1/1/0 | 1 | 2 | 48 | |
Akshay (akshaysasidrn) | 1 | 1/1/0 | 2 | 3 | 12 | |
Midhun G S (gsmithun4) | 1 | 1/1/0 | 1 | 3 | 6 | |
Raman Yudo | 1 | 2/0/1 | 1 | 1 | 4 | |
Aman Sharma (mnshrm) | 0 | 1/0/0 | 0 | 0 | 0 | |
Jon Pablo (JP-sDEV) | 0 | 1/0/0 | 0 | 0 | 0 | |
Aman Kumar (Namchi7) | 0 | 1/0/0 | 0 | 0 | 0 | |
Sumit Kumar Das (skdas20) | 0 | 1/0/0 | 0 | 0 | 0 | |
Amitabh Sahu (asdotdev) | 0 | 1/0/1 | 0 | 0 | 0 | |
Ayush Chauhan (eyesee11) | 0 | 5/0/4 | 0 | 0 | 0 | |
Ishan Sawai (ishan657) | 0 | 1/0/0 | 0 | 0 | 0 | |
Mayank (vortex-m) | 0 | 1/0/1 | 0 | 0 | 0 | |
Subham Singh (webobite) | 0 | 0/0/1 | 0 | 0 | 0 | |
Anas Younis (yunus102) | 0 | 3/0/2 | 0 | 0 | 0 | |
Mayur Kawale (Mefisto04) | 0 | 1/0/1 | 0 | 0 | 0 | |
Noha M. (NohaFahmi) | 0 | 1/0/1 | 0 | 0 | 0 | |
Parth Dwivedi (Parth4git) | 0 | 1/0/0 | 0 | 0 | 0 | |
Devagn Maniya (devagn611) | 0 | 1/0/1 | 0 | 0 | 0 | |
Mihir Kasare (mihir2004) | 0 | 1/0/1 | 0 | 0 | 0 | |
Mohit Deshmukh (mohizzzol) | 0 | 1/0/1 | 0 | 0 | 0 | |
Rohan (Rohan-3337) | 0 | 0/1/0 | 0 | 0 | 0 | |
Sonali Singh (Sonali9737) | 0 | 1/0/0 | 0 | 0 | 0 | |
Manbhav Sugla (manbhav234) | 0 | 1/0/0 | 0 | 0 | 0 | |
sahilborse18 (sahilborse) | 0 | 4/0/3 | 0 | 0 | 0 | |
Akash Jana (AkashJana18) | 0 | 1/0/0 | 0 | 0 | 0 | |
Anas Khafaga (anasKhafaga) | 0 | 0/0/1 | 0 | 0 | 0 | |
Joshua Jinu (joshua-jinu) | 0 | 1/0/0 | 0 | 0 | 0 | |
karan kumar (karandevhub) | 0 | 1/0/1 | 0 | 0 | 0 | |
Kushal Agrawal (kushal34712) | 0 | 0/0/1 | 0 | 0 | 0 | |
Maniteja (Maniteja0126) | 0 | 2/0/2 | 0 | 0 | 0 | |
Saurabh Gurde (SaurabhGurde) | 0 | 1/0/0 | 0 | 0 | 0 | |
Mihir Vargante (MihirVargante) | 0 | 1/0/1 | 0 | 0 | 0 | |
Nishant Rana (NishantRana07) | 0 | 1/0/1 | 0 | 0 | 0 | |
Bhojraj Lalit Narware (bhojrajnarwae) | 0 | 2/0/1 | 0 | 0 | 0 | |
Lakshita (lakshita10341) | 0 | 0/0/1 | 0 | 0 | 0 | |
Alok Singh (Alok-Singh-ops) | 0 | 0/0/1 | 0 | 0 | 0 | |
Souradip Dasgupta (GeeekySouro003) | 0 | 0/0/1 | 0 | 0 | 0 | |
Prashant Kumar Rai (prashantrai-30) | 0 | 1/0/1 | 0 | 0 | 0 | |
Arnav Mahalpure (AranavMahalpure) | 0 | 2/0/2 | 0 | 0 | 0 | |
Virender Bhambra (VirenderBhambra) | 0 | 1/0/0 | 0 | 0 | 0 | |
Mayur Athavale (mayurathavale18) | 0 | 2/0/1 | 0 | 0 | 0 | |
PUSHPAK CHAUDHARI (PushpakChaudhari) | 0 | 1/0/1 | 0 | 0 | 0 | |
Atul Singh (atulSingh1234567) | 0 | 0/0/1 | 0 | 0 | 0 | |
None (SanchitMahajan236) | 0 | 1/0/0 | 0 | 0 | 0 | |
Rudraksh Gajanan Nalbalwar (rudrakshnalbalwar) | 0 | 1/0/0 | 0 | 0 | 0 | |
Janumala Akhilendra (JanumalaAkhilendra) | 0 | 1/0/1 | 0 | 0 | 0 | |
Deepanshu Yadav (DeepanshuYadav-code) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 3 | The project faces moderate delivery risks due to a backlog of unresolved issues. In the past 90 days, 230 issues were opened versus 89 closed, indicating potential delays in addressing critical tasks. Feature requests like dark mode support (#10909) and layout improvements (#10894) remain open, posing risks if not prioritized. However, active maintenance efforts and enhancements to the ToolJet Database (TJDB) suggest ongoing progress. |
Velocity | 4 | The project's velocity is at risk due to a high volume of issues being opened compared to those closed (43 opened vs. 16 closed in the last week). This backlog could slow down progress. While there are active development efforts, such as enhancements to TJDB and new features like the SharePoint plugin, the focus on documentation updates may detract from more impactful development tasks. |
Dependency | 3 | Dependency risks are moderate as the project shows proactive management through updates like Docker release workflows for LTS compatibility. However, reliance on key contributors for significant changes poses a risk if they become unavailable. The introduction of new plugins like SharePoint also requires thorough testing to avoid dependency failures. |
Team | 2 | Team risks appear low with strong collaboration among members and engagement with community contributions. This distribution of tasks helps mitigate burnout and conflict. However, dependency on key contributors for major changes could pose challenges if not managed well. |
Code Quality | 3 | Code quality risks are moderate due to large-scale changes by key developers that need careful review. Issues like PR#11117 failing SonarCloud quality gate highlight maintainability concerns. Documentation updates indicate adherence to standards but do not address core functionality improvements. |
Technical Debt | 3 | Technical debt risks are moderate with some pull requests failing quality checks due to maintainability issues (e.g., PR#11117). Large changes by few developers could accumulate debt if not managed properly. Documentation updates help maintain clarity but do not reduce existing debt significantly. |
Test Coverage | 4 | Test coverage is a concern as many pull requests lack automated test validation, posing risks for reliability and robustness. The absence of test coverage on new code indicates potential gaps in catching regressions or bugs. |
Error Handling | 2 | Error handling appears robust with active bug fixes and responsiveness to user-reported issues (e.g., component handle visibility #11083). The use of tools like 'CodeHinter' in 'EventManager.jsx' enhances input validation and error prevention. |
The ToolJet project has seen active engagement with numerous issues created and addressed recently. Documentation updates and feature requests are prevalent, indicating ongoing improvements and community involvement.
Documentation Updates: A significant number of issues focus on updating documentation, especially for components like Image, Link, and QR Scanner. This suggests a drive to improve clarity and usability for contributors and users.
Feature Requests: There are several feature requests related to enhancing existing functionalities, such as adding dark mode support (#10909) and improving the user experience in layout creation (#10894).
Bug Fixes: Numerous bugs have been reported and addressed, including issues with component handles (#11083) and query manager inconsistencies (#9599).
Community Contribution: Many issues are labeled for community contribution, reflecting an open-source ethos encouraging external participation.
ToolJet Database (TJDB): Several issues pertain to TJDB enhancements, such as bulk updates (#10963) and CSV import functionality (#10962), highlighting its importance in the project's roadmap.
#11124: Update documentation for the Image Component
#11123: Update documentation for the Link Component
#11122: Update documentation for the Pagination Component
#11084: NumberInput default value issue
#11068: GitHub after before issue
#11049: Datepicker actions clear and setDate request
Community Engagement: The project actively encourages first-time contributors through labels like "good first issue" and "hacktoberfest," fostering a welcoming environment for new developers.
Ongoing Development: Continuous updates to documentation and feature requests indicate an evolving platform with a focus on user feedback and community-driven improvements.
Bug Resolution: Rapid closure of bug-related issues demonstrates effective maintenance practices, ensuring stability and reliability of the platform.
Overall, ToolJet's GitHub activity reflects a dynamic project with strong community involvement, consistent updates, and a commitment to enhancing both functionality and user experience.
#11138: Documentation Update for Image Component
#11137: Pagination Component Casing Fix
#11135: Star Rating Component Documentation
#11117: Infinite Render Fix in Table
#11112 & #11111: Docker Release Workflow Updates
#11136: Pagination Component Casing Fix
#11129: Update Release Notes
#11108 & #11107: Duplicate Documentation Updates for Tabs Component
#11096: UTF-8 Encoder and Decoder Template
The ToolJet project is actively maintained with frequent updates to both code and documentation. However, there are recurring issues with Contributor License Agreements that need addressing to facilitate smoother contributions. The focus on documentation suggests a commitment to improving user accessibility and understanding of the platform's features. Technical improvements continue, although some require better maintainability practices as indicated by SonarCloud feedback.
frontend/src/Editor/Inspector/EventManager.jsx
Structure & Organization:
Code Quality:
Functionality:
react-beautiful-dnd
for drag-and-drop functionality, which is well-integrated.Performance:
useEffect
with JSON stringification could be optimized by dependency arrays to avoid unnecessary re-renders.frontend/src/Editor/Inspector/Inspector.jsx
Structure & Organization:
Code Quality:
deepClone
indicates attention to immutability, which is good practice.Functionality:
useTranslation
) shows internationalization support.Performance:
useEffect
effectively but could benefit from additional memoization to prevent unnecessary renders.package.json
Structure & Organization:
Code Quality:
lint-staged
and husky
for pre-commit hooks, indicating a focus on maintaining code quality through automated checks.Functionality:
server/src/services/components.service.ts
Structure & Organization:
Code Quality:
@InjectRepository
).Functionality:
Performance:
dbTransactionForAppVersionAssociationsUpdate
), which should ensure atomic operations.Consistency & Best Practices:
Maintainability:
Documentation & Comments:
Overall, the codebase reflects a mature project with attention to modern development practices. However, there are opportunities for optimization in terms of performance and maintainability.
Karan Rathod
Pratik Agrawal
Johnson Cherian
Shaurya Sharma
Nakul Nagargade
Rudhra Deep Biswas
Adish M
Aman Regu
Devanshu Rastogi
Documentation Focus: A significant portion of recent activity has been dedicated to updating and fixing documentation. This includes correcting links, updating guides, and adding new content for features like Sharepoint integration.
Collaboration: Team members frequently co-authored commits, indicating a collaborative approach to both development and documentation tasks.
Frontend Enhancements: There was a strong focus on improving the frontend experience, with fixes for UI components, dark mode issues, and app builder functionalities.
Plugin Development: Efforts were made to enhance marketplace plugins such as Sharepoint, showcasing ongoing development in expanding ToolJet's integration capabilities.
Bug Fixes: Numerous commits addressed bug fixes across various components, emphasizing stability improvements in both the frontend and backend systems.