Self-hosted service
ToolJet/ToolJet avatar
ToolJet/ToolJet

ToolJet: A Self-Hostable Visual Builder for Internal Tools, With AI Features Held Back for Enterprise

ToolJet is an open-source low-code platform for internal tools, dashboards, workflows, and AI agents, with a drag-and-drop builder, 60+ components, and 80+ data sources.

40,925 stars5,448 forksJavaScriptAGPL-3.0

At a glance

What is it?
ToolJet is an open-source visual builder for internal tools, dashboards, and workflows, with a built-in database and 80-plus data sources. The community edition is genuinely self-hostable, but the AI generation, debugging, and agent features live behind the paid ToolJet AI tier.
Who is it for?
Adopt ToolJet if you need a self-hostable, visual internal tool builder with broad data source support and are comfortable with AGPL-3.0. Skip it if your core need is AI-assisted app generation, because that is only in the paid ToolJet AI tier, or if you require a permissive license.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What ToolJet Actually Solves

ToolJet targets teams that repeatedly build the same kind of software: admin panels, dashboards, CRUD interfaces, and approval workflows that sit on top of existing databases and APIs. Instead of standing up a separate React or Vue app for each one, a builder lets you assemble a UI from components and connect it to data sources with configuration rather than boilerplate. The README positions the community edition as the open-source foundation, with 60-plus components, a built-in database, multi-page apps, and multiplayer editing. The intended user is someone who can wire up a query and drag a table onto a canvas, but does not want to write a full frontend for every internal request. The project also supports running JavaScript and Python inside apps, which pushes it past pure no-code and into low-code territory. For teams that already run Postgres, MySQL, or REST APIs, ToolJet offers a single place to expose that data to non-developers.

How the Data Flow Works

The README is thin on internal architecture, but it does state two security-relevant mechanisms: AES-256-GCM encryption and proxy-only data flow. The proxy-only phrase suggests that queries from the browser do not hit data sources directly; they go through the ToolJet server, which holds credentials and forwards requests. That design matters for self-hosters because it means database passwords and API keys stay server-side, and the browser only sees the response. The built-in ToolJet Database is a no-code database, which the README lists as a feature but does not explain in depth. Based on the Docker volume mount in the quickstart, the database persists under /var/lib/postgresql/13/main, which indicates the ToolJet Database runs on PostgreSQL. The visual builder, the query editor, and the database all sit behind a single server, so the deployment is a monolith rather than a microservices sprawl. That is a practical choice for internal tools, where operational simplicity usually beats horizontal scaling.

Getting It Running: Docker and Beyond

The quickstart gives one command to run ToolJet locally: docker run with the image tooljet/try:ee-lts-latest, mapping port 80, and mounting a volume named tooljet_data to /var/lib/postgresql/13/main. The command also passes --platform linux/amd64, which is a sign that ARM support is not guaranteed for the try image. The README recommends the LTS version over the latest for upgrades, citing stability, security patches, and performance enhancements. For production, the self-hosted section lists deployment guides for Digital Ocean, Docker, AWS EC2, AWS ECS, OpenShift, Helm, Kubernetes (EKS, GKE, AKS), Azure Container, and Google Cloud Run. There is also a guide for deploying the ToolJet client separately, which implies a split between server and client that you can scale independently. The AWS and Azure Marketplace listings offer a one-click path for users who prefer managed procurement over raw Docker or Helm.

The Enterprise Tier Is Where the AI Lives

The community edition is feature-rich, but the README is explicit that AI app generation, AI query building, AI debugging, and the agent builder are all ToolJet AI features. That is a hard boundary: if your reason for evaluating ToolJet is natural-language-to-app generation, the open-source repository alone will not give it to you. The enterprise tier also adds GitSync and CI/CD integration with GitHub and GitLab, multi-environment management, fine-grained access control at the row, component, page, and query levels, and embedded apps. Some of these, like SSO and granular access control, are listed under community features as well, so the exact split is not fully clear from the README. The practical consequence is that you must read the ToolJet AI documentation before assuming the community edition covers compliance-heavy use cases. The proxy-only data flow and encryption are in the community edition, but SOC 2 and GDPR readiness are listed under enterprise.

A Real Limitation: The License and the Upgrade Path

ToolJet is licensed under AGPL-3.0, which is a strong copyleft license. If you modify the source and offer it as a network service, you must release your modifications under the same license. For an internal tool builder, that is often acceptable, but it rules out embedding ToolJet in a proprietary SaaS product without open-sourcing your changes. The README also reveals a branching model where the base branch is develop, and stable versions are tagged as v1.x.x, yet the recent releases are labeled v3.21.63-beta and v3.20.218-lts. That inconsistency is confusing for adopters; the versioning scheme has clearly moved past the v1.x.x mention in the contributing section. A more concrete limitation is that the Docker quickstart forces linux/amd64, so Apple Silicon users or ARM-based servers may need extra steps. The README does not mention ARM builds, so you should verify that before planning a Raspberry Pi or Graviton deployment.

Alternatives and the Difference in Approach

The nearest alternative is Retool, which also builds internal tools from a drag-and-drop canvas and connects to databases and APIs. The key difference is licensing and hosting: Retool is proprietary, while ToolJet is AGPL-3.0 and self-hostable. ToolJet also offers a built-in database, which Retool does not in the same way; Retool typically expects you to bring your own Postgres or similar. Another alternative is Appsmith, which is also open-source and self-hostable, and it uses a similar widget-and-query model. Appsmith has historically used Apache-2.0 for its community edition, which is more permissive than AGPL-3.0. If license flexibility matters more than the specific component set, that is a meaningful difference. ToolJet's differentiator in the README is the AI tier and the breadth of deployment targets, so the choice often comes down to whether you want a vendor-managed AI layer or a fully open stack.

Maintenance and Upgrade Costs

The README explicitly recommends the LTS version over the latest for upgrades, which is a maintenance signal: this project expects you to track a release channel, not just pull the newest tag. The release cadence shown in the repository, with beta releases every two days and an LTS release on the same day, indicates active development but also a fast-moving target. You should plan for regular upgrades to get security patches, as the README ties LTS to production bug fixes and security patches. The self-hosted deployment guides cover Kubernetes and Helm, which means you can automate upgrades, but the AGPL license means you must keep your own modifications available if you distribute them. The ToolJet CLI for creating plugins and connectors is another maintenance surface; custom plugins need to be versioned alongside the server. None of this is a dealbreaker, but it is not a set-and-forget tool.

Editorial conclusion

Adopt ToolJet if you need a self-hostable, visual internal tool builder with broad data source support and are comfortable with AGPL-3.0. Skip it if your core need is AI-assisted app generation, because that is only in the paid ToolJet AI tier, or if you require a permissive license. Before committing, verify the deployment path (Docker, Kubernetes, or cloud marketplace) against your infrastructure, test the built-in ToolJet Database for your data volume, and confirm that the community edition's access control and proxy-only data flow meet your security requirements.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes