NEW!
Retool Templates: custom internal tools in one click
Build custom internal tools, fast.
Custom internal tools have the same building blocks. Retool gives you those building blocks, so you can build tools much faster.
How Retool Works
4 minutes
Flexible Components
All the building blocks, for any internal tool.
Whether you're building an app to approve beta signups, or an app to manage deliveries, they all have the same building blocks. Tables, TextBoxes, Dropdowns, etc.
Retool gives you building blocks, which you can assemble into any custom internal tool.
Connect to anything
Read and write data, wherever it is.
Read data from Postgres, write back via an API. Read some more data from Google Sheets, query it via SQL, then join it to data from Stripe. We support many databases, and any HTTP API.
Because we manage the data fetching and UI, you just have to write the stuff that's actually custom to your internal tool. Like the SQL queries, or the POST requests. Don't worry about storing isFetching in Redux, debouncing duplicate button clicks, etc. We'll handle it.
Micromanage your Tools
Track, monitor, and even host all your tools.
We manage authentication, authorization, and audit logs, all for you. That's the kind of stuff every internal tool should have.
If you're concerned about data security, you can host Retool on-premise, behind your own VPN, in your own VPC, and block all network connections. Contact us to get setup.
Demos
S3 File Explorer
The missing GUI for Amazon's S3
Try Template
GitHub PR Dashboard
An all-in-one view of all your PRs
Try Template
Custom CRM
A customizable relationship management tool, tailored to your specific needs
Try Template
Firebase Admin Panel
An admin panel template with basic CRUD views for Firebase
Try Template
Stripe Refund Tool
A tool to pull in problematic orders from your database, issue refunds via Stripe, and send confirmation emails via SendGrid - all in one UI
Try Template
Charts
A template designed to show off Retool's vast visualization capabilities
Try Template
Interactive Map of USA
A simple template designed to showcase one component: the Map
Try Template
S3 File Explorer
The missing GUI for Amazon's S3
Try Template
GitHub PR Dashboard
An all-in-one view of all your PRs
Try Template
Custom CRM
A customizable relationship management tool, tailored to your specific needs
Try Template
Firebase Admin Panel
An admin panel template with basic CRUD views for Firebase
Try Template
Stripe Refund Tool
A tool to pull in problematic orders from your database, issue refunds via Stripe, and send confirmation emails via SendGrid - all in one UI
Try Template
Charts
A template designed to show off Retool's vast visualization capabilities
Try Template
Interactive Map of USA
A simple template designed to showcase one component: the Map
Try Template

Ready to go?
Get started in less than 10 minutes today.

TEXTINPUT
TABLE
DROPDOWN
BUTTON
1. Assemble your tool
Assemble our building blocks into your custom tool.
Let's build an app to search and approve users. We'll start by assembling the tool first. We need a TextBox to search, a Table to show results, and a Button to approve users.
Using our drag and drop editor, you can assemble those building blocks quickly.
2. Search your users
Data, meet TextBox. Table, meet data.
Retool connects to anything: APIs, databases, etc. To pull in data, you write SQL, or use a GUI.
Queries can refer to other components: in the SQL query, we refer to TextBox. So when we type in it, the query automatically updates.
To display our data, we connect the Table to {{ usersQuery }}, our SQL query. Boom — whenever we type in the TextBox, Table updates.
3. Write data back
Approve the selected user via API.
Lets make our tool approve the selected user too. See that Button we dragged on before? Let's hook it up to an API call, which'll approve the user. And inside the API call, just as in the SQL query, we'll refer to another component. This time, it'll be the selected row of the Table.
When we select a different row in the Table, the REST query changes. When we hit approve, it'll PUT back and approve the selected user. Nice!

Ready to go?
Get started in less than 10 minutes today.