Retool

Retool is a low-code platform purpose-built specifically for building internal tools — admin panels, support dashboards, approval workflows, data-review consoles — by connecting directly to a company's existing databases and APIs and layering a drag-and-drop UI on top, rather than requiring data migration into a separate no-code-native database. Why it matters: Retool represents the low-code end of the spectrum most clearly among mainstream tools — its target user is explicitly an engineering or IT team (or a technically comfortable ops person) who wants to build internal software 10x faster than hand-coding a React admin dashboard, but who needs the flexibility to write real SQL queries and real JavaScript for anything the visual components can't handle, rather than a purely non-technical citizen developer building from scratch. This positioning has made Retool one of the standard tools cited whenever "internal tool" or "low-code" comes up in an engineering organization's stack decisions, alongside close alternatives like Appsmith (open-source) and Budibase. How it works: a Retool app is built from pre-made UI components (tables, forms, buttons, charts, JSON explorers) bound to "resource queries" — direct connections to a Postgres/MySQL database, a REST or GraphQL API, or a spreadsheet — where each query can be either a simple point-and-click configuration or hand-written SQL/JavaScript for complex logic. Every UI component's data source and every button's click behavior is wired through these queries, and Retool explicitly supports mixing visual configuration with raw code inline, rather than treating code as an escape hatch reached only in exceptional cases. Worked example — a customer-lookup and refund tool built in Retool for a support team: a search input bound to a parameterized query `SELECT * FROM customers WHERE email ILIKE {{ '%' + searchInput.value + '%' }}`; results populate a table component; selecting a row reveals a detail panel showing that customer's order history via a second linked query `SELECT * FROM orders WHERE customer_id = {{ table1.selectedRow.data.id }}`; an "Issue Refund" button triggers a JavaScript query that first validates the refund amount doesn't exceed the original order total, then calls the company's internal payments microservice via a REST resource query, and on success, writes an audit log entry to a separate `refund_log` table — combining drag-and-drop layout, raw SQL, and custom JavaScript logic in a single tool, built by one engineer in a day instead of a multi-week internal-app sprint. Retool also supports granular permissions and audit logging out of the box — important for internal tools that touch production data or financial actions, where "who approved this refund and when" needs to be traceable in a way a quick internal script typically isn't.

Related terms

More No-Code terms