Build custom
internal tools faster.
Build an app to flip feature flags, in 4 minutes.Build an app to manage dog walkers, in 5 minutes.Build an app to dynamically change flight prices, in 5 minutes.Build an app to approve sign-ups, in 2 minutes.Build an app to label text,
in 3 minutes.
Custom internal tools have the same building blocks. Retool gives you those building blocks, so you can build them much faster.
Sign up with Google

As an engineer, I love Retool. My team now builds much-needed tools for customer support instantly. Also love how it's so hackable - there's little we can't do.
David Boskovic
Platform Architect
The tools we've been able to quickly build with Retool have allowed us to empower and scale our local operators, all while reducing the dependency on engineering.
Rohan Chopra
Director of Engineering
Engineers tell me it'll take a day, but it always takes a week. Retool gives me every tool I want, in just a few hours. It's changed the trajectory of our business.
Duncan Winter
Director of Product
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!
Demos
Approve sign-ups
Build a tool to approve beta signups, in just 5 minutes.
View tutorial
Upload photos to S3
Build a tool to upload images to S3, and save their URLs to an API, in just 5 minutes.
View tutorial
Insert CSVs into a database
Build a tool to selectively upload rows from a CSV into an API, in just 5 minutes.
View tutorial
Manage dog walkers
Build a tool to manage dog walkers and selectively cancel walks via the Twilio API, in just 8 minutes.
View tutorial
Tag images for machine learning
Build a tool to label images for self-driving cars with bounding boxes and landmarking, in just 3 minutes.
View tutorial
Send emails from Google Sheets
Build a tool to pull in rows from Google Sheets, and sends each row a personalized email, in just 5 minutes.
View tutorial
Flip feature flags
Build a tool to flip feature flags for users, in just 3 minutes.
View tutorial
Approve sign-ups
Build a tool to approve beta signups, in just 5 minutes.
View tutorial
Upload photos to S3
Build a tool to upload images to S3, and save their URLs to an API, in just 5 minutes.
View tutorial
Insert CSVs into a database
Build a tool to selectively upload rows from a CSV into an API, in just 5 minutes.
View tutorial
Manage dog walkers
Build a tool to manage dog walkers and selectively cancel walks via the Twilio API, in just 8 minutes.
View tutorial
Tag images for machine learning
Build a tool to label images for self-driving cars with bounding boxes and landmarking, in just 3 minutes.
View tutorial
Send emails from Google Sheets
Build a tool to pull in rows from Google Sheets, and sends each row a personalized email, in just 5 minutes.
View tutorial
Flip feature flags
Build a tool to flip feature flags for users, in just 3 minutes.
View tutorial

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

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 do is 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.

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