Retool
Reviewed July 24, 2019Retool is a platform for programmers to rapidly create internal tools via reusable user-interface components paired with custom queries. It is used to build interfaces for the internal teams, mechanical turk workers (such as tagging data for ML), and augmenting Google Sheets data. It's WYSIWYG drag-and-drop UI editor is simple yet powerful when paired with the ability to tie inputs and events to queries and API requests.
Product Feel
- π Thin UI layer on top of datastores
- π Access to underlying JavaScript & data everywhere
- π Lots of clicking and forms instead of keyboard
- π Design feels a bit ad hoc - random where you find various features
Basic Usage
The above video creates an interface to search for customers, activate and deactivate their accounts, and view their orders. It demonstrates:
- deleting a UI element
- dragging elements onto the page
- tying a UI table element to a query
- tying the text of a input box to a query
- adding and customizing a button
- tying a button click event to a query
- referencing the currently selected row in a table in a query
- using JavScript expressions inside properties
- triggering another query after one finishes
- building a multipurpose button via ternary expressions in its text,color, and query attributes
- creating a table based on the currently selected row in another table
JavaScript everywhere
Embedding a JavaScript expression into any property is as simple as typing {{}}
. By default the Moment and Lodash libraries are built-in and accessible within any JS expression, and you can add other libraries or JS functions in the Settings page:
Property Browser
Explore the values of all variables in scope via the property browser on the left-side of the screen. In the following video, I create a temporary piece of state that increases each time a button is clicked. I then put the value of this state in the text of the button itself, followed by other variables I find by exploring the property browser. Updates to the UI are made automatically, a la React.
Integrations
They have built-in integrations to query a number of common data sources:
A custom integration is set up via a simple form:
Releases
While the product doesn't automatically save versions, it does allow for snapshots and "rollbacks" to previous versions. I was disappointed that they didn't allow forking of past versions.
Pricing
Wishes
- Cancel running queries
- Less confusing layout (four-pane layout was confusing)
- Delete keypress doesnβt work to delete components
Further Reading
- Retool Blog
- Retool Docs
- Retool Reference
- Show HN: Retool
- HN Comment about how 70% of customers are on-prem
- Retool on Product Hunt