ToolJet
Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.
ToolJet is the open-source foundation of ToolJet AI, an AI-native platform that lets engineering teams and business users build, deploy, and share internal applications without extensive custom development. Using a visual drag-and-drop canvas with over 60 responsive UI components, users can assemble dashboards, forms, CRUD interfaces, and workflow automations connected to any database, REST API, or SaaS tool—all without leaving the browser.
The platform ships with ToolJet Database, a built-in no-code database powered by PostgreSQL and exposed through PostgREST, enabling teams to store and manage application data without provisioning external infrastructure. JavaScript and Python can be executed directly inside the app builder, giving developers the escape hatch they need to handle edge cases, transform data, or call external services. Real-time multiplayer editing, inline comments, and role-based permissions make it suitable for collaborative team workflows.
Deployment is flexible: a single Docker command stands up the entire stack locally, while Kubernetes Helm charts, AWS ECS/EKS, GCP Cloud Run, Azure AKS, and DigitalOcean targets are all documented. The backend is a NestJS monolith with 66+ domain modules, TypeORM, Redis-backed queues via BullMQ, and edition-aware module loading that distinguishes the community edition from the paid ToolJet AI tier with AI app generation, GitSync, and enterprise RBAC.
With over 38,000 GitHub stars, nearly 500 contributors, and daily LTS releases, ToolJet is one of the most actively maintained open-source low-code platforms available. The AGPL-3.0 license allows free self-hosting with full access to the community edition feature set.
What You Get
- Visual App Builder - Drag-and-drop canvas with 60+ responsive components including Tables, Charts, Forms, Kanban boards, and Custom Component support for embedding any React component.
- ToolJet Database - Built-in no-code PostgreSQL database exposed via PostgREST, with a spreadsheet-like UI for creating tables, managing rows, and writing joins without SQL.
- 80+ Data Source Connectors - Native integrations with PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch, REST APIs, GraphQL, Google Sheets, Airtable, AWS S3, Stripe, HubSpot, and more.
- Multi-page Apps with Multiplayer Editing - Build multi-page applications with complex navigation and collaborate in real-time with teammates sharing the same canvas session.
- Code Anywhere - Execute JavaScript and Python directly in query panels and component event handlers to transform data, make API calls, or implement custom business logic.
- Secure by Design - AES-256-GCM encryption for stored credentials, proxy-only data flow that prevents client-side credential exposure, SSO via SAML/OAuth, and granular permission controls.
- Extensible Plugin System - Create custom data source connectors using the @tooljet/cli npm package and the plugin SDK, with 48 built-in plugin packages as reference implementations.
- Flexible Self-Hosting - Deploy with a single Docker command, or use Kubernetes Helm charts, AWS ECS/EKS, GCP Cloud Run, Azure AKS, DigitalOcean App Platform, and OpenShift.
- Collaboration and Access Control - Inline comments, @mentions, role-based access at the app and data source level, and workspace-level user management.
- AI Agent Builder (Enterprise) - Build intelligent agents that automate workflows, generate apps from natural language prompts, and debug queries with AI assistance via the ToolJet AI tier.
Common Use Cases
- Internal operations dashboards - A DevOps team builds a real-time incident dashboard pulling from PagerDuty, Datadog, and PostgreSQL to give on-call engineers a single pane of glass.
- Customer support tooling - A SaaS company assembles a unified support console that merges Zendesk ticket data, Stripe subscription status, and internal user tables to resolve issues without context-switching.
- Data entry and approval workflows - An operations team creates a multi-step form with conditional logic that writes to PostgreSQL, sends Slack notifications, and routes records for manager approval.
- Cloud resource management - A platform engineering team builds an S3 browser and ECS task manager that lets developers explore and act on cloud resources without needing CLI access.
- Inventory and order management - A retail operations team creates a CRUD interface over their MySQL inventory database with filters, bulk edit, and CSV export capabilities.
- HR and employee self-service portals - An HR department deploys a leave request form connected to Google Sheets and email notifications, replacing a manual spreadsheet process.
Under The Hood
Architecture ToolJet is a NestJS-based modular monolith with a clean separation between server, React frontend, and an independently versioned plugin package ecosystem. The server is organized into 66+ domain modules—apps, data-queries, data-sources, group-permissions, licensing, workflows, and more—each following a controller/service/repository layered pattern with dependency injection managed by the NestJS IoC container. A SubModule abstraction enables edition-aware dynamic module loading, swapping CE implementations for enterprise variants at runtime based on the active license tier. PostgreSQL 13+ serves as the primary database via TypeORM, while PostgREST v12 provides a REST layer over the built-in ToolJet Database. Redis 7 backs queue processing through BullMQ and handles session caching. The frontend communicates with both the NestJS API and PostgREST, with all credential-carrying requests proxied server-side to prevent client exposure. Real-time multiplayer editing is implemented over WebSockets via @nestjs/platform-ws.
Tech Stack The backend runs Node.js 22.15.1 with NestJS and TypeScript, using TypeORM for entity-based database access, Passport.js for authentication strategies including JWT, SAML, and multiple OAuth providers, and nestjs-pino for structured logging with OpenTelemetry tracing via @opentelemetry/sdk-node. The AI module integrates four LLM providers—Anthropic Claude, OpenAI GPT, Google Gemini, and Mistral—through the Vercel AI SDK (@ai-sdk/*), enabling AI query generation, app scaffolding, and debugging in the enterprise tier. The React frontend uses Zustand for state management organized into domain slices, React DnD with HTML5 backend for the drag-and-drop canvas, and Monaco Editor for the in-app code editor. Plugin packages are managed as a Lerna monorepo covering 48 connectors including PostgreSQL, MongoDB, Elasticsearch, Salesforce, gRPC, and Google Cloud services, each implementing a shared TypeScript interface for query operations. Cypress handles end-to-end testing.
Code Quality The server codebase shows strong TypeScript discipline with typed entities, DTOs with class-validator decorators, and a consistent module structure. Unit tests use NestJS Testing module with full mock isolation—service dependencies are mocked at the module level rather than globally—and the test suite covers session management, authentication flows, and library app handling. The frontend remains largely JSX rather than TSX, which limits compile-time type safety on the client side. ESLint v9 with typescript-eslint enforces consistent style, and Husky with lint-staged runs linting on staged frontend files before each commit. Error handling in the server uses NestJS exception filters with an AllExceptionsFilter that normalizes unhandled errors into structured HTTP responses, providing reasonable observability. Cypress is present in the repository for end-to-end scenarios covering form authentication and library app flows, though coverage is not comprehensive across all features.
What Makes It Unique ToolJet’s most distinctive technical choice is the server-proxied data source architecture: all database queries and API calls made from the visual builder are routed through the NestJS backend, which injects stored encrypted credentials before forwarding the request. This means no secrets ever reach the browser, a meaningful security property that many competing platforms compromise on. The combination of PostgREST-powered built-in database with a spreadsheet-like management UI, real-time multiplayer canvas editing over WebSockets, and a Lerna-managed plugin ecosystem that treats each connector as an independently buildable npm package creates a coherent self-hosting story that scales from a single Docker container to multi-node Kubernetes. The recent addition of multi-provider AI integration through the Vercel AI SDK positions ToolJet as an AI-native platform capable of generating app scaffolding and transforming queries from natural language, extending the low-code value proposition into the agentic workflow space.
Self-Hosting
ToolJet is released under the GNU Affero General Public License v3.0 (AGPL-3.0). In plain terms, this means the source code is fully open and can be used, modified, and self-hosted without paying a license fee. The AGPL’s key requirement is that if you modify ToolJet and expose it as a network service, you must make your modified source code available to users of that service. For most internal-tool deployments—where the app is used only within your organization—this copyleft clause has no practical effect. Commercial use is permitted, and you can build and deploy proprietary internal applications on top of ToolJet without those applications being subject to AGPL.
Running ToolJet yourself requires meaningful infrastructure and operational attention. The minimal stack is a single Docker container bundling the NestJS API server, a PostgreSQL 13 instance for application metadata and the built-in ToolJet Database, a PostgREST sidecar for REST API generation, and Redis for queue processing and session caching. For production workloads, each of these components should run as a separate service with independent scaling, persistent volume mounts, automated backups, and a connection-pooler in front of PostgreSQL. Kubernetes Helm charts are provided and well-documented for this configuration. You are responsible for TLS termination, high-availability setup, secret rotation, database migration runs on version upgrades, and monitoring. ToolJet releases LTS patches almost daily, so you will want automated deployment pipelines to keep up without disruption.
The community edition gives you the full visual builder, all 80+ data source connectors, ToolJet Database, JavaScript/Python execution, and self-hosting flexibility at no cost. The paid ToolJet AI tier adds AI-powered app generation from natural language, AI query builder and debugging, an Agent Builder for orchestrating multi-step automated workflows, GitSync for CI/CD and version control integration, multi-environment management (dev/staging/production), white-labeling, fine-grained row and column-level access controls, SOC 2 and GDPR compliance tooling, audit logs, and priority enterprise support with SLAs. If your team needs audit trails, compliance guarantees, or AI-assisted development, those capabilities require a commercial agreement with ToolJet Solutions Inc. The ToolJet Cloud managed offering removes the operational burden entirely but moves data off your infrastructure.