592 points by dvdhsu 2 months ago
Hi HN! I'm one of the creators of Retool, and we're excited (and very nervous again) to be posting this on HN. We first showed Retool to HN around a year ago (https://news.ycombinator.com/item?id=14515494).
When we posted Retool last time, we thought it was a cool idea (visual programming + functional reactive programming). But we didn't really know whether it was useful, and whether people would pay for it.
Since last year, we've been hard at work talking to customers and writing code. We discovered that internal tools (eg. to manage deliveries) is a good use case for a visual programming language like Retool.
Basically, Retool gives you components (textinputs, dropdowns, tables, etc.), and queries (connect easily to APIs, SQL databases, etc.). In a FRP way, they can interact with each other. So your tables can pull in data from queries, and buttons can pull in data from a table's selected row.
When we show Retool to people, they often think "oh! it's visual basic for the web!". And in many ways - it is! Maybe that's something you think is great - maybe not. In any case, I'd love to hear HN's thoughts. :)
Here's a 3 minute video demo I just made this morning: https://cdn.tryretool.com/approval_video.mp4 of me making an approval workflow in 3 minutes
If you're curious how it works - here are the docs: http://docs.tryretool.com/.
Cool idea! We built a lot of internal tools at my last startup (bloc.io) because it was an operationally intensive business. I would have definitely tried this out.
Your premise that most internal tools use the same building blocks seems accurate based on my experience, a lot of it is collecting and analyzing data.
I'd also add that the most underrated cost is maintaining a tool, developers are usually excited to build something new and when they're working in a fresh codebase they can build and iterate quickly. The real pain is when no one has used a tool in a couple months but needs it now, and the original dev has moved on to some other project so there's no one available to update or fix it. That's one of the biggest reasons we started using more third-party SaaS options instead of building our own, even if they were expensive and only an approximation of what we actually wanted.
> I'd also add that the most underrated cost is maintaining a tool, developers are usually excited to build something new and when they're working in a fresh codebase they can build and iterate quickly. The real pain is when no one has used a tool in a couple months but needs it now, and the original dev has moved on to some other project so there's no one available to update or fix it. That's one of the biggest reasons we started using more third-party SaaS options instead of building our own, even if they were expensive and only an approximation of what we actually wanted.
That is a good point - and we've used that a few times in sales pitches. The benefit of Retool is that it's pretty clear what's going on (oh, new column added to table, so let's add it to our KeyValueMap too). And so keeping things up to date requires a lot less context.
Thanks for the thought - we will bring this up more in our sales calls :)
Hi dvdhsu, this looks great. At Thread we build lots of internal tools, but would like to be able to build more. We currently use ChartIO to build dashboards, but some of these have become almost like mini read-only apps that teams use, it would be great to make some of these into something a bit more useful and Retool sounds like it has the potential to be a good fit.
Some questions I would have as an engineer...
1. Where's the documentation - it's not linked to on the site.
2. What's your GDPR policy, we have customer data in our database.
3. Can this do Slack bots? We use them quite a bit for reporting, would be handy!
4. What sort of auth schemes do you offer? We provide limited access to some of our tools to third parties who aren't on our Google Apps domain.
5. What sort of APIs do you support. We have some basic JSON+HTTP things that require a session cookie to use because they are only used in web pages we run, and we have an authenticated GraphQL API. Would these work? How do you handle authentication on APIs?
1. docs.tryretool.com - we just added it - thanks!
2. You can install Retool in your EC2 instance, and block all inbound / outbound network traffic. I'll send you an email about it!
3. Yes - we can! Curious to hear about your use case though - is it for BI?
4. We integrate with Google, Okta or any SAML 2.0 provider. Would that work for you guys?
5. Any! Yep - we handle authentication in the API query itself, or you can create an API with authentication stored server-side. Here are docs on generic APIs: https://docs.tryretool.com/docs/apis, and here are docs on GraphQL: https://docs.tryretool.com/docs/graphql
WRT cookies specifically - even though requests from the browser get proxied through our backend we support forwarding authentication cookies to the browser that is tied to the user's specific session in Retool. (I thought we had written docs for this but can't find them now. Ping me @ email@example.com and I can tell you how we do it!)
David this looks fantastic. I can’t wait to play with it.
Just on the GDPR front, our DB also has customer data. We currently host on heroku. Does the data we pull in / process using retool go anywhere else except for where we point it?
No, your data never goes anywhere. You can deploy Retool and airgap it to prevent all inbound / outbound network connections. Then you can connect to it via a VPN.
I will reach out over email - thanks for the question!
For the Slack bots, a fairly common thing we want to do is regular business updates from either Google spreadsheets (that are very dynamic/scripted) or from ChartIO. Some basic interactivity with those bots would be handy.
Interesting! Retool might be a good fit then - I'll reach out over email. Thanks!
Please add me to the list of people to talk about the install on EC2 Instance options, docker would be preferable though.
Ha! I see in your video demo that someone is being naughty:
That’s me - in fact! We thought it’d be a funny joke HN would appreciate :)
Bobby Tables strikes again!
I love the Eva-Luator user as well :)
And I hope you've learned to sanitize your database inputs.
Awesome idea. As somebody who wrote many internal tools for a small startup many moons ago (customer manager, shipping manager, inventory manager) Retool solves that pain.
A few questions.
1.) How does authentication to retool apps work? Can I use 3rd party such as Google or GitHub? Is enforced 2fa supported?
2.) Do you support visualizations from data such as graphs and charts?
3.) You mention to allow access to my database we just whitelist the Retool IP. Are there a group of IP's to whitelist? If somebody compromised your service, then they have access to my database. A bit scary.
> 1.) How does authentication to retool apps work? Can I use 3rd party such as Google or GitHub? Is enforced 2fa supported?
Yep - we integrate with Google, Okta, as well as any other SAML 2.0 provider (e.g. ADFS).
> 2.) Do you support visualizations from data such as graphs and charts?
We have a few charts, but that's not our focus. If you're looking to graph a lot of things, you're probably looking for a BI tool like Looker.
> 3.) You mention to allow access to my database we just whitelist the Retool IP. Are there a group of IP's to whitelist? If somebody compromised your service, then they have access to my database. A bit scary.
Yep - there is a group of IPs for you to whitelist. But yes - if you care about security, you should probably be using the on-premise version of Retool. That's hosted by you, and you can control all inbound + outbound traffic. (70% of our customers are on on-premise.)
Thanks for the questions!
1. Yes! We support google and standard SSO solutions (Okta, etc.)
2. We do! Check out the charts components under "display".
3. We take security very seriously. If you want to keep security 100% in your infra, we support on-prem deployments.
You must have an MIT engineer on staff judging from the user names in the video :-) Great demo. I'd use this personally to do things like ML labeling for personal projects.
That's perfect! There's already a labelling component built-in!
Haha - thanks! We have a few SICP lovers :P
What's your twitter username. I want to add you as a maker to the producthunt project :)
Interesting. Looks really cool! Would you mind sharing a little about the front end stack you’ve used to make it? I’m assuming React?
That's right: react + a ton of customization
People often think it’s Visual Basic for the web, or MS Access or FileMaker for the web?
Slick, and great landing page, I’d like to try it.
Thank you! We definitely do hear that from hardcore VB users back in the day.
Looks really great. Will try it out as soon as I have a use case in mind :)
A small note: shared that in our internal slack and it just displays as a "preview" the domain, title and meta description of your page. I think Slack uses the `og` meta tags too, so adding a more elaborate description and an image would help :)
We use you @ Rappi <3 Retool
Thank you! You guys were one of our first customers! :)
This is super cool. Retool has come a long way in the short span of time. I would love to connect it with my db and build more integrations/alerts/notifications on top of it.
Not sure if you're going to see this but I'll give it a shot: is the per-user pricing per-end user using the tools or per-developer writing/modifying the tools?
Awesome tool David!! FYI, I posted it to ProductHunt so feel free to vote it up there to get more users ;) https://www.producthunt.com/posts/retool-2
Just signed up!
Holy Crap. This is amazing. Lot of folks have tried to make a general purpose visual programming solution and it always sucks. However, if we narrow the problem to
1. Show some data on a grid based on user input.
2. Let user select a row.
3. Provide different buttons to take actions on the selected row by doing an API call.
Then your tool solves the above problem extremely well (based on the tutorial I saw). And I guarantee you that any organization with tech teams have need to create plenty of such 'mini apps'.
I recently started a new job as a technical lead and I am going evaluate this tool seriously. Due to the nature of the business, we will be prefer an an on-premise solution. Do you have existing clients who use your on-premise solution? How are the updates to the tool distributed? And most importantly, what's the pricing like? Feel free to reach out to me via email.
BTW, you guys have done FANTASTIC job on the main page design/copy. It's been a long time since I saw a product website which instantly sold me on the idea. Well done!
Thank you very much! As tennien mentioned, most (around 70%) of our customers are on on-premise. Updates and distribution are managed via Docker.
I will send you an email! Thanks again for the kind words!
> if we narrow the problem
Cold Fusion shipped with a wizard to build web CRUD apps against SQL databases, which worked, and you could then continue coding from. It wasn’t bad, and came long before Rails or Django admin.
This feels like democratizing that.
Definitely! You'll find Retool supports much more than SQL databases and Django admin supports a tiny subset of Retool use cases. For instance, most companies find that after a certain scale Django admin apps need to be converted to custom code. Retool is designed makes custom code unnecessary at any scale.
Thank you! In fact, most of our enterprise customers are on-prem. Updates are distributed regularly and you've always got the choice of whether to update. Will reach out!
Not having played with it, I love the concept! I'd suggest making the docs more readily available from your frontpage, as it's somewhat difficult to find a link to them.
EDIT: signed up, ran through the tutorial, and I'm suitably impressed. This is a very polished product.
Will you support command-line tools? There's a few places where I can see my admin tools using command-lines to make things happen. Might be nice to be able to spin up a docker instance and run a set of command-line tools in response to an action, or to provide the contents of a table.
A few questions:
- Why is there only support for Google Sheets query on-premise?
- How many users can access an account in your free tier? This might be a way to better segment between free/first tier - add a limit of ~3-5 users before you need to start paying for the service.
- https://github.com/tryretool/retool_onpremise.git 404s for me - are you adding customers to that repo manually before they can clone it?
Just added and deployed docs above the fold on home screen. Thank you!
- Whoops - we forgot to update that - we added it to cloud a few weeks ago. Updated our docs - thanks!
- Hm - good question! I think there's currently no limit, but yes, that's a good idea as we scale. We want to have a "generous" free tier because most engineers we meet find Retool fairly interesting. And so we want to allow people to play around with, without having to pay us.
- Yes - that's correct for now. Once we have a better on-premise process, we'll open it up! :)
Thank you for the questions and feedback!
Your landing page is insanely good. How did you create those animations?
Also just the general styling/design of the entire site + retool itself is so well done.
Thank you! Our designer + engineers are very happy to hear that!
We created the animations ourselves with https://github.com/drcmda/react-spring.
I wonder if such a tool exists for creating responsive animations from websites as if recording screencasts.
Projects like these blur the lines between "coding" and "configuring" software, and I think the success of Retool long term will be understanding how to walk that line. The benefit of code is that it allows for greater complexity to be understood meaningfully, and configuration's benefit is that it is easier to learn. I think if someone is expecting to code and gets a configuration interface, that's OK until it limits them, and if they want to configure and end up having to code, then that's a fail for them as well.
I just went through the whole 4 minute tutorial. It was really amazing what I could achieve and everything in Retool worked perfectly.
This is incredibly polished and amazing and great. Well done!
Only thing I wanted was a dragger on the right hand side of the table so I could pull the table to be wider.
Also, I'm wondering, it looks and works so great, and the UI has so many parts, what did you build it in?
Thank you for your kind words! Yes - dragging and dropping + resizing is one problem we should spend a lot of time improving. It currently works... but we could probably make your Retool experience a lot better by just improving that, haha.
Yep - as tennien mentioned - React.
Thank you ! :D
you can expand the table! The dragger (grip) is on the bottom right.
thank you! the frontend is react + a ton of customization
Ok, yep got it thanks!
No one has mentioned Google App Maker which comes with GSuites Business and Enterprise. Retool seems to be in direct competition.
Sort of! We've definitely drawn inspiration from them (for example, we borrowed some ideas from their right hand side for editing component properties). But I think we're fairly different.
For example, in Retool, you can make a `PUT` request in a Postman-like GUI. And when you press run, we handle the data flow for you. In Google App Maker, you still have to write custom JS to call APIs or execute SQL queries: https://developers.google.com/appmaker/models/external-data-.... nd when you do call them, you have to worry about error handling, setting `isFetching` states, etc.
What's the open source alternative? I'd like to help in building something like this.
Hard to say - LO Base and Kexi don't have any web support at all.
Perhaps https://github.com/formtools/core ? Or https://form.io/ is open-core but more polished (from the screenshots).
Web is important because a fair level of development is being done for non-technical end users.
Really cool idea, and would completely simplify our internal tools building process, but opening our firewall to allow access to the small scale internal DBs that we would work with is a total no go.
Not to mention that even trying to create a demo for internal teams that would build tools using this with our data would mean miles of red tape that makes it a heavy sunk cost before we even get to the starting line.
If this had some form of containerized app (like Influx Chronograf as an example), then I could create demos that would likely lead to license purchases. But without that, we'll just keep building internal tools with internal frameworks.
Great idea, heavily limited by not having something I can deploy internally without an enterprise license.
Elsewhere in the thread it is stated that 70% of the installation are actually on premises.
Do You have any plan, when the on premise tool will be publicly available on github?
This seems optimized for creation of small apps (and is also presented very well). But what striked me watching the intriduction video: When you revisit your a written app, it seems hard to understand whats going on and also hard to get a feel for if all functionality have been implemented and works. How does testing your app with this tool work? How does it help with maintaining a written app to lets say add a new functionality (when you have forgotten all about where your data is stored, where it is read from, what your queries where when you wrote them etc.).
Congrats! Your landing page is fantastic.
I would definitely urge people in my company to give this a try for future internal tools.
I hope it works out as well as you've sold it [=
Thank you very much! I think it will - but the only way for you to figure out is to try it :)
The image bounding box labeling widget looks like a hidden gem!
This tool would shine where the dataset has sensitive information or the job is too specialized to use on Mechanical Turk.
Thank you! Yes - a few customers use it for exactly that! Please try it out some time - it's one of our coolest (IMO) components. :)
(There was surprisingly - no good open source library for drawing bounding boxes / landmarking on images. So we built our own - and now every Retool user gets to use it!)
We've used Retool extensively for multiple products at our startup. It's a fantastic tool that's gotten us out of trouble many times. David & Anthony are amazing founders as well!
If you ever need to build an internal tool, do give them a look before you decide to build it in-house. Wishing Retool all the best!
This looks very cool. Will give this a try!
Btw, I think I remember you back from a Startup School some years back! You dropped me home. Hi!
I remember it! Nice to see you again, and thanks for the kind words!
I've been using this for the last 3 months and it's a pretty amazing tool.
We need to spin up tools quickly for our operation teams and this has been a godsend.
The support has been amazing as well. Very quick response times and fixes when we report any bugs.
Super impressive. This is like the perfect evolution of what Blockspring should've been!
It's true - retool can do much of what blockspring does (or blockspring might be able to be implemented in retool). But retool can do much more, writing back data and running arbitrary api endpoints. The range of frontend components you'll find in retool goes well beyond tables too - from the basics of any app (buttons, dropdowns, checkboxes) to more advanced json previewers, forms, and even image labelling.
any chance you will implement a tree structure?
Thank you! I'm a big fan of Blockspring!
Love seeing a year of solid effort manifest like this. Nice work!
For every frontend team out there, this should be the goal of your development efforts--to build a component library like this that can be used to rapidly compose any kind of application.
Great work. One of the very few "Show HNs" I'm impressed by at first glance. My team's internal tools are all CLI-based, but if I had to support users who preferred GUIs I'd definitely give this a try.
Thank you - we appreciate the kind words!
If you answer my question, I'll tell you where a bug is in your docs (kidding).
Question: Do you use (P)react or some other framework for your components, or have you done all of this component synchronization from scratch?
Bug/Typo (Chrome): I can't click on the "Local Storage" section in the Component reference, and the description for `localStorage.values` is incomplete: "A key-value store with the data with all the".
React! Syncing from scratch would be difficult, and probably not worth it for now.
Thanks for finding both bugs! I’m on my phone (in bed) now, but I’ll fix it tomorrow morning. Appreciate it! :)
Thank you, I suspected it was React (I later saw somewhere you will add support for custom React components). Looks like good work man, best of luck to you!
If anyone is interested in a similar research project, here is an amazing one from CMU, done about 5 years ago!
"Gneiss is a spreadsheet tool for using and analysing online data. It contributes many extensions to the conventional spreadsheet model to support using and analysing web service and other hierarchical data, and creating interactive, data-driven web applications."
How do you actually connect this to your database? Can't find anything about it in the docs. Maybe it's obvious if you log in but would like to know before I try.
Sure! You can either deploy it on-premise or you can whitelist our IP address. (I just realized our docs for whitelisting our IP address is gone, so I'm adding it back in now.)
On prem docs: https://docs.tryretool.com/docs/setup-instructions
The github repo that this references is either private or doesn't exist.
I'd assume because they are not open source and if you want to use enterprise you need to sign a license agreement.
Which absolutely makes sense. Except they plug the Heroku button which only works with open source, which makes the whole thing pretty confusing.
It's a little confusing - sorry. We recently switched the repository from public to private, and forgot about the Heroku button! We'll get that fixed soon - thanks for the feedback!
It's standard auth - as if you were connecting your aws server to an rds db. Once the connection is established, you can use it in any page.
Definitely impressive. The short description seems a little vague or misleading to me though. "Internal tools" can mean a lot of different things - deployment tools, testing tools, data management, etc - so I expected something more generic by the title.
Thanks! We’ve found it difficult to describe exactly the tools that people build in Retool, and “internal tools” is the best phrase we’ve found.
We’ve considered “business apps” (vague), “operations tools” (unclear), or “CRUD tools” (sounds unimpressive). What do you think?
This is great -- landing page and docs are super informative and makes me want to try this.
Thank you, you should try the onboarding as well!
In FAQ, "What's an query?" should be "What's a query?"
Fixed - thank you!
David reached out to me around 5 months ago with a demo (it was a sales pitch) and I was thoroughly impressed! Very happy to see the product get even better. Good job to everyone at Retool! Will be signing up as soon :)
Thank you - I enjoyed talking to you as well!
Looks really interesting. I'm getting a 503 on the Google auth though :(
Weird! It looks like we had a few scaling hiccups - should be fixed now!
Congrats on launching, David + team! So great to user test a few weeks ago — everything from landing page plus onboarding flow seems to have come a long way since then. Keep up the good work.
Thanks Ted! We learned a lot from our user onboarding with you! :)
(I should reply to your email from last week - sorry I've been really busy with launch!)
You're all good man, no rush - fully understand :) Let me know when you and Boaz get together. I have a feeling you'll hit it off.
Do you have an on-prem demo version I can try? I'd like to make a small pretend app to showcase to my team how this can be effective.
EDIT: Ah I see. I should contact you. I'll do that.
Yes, definitely! Reach out to us at firstname.lastname@example.org
Congratulations on launching, the professionalism and communication from these guys are second to none. Now to go find and read the Slack bot integration!
Super cool...What technologies is this built on?
The frontend is standard react + redux + a lot of customization. A lot of the engineering effort is in the library of components and database connections we've built up.
looks pretty cool! I'm glad you built something great in the past year.
We build a bunch of tools on top of React-Virtualized which is a brilliant framework (by one of the core devs of react). But obviously what you have is a brilliant end-product.
Completely mind blown by this, lot's of use-cases rushing to my mind!
Why you guys are not on Twitter? https://twitter.com/benoror/status/1027757144895094784
Can we incorporate Retool into our HIPAA compliant stack?
Yes - we have 2 customers who are HIPAA-compliant, and who use an on-premise, airgapped version of Retool. I don't see an email in your account - do you mind dropping me a line at email@example.com?
looks familiar ;)
Bubble has many more features than this but this seems little easy to use ..
whoever releases an open source version of a tool like this that can be installed by the user in their own network will get a cheque from me.