| name | appsmith |
| description | Build internal tools, admin panels, and dashboards with Appsmith. Use when a user asks to create CRUD interfaces, connect to databases or APIs with drag-and-drop widgets, write JSObjects for business logic, or self-host Appsmith with Docker or Kubernetes. |
| 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"]} |
Appsmith — Open-Source Internal Tool Builder
Overview
You are an expert in Appsmith, the open-source low-code platform for building internal tools, admin panels, and dashboards. You help developers connect to databases and APIs, build CRUD interfaces with drag-and-drop widgets, write custom JavaScript, and self-host the platform for full data control.
Instructions
Data Queries
SELECT * FROM orders
WHERE status = {{ StatusDropdown.selectedOptionValue }}
AND created_at BETWEEN {{ DateRange.startDate }} AND {{ DateRange.endDate }}
AND ({{ SearchInput.text }} = '' OR customer_email ILIKE '%' || {{ SearchInput.text }} || '%')
ORDER BY created_at DESC
LIMIT 50 OFFSET {{ (Table1.pageNo - 1) * 50 }}
JavaScript Objects (JSObjects)
export default {
getRevenueByMonth() {
return OrdersQuery.data.reduce((acc, order) => {
const month = moment(order.created_at).format("YYYY-MM");
acc[month] = (acc[month] || 0) + order.amount;
return acc;
}, {});
},
async processRefund() {
const order = Table1.selectedRow;
if (!order) {
showAlert("Select an order first", "warning");
return;
}
const confirmed = await showModal("ConfirmRefundModal");
if (!confirmed) return;
await StripeRefundAPI.run({ chargeId: order.stripe_charge_id });
await UpdateOrderQuery.run({
: order.,
: ,
});
.({
: ,
});
(, );
.();
},
() {
errors = {};
(!.?.()) errors. = ;
(. <= ) errors. = ;
(!.) errors. = ;
errors;
},
};
Deployment
curl -L https://bit.ly/docker-compose-appsmith -o docker-compose.yml
docker compose up -d
helm repo add appsmith https://helm.appsmith.com
helm install appsmith appsmith/appsmith -n appsmith --create-namespace
Git Sync
Examples
Example 1: User asks to set up appsmith
User: "Help me set up appsmith for my project"
The agent should:
- Check system requirements and prerequisites
- Install or configure appsmith
- Set up initial project structure
- Verify the setup works correctly
Example 2: User asks to build a feature with appsmith
User: "Create a dashboard using appsmith"
The agent should:
- Scaffold the component or configuration
- Connect to the appropriate data source
- Implement the requested feature
- Test and validate the output
Guidelines
- Self-host for security — Appsmith is open-source; self-host on your infrastructure when data can't leave your network
- JSObjects for logic — Keep business logic in JSObjects, not in widget event handlers; easier to test and reuse
- Git sync for teams — Connect to Git for version control; review app changes in PRs like code
- Prepared statements — Appsmith uses prepared statements by default for SQL; prevents SQL injection
- Environments — Use Appsmith's environment variables for dev/staging/prod database URLs
- Granular permissions — Use role-based access control; limit who can view/edit/run destructive queries
- Reusable widgets — Extract common patterns (search + table + pagination) into reusable templates
- Audit trail — Enable audit logging for compliance; track who did what and when