tooljet
$
npx mdskill add TerminalSkills/skills/tooljetBuild internal tools with ToolJet's open-source low-code platform
- Create admin dashboards and CRUD apps without writing code
- Connects to databases, APIs, and SaaS platforms like PostgreSQL, Stripe, and Slack
- Uses drag-and-drop components and JavaScript/Python for custom logic
- Delivers self-hosted or cloud-deployed applications with real-time data
SKILL.md
.github/skills/tooljetView on GitHub ↗
---
name: tooljet
description: >-
Build internal tools with ToolJet, the open-source low-code platform. Use when a user asks to create admin dashboards, connect data sources, build CRUD apps with drag-and-drop, or self-host ToolJet.
license: Apache-2.0
compatibility: "No special requirements"
metadata:
author: terminal-skills
version: "1.0.0"
category: development
tags: ["internal-tools", "low-code", "open-source", "admin-panel", "self-hosted"]
---
# ToolJet — Open-Source Low-Code App Builder
## Overview
You are an expert in ToolJet, the open-source low-code platform for building internal tools with a visual app builder. You help developers connect to databases and APIs, build CRUD apps with drag-and-drop components, write custom JavaScript/Python, and self-host for complete data control.
## Instructions
### Setup
```bash
# Docker (recommended)
docker compose up -d
# UI at http://localhost:80
# Kubernetes
helm repo add tooljet https://tooljet.github.io/helm-charts
helm install tooljet tooljet/tooljet
# Cloud: https://tooljet.com (managed hosting)
```
### Data Sources
```javascript
// ToolJet connects to 50+ data sources:
// Databases: PostgreSQL, MySQL, MongoDB, Redis, BigQuery, Snowflake, DynamoDB
// APIs: REST, GraphQL, gRPC
// SaaS: Stripe, Airtable, Google Sheets, Notion, Slack, Twilio
// Storage: S3, MinIO, GCS
// PostgreSQL query with transformations
// Query: getOrders
SELECT o.*, u.email, u.name
FROM orders o JOIN users u ON o.user_id = u.id
WHERE o.status = {{components.statusFilter.value}}
ORDER BY o.created_at DESC
// JavaScript transformation (runs after query)
return data.map(row => ({
...row,
amount_display: `$${(row.amount / 100).toFixed(2)}`,
created_display: moment(row.created_at).fromNow(),
}));
```
### Events and Actions
```javascript
// Button onClick event — chain multiple actions
// Action 1: Run query
await queries.processRefund.run();
// Action 2: Show notification
actions.showAlert('success', `Refund of $${components.table1.selectedRow.amount} processed`);
// Action 3: Refresh data
await queries.getOrders.run();
// Action 4: Navigate
actions.navigateTo('/orders');
// Conditional logic in event handlers
if (components.table1.selectedRow.status === 'refunded') {
actions.showAlert('warning', 'Already refunded');
return;
}
```
### Multi-Page Apps
```markdown
## App Structure
- Pages: Dashboard, Orders, Users, Settings
- Shared components: Header, Sidebar (persist across pages)
- URL parameters: /orders/:id for detail pages
- Navigation: programmatic (actions.navigateTo) or link components
```
## Examples
**Example 1: User asks to set up tooljet**
User: "Help me set up tooljet for my project"
The agent should:
1. Check system requirements and prerequisites
2. Install or configure tooljet
3. Set up initial project structure
4. Verify the setup works correctly
**Example 2: User asks to build a feature with tooljet**
User: "Create a dashboard using tooljet"
The agent should:
1. Scaffold the component or configuration
2. Connect to the appropriate data source
3. Implement the requested feature
4. Test and validate the output
## Guidelines
1. **Self-host for compliance** — ToolJet is open-source (AGPL); self-host when data must stay on your infrastructure
2. **Query caching** — Enable query caching for frequently accessed data; reduces database load
3. **Environments** — Use ToolJet environments (dev/staging/prod) with different database connections
4. **Custom components** — Build React components for visualizations that don't exist in the component library
5. **Version control** — Export apps as JSON; store in Git for versioning and backup
6. **Granular permissions** — Use groups and app-level permissions to control access
7. **Marketplace plugins** — Browse ToolJet's plugin marketplace for pre-built data source connectors
8. **Audit logs** — Enable audit logging for compliance; track who accessed what data
More from TerminalSkills/skills