base on ToolJet is the open-source foundation of ToolJet AI - the AI-native platform for building internal tools, dashboard, business applications, workflows and AI agents 🚀 ToolJet is the open-source foundation of ToolJet AI - the AI-native platform for building and deploying internal tools, workflows and AI agents. The community edition provides a powerful visual builder, drag-and-drop UI, and integrations with databases, APIs, SaaS apps, and object storage. For AI-powered UI generation, query building, debugging, and enterprise features, see ToolJet AI. :star: If you find ToolJet useful, please consider giving us a star on GitHub! Your support helps us continue to innovate and deliver exciting features. ![Docker Cloud Build Status](https://img.shields.io/docker/automated/tooljet/tooljet-ce) ![Number of GitHub contributors](https://img.shields.io/github/contributors/tooljet/tooljet) [![Number of GitHub issues that are open](https://img.shields.io/github/issues/ToolJet/ToolJet)](https://github.com/ToolJet/ToolJet/issues) [![Number of GitHub stars](https://img.shields.io/github/stars/ToolJet/ToolJet)](https://github.com/ToolJet/ToolJet/stargazers) ![Number of GitHub closed issues](https://img.shields.io/github/issues-closed/tooljet/tooljet) ![Number of GitHub pull requests that are open](https://img.shields.io/github/issues-pr-raw/tooljet/tooljet) ![GitHub release; latest by date](https://img.shields.io/github/v/release/tooljet/tooljet) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/tooljet/tooljet) [![GitHub license which is AGPL license](https://img.shields.io/github/license/ToolJet/ToolJet)](https://github.com/ToolJet/ToolJet) [![Follow us on X, formerly Twitter](https://img.shields.io/twitter/follow/ToolJet?style=social)](https://twitter.com/ToolJet) <p align="center"> <img src="docs/static/img/readme/banner.png" alt="Tooljet dashboard showing inventory and orders"/> </p> <p align="center"> <img src="docs/static/img/readme/flowchart.png"/> </p> ## Features ### Community Edition (CE) - **Visual App Builder:** 60+ responsive components (Tables, Charts, Forms, Lists, Progress Bars, and more). - **ToolJet Database:** Built-in no-code database. - **Multi-page Apps & Multiplayer Editing:** Build complex apps collaboratively. - **75+ Data Sources:** Connect to databases, APIs, cloud storage, and SaaS tools. - **Flexible Deployment:** Self-host with Docker, Kubernetes, AWS, GCP, Azure, and more. - **Collaboration Tools:** Inline comments, mentions, and granular access control. - **Extensibility:** Create plugins and connectors with the [ToolJet CLI](https://www.npmjs.com/package/@tooljet/cli). - **Code Anywhere:** Run JavaScript and Python inside your apps. - **Secure by Design:** AES-256-GCM encryption, proxy-only data flow, SSO support. ### ToolJet AI (Enterprise) Everything in CE, plus: - **AI App Generation:** Create apps instantly from natural language prompts. - **AI Query Builder:** Generate and transform queries with AI assistance. - **AI Debugging:** Identify and fix issues with one click. - **Agent Builder:** Create intelligent agents to automate workflows and orchestrate processes. - **Enterprise-grade Security & Compliance:** SOC 2 and GDPR readiness, audit logs, and advanced access control. - **User Management:** Role-based access (RBAC), custom groups, and granular app/data permissions. - **Multi-environment Management:** Seamless dev/stage/prod environments. - **GitSync & CI/CD:** Integrate with GitHub/GitLab for version control and streamlined deployments. - **Branding & Customization:** White-labeling, and custom theming for organizational branding. - **Fine-Grained Access Control:** Secure data and actions at the row, component, page, and query levels. - **Embedded Apps:** Embed ToolJet apps securely within other applications or portals. - **Enterprise Support:** SLAs, priority bug fixes, and onboarding assistance. <hr> ## Quickstart The easiest way to get started with ToolJet is by creating a [ToolJet Cloud](https://tooljet.com) account. ToolJet Cloud offers a hosted solution of ToolJet. If you want to self-host ToolJet, kindly proceed to [deployment documentation](https://docs.tooljet.com/docs/setup/). ### Try using Docker Want to give ToolJet a quick spin on your local machine? You can run the following command from your terminal to have ToolJet up and running right away. ```bash docker run \ --name tooljet \ --restart unless-stopped \ -p 80:80 \ --platform linux/amd64 \ -v tooljet_data:/var/lib/postgresql/13/main \ tooljet/try:ee-lts-latest ``` *For users upgrading their ToolJet version, we recommend choosing the LTS version over the latest version. The LTS version ensures stability with production bug fixes, security patches, and performance enhancements.* ## Tutorials and examples [Time Tracker Application](https://docs.tooljet.com/docs/#quickstart-guide)<br> [Build your own CMS using low-code](https://blog.tooljet.com/build-cms-using-lowcode-and-mongodb/)<br> [AWS S3 Browser](https://blog.tooljet.com/build-an-aws-s3-broswer-with-tooljet/)<br> ## Documentation Documentation is available at https://docs.tooljet.com. - [Getting Started](https://docs.tooljet.com)<br> - [Data source Reference](https://docs.tooljet.com/docs/data-sources/airtable/)<br> - [Component Reference](https://docs.tooljet.com/docs/widgets/button) ## Self-hosted You can use ToolJet Cloud for a fully managed solution. If you want to self-host ToolJet, we have guides on deploying ToolJet on Kubernetes, AWS EC2, Docker, and more. | Provider | Documentation | | :------------- | :------------- | | Digital Ocean | [Link](https://docs.tooljet.com/docs/setup/digitalocean) | | Docker | [Link](https://docs.tooljet.com/docs/setup/docker) | | AWS EC2 | [Link](https://docs.tooljet.com/docs/setup/ec2) | | AWS ECS | [Link](https://docs.tooljet.com/docs/setup/ecs) | | OpenShift | [Link](https://docs.tooljet.com/docs/setup/openshift) | | Helm | [Link](https://docs.tooljet.com/docs/setup/helm) | | AWS EKS (Kubernetes) | [Link](https://docs.tooljet.com/docs/setup/kubernetes) | | GCP GKE (Kubernetes) | [Link](https://docs.tooljet.com/docs/setup/kubernetes-gke) | | Azure AKS (Kubernetes) | [Link](https://docs.tooljet.com/docs/setup/kubernetes-aks) | | Azure Container | [Link](https://docs.tooljet.com/docs/setup/azure-container) | | Google Cloud Run | [Link](https://docs.tooljet.com/docs/setup/google-cloud-run) | | Deploying ToolJet client | [Link](https://docs.tooljet.com/docs/setup/client) | | Deploying ToolJet on a Subpath | [Link](https://docs.tooljet.com/docs/setup/tooljet-subpath/) | ## Marketplace ToolJet can now be found on both AWS and Azure Marketplaces, making it simpler than ever to access and deploy our app-building platform. Find ToolJet on AWS Marketplace [here](https://aws.amazon.com/marketplace/pp/prodview-fxjto27jkpqfg?sr=0-1&ref_=beagle&applicationId=AWSMPContessa) and explore seamless integration on Azure Marketplace [here](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/tooljetsolutioninc1679496832216.tooljet?tab=Overview). ## Community support For general help using ToolJet, please refer to the official [documentation](https://docs.tooljet.com/docs/). For additional help, you can use one of these channels to ask a question: - [Slack](https://tooljet.com/slack) - Discussions with the community and the team. - [GitHub](https://github.com/ToolJet/ToolJet/issues) - For bug reports and feature requests. - [𝕏 (Twitter)](https://twitter.com/ToolJet) - Get the product updates quickly. ## Roadmap Check out our [roadmap](https://github.com/orgs/ToolJet/projects/15) to stay updated on recently released features and learn about what's coming next. ## Branching model We use the git-flow branching model. The base branch is `develop`. If you are looking for a stable version, please use the main branch or tags labeled as v1.x.x. ## Contributing Kindly read our [Contributing Guide](CONTRIBUTING.md) to familiarize yourself with ToolJet's development process, how to suggest bug fixes and improvements, and the steps for building and testing your changes. <br> ## Contributors <a href="https://github.com/tooljet/tooljet/graphs/contributors"> <img src="https://contrib.rocks/image?repo=tooljet/tooljet&max=400&columns=20" /> <img src="https://us-central1-tooljet-hub.cloudfunctions.net/github" width="0" height="0" /> </a> ## License ToolJet © 2023, ToolJet Solutions Inc - Released under the GNU Affero General Public License v3.0. ", Assign "at most 3 tags" to the expected json: {"id":"2506","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"