is to build internal tools, remarkably fast.
From $


is to build internal tools, remarkably fast.

Stop wrestling with UI libraries, hacking together data sources, and figuring out access controls. Start shipping apps that move your business forward. All internal tools are made up of the building blocks: Tables, Lists, Charts, Forms, Wizards, Maps and so on. Retool provides those blocks out of the box so you can spend your time assembling your UI, not inventing it from scratch. Instead of hunting down the best React table library, you can put together your app in a few minutes by dragging and dropping.



🧱 Components

⚡️ Workflows

📲 Mobile

📊 Database

🗂 Templates

🌐 Self-hosted

chat bubble

Learn More

More About

Retool empowers you to quickly build internal tools with rich graphical user interfaces around any sort of datastore or API.

Connect to anything

Connect to most databases or anything with a REST, GraphQL or gRPC API. Retool empowers you to work with all of your data sources seamlessly in one app. How you store your data is up to you. By default, nothing is stored in Retool. When a query is run, the Retool backend proxies the request to your backend. No more ETL-ing data around!

Read or write data with queries

No need to worry about storing isFetching in Redux or handling errors from your backend. Retool manages all the hard stuff. Read in data from MongoDB, join it to Postgres with SQL, and POST the result to Stripe's API. You only write the things that are custom to your app, like the SQL queries, POST requests, or data transformers.

Built for developers

Retool is highly hackable, so you’re never limited by what's available out of the box. If you can write it with JavaScript and an API, you can build it in Retool. You can write JavaScript almost anywhere inside of Retool. Just wrap an expression with double brackets like{{ Math.max(select1.value, 10) }} and it’ll execute as sandboxed JS. Using Transformers, you can write larger, reusable blocks of code for manipulating data. There’s also a native API for directly interacting with components and queries via JS.