Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Retool Templates – Custom internal tools with drag-and-drop components (retool.com)
144 points by syogi 76 days ago | hide | past | web | favorite | 27 comments

Hi, I’m Yogi, the engineer who worked on templates. Retool (https://retool.com) itself is a fast way of building custom internal tools (think Visual Basic, but in the cloud).

One thing that’s been challenging for us: because Retool is such a horizontal product, it was always hard for us to explain a) what exactly Retool is, and b) what people use it for. That’s why I decided to work on templates. A template is a pre-made app that you can plug your datasource (Stripe, Postgres, Github, etc.) into. Think old-school MS Word templates but for apps instead. You can plug in your credentials to get an extensible UI for your data. These templates aren’t meant to be 100% usable out of the box, but really to give you an idea of what you can do with Retool, quickly. (For example, here’s a video of us building the Github PR dashboard, which I mention below, in 15 minutes: https://cdn.tryretool.com/github_dashboard.mp4)

All of these templates are built from real-world use-cases that other companies are using Retool for. For example, we have customers using something very similar to our “Stripe refund tool” template. It pulls in data from Stripe, joins it to purchases in our database, and lets you refund an order in one click. (It updates the database, POSTs back to Stripe, and sends an email to the customer.)

My favorite is probably the Github PR dashboard. As an engineer myself, I want to start work everyday knowing who I’m blocking (i.e. I need to review their PR), and who I’m blocked on (i.e. I need to remind them to review my PR). I’d also like a quick summary of what a PR is. So I built this dashboard that loads all this information with the Github API at once, so I can just browse through them without waiting for each page to load. (Apparently this is an actual internal tool at Stripe that engineers check every day.)

Please let us know what you think! You can use any template to create your own app by clicking on “Use Template”.

Please clarify the definition of 'user' for billing purposes. Specifically, do end-users (with no edit permissions) count?

Hi, yes, they count for billing purposes. We bill per end-user of the tool.

But... if you have a good use case and can't make the pricing work, please let me know. I'm david@retool.com, and I'd be happy to give HN readers a significant discount or even free Retool for a bit. Your guys' feedback has gotten us to where we are today. Thanks!

I have 3 cases:

1) a dashboard for an internal system which will be used by a team of 10 only. Will it cost me $100/month?

2) A dashboard used by 10 people in my team, but could be view by the rest of the company (say 100) people occasionally. will it cost me $1100/month?

3) Lastly, say I develop 10 different internal tools for my team of 10 people. Will I have to pay $100/month for each app?

1 - Yes, $100 / month.

2 - We bill per monthly active user, so if they're active that month, we'll bill for them. If that's too much for you, please reach out to david@retool.com and I'll try to find some pricing plan that works for you.

3 - No, you can build as many apps as you want.

Thanks for the questions!

One model you could explore would be similar to Tableau's creator vs user/viewer license, which has a 10:1 price difference.

@yogi - will retool work for non-multi-tenant environments to aggregrate & create tools for the same data from XXX+ databases?

or more simply - can you connect a single "tool" to multiple databases?

You can! If you watch the demo video (https://cdn.tryretool.com/videos/4_minute_demo_4827ae.mp4), you'll see that every query could potentially come from a different datasource. So for example in our GDPR data export tool, we pull in data from Stripe, Salesforce, and a postgres database: https://retool.com/templates/gdpr-data-export/

Also — probably our coolest feature (IMO): you can query anything via SQL, including APIs. So you could query Stripe, Salesforce, etc. via SQL, since all data in Retool is in JSON. AND you can actually join across them too. Imagine joining a Google Sheet with Stripe data with data from your database. It's great fun! https://docs.tryretool.com/docs/querying-via-sql

For example, here's how you query a JSON blob via SQL:

    {{ [{ id: 1, apples: 3 }, { id: 3, apples: 20 }] }}
    apples > 5
And here's how you join data from two separate APIs (that return JSON):

    users.*, payments.*
    {{ usersApi.data }} as users,
    {{ paymentsApi.data }} as payments
    users.id = payments.user_id

We miss you Yogi!

Now that you've shipped, come back and hang out at the house soon!

Mostly lurker coming here to say that Retool is the #1 SaaS app we use to run our startup. I rarely evangelize things, but Retool is so amazing that I feel the need to yell from the rooftops.

Everyone on our team is now able to build complex tools and dashboards without dev resources!

Thanks for your support Alex!

Retool and the Retool team are absolutely superb.

In our experience, it's the current winner amongst the flourishing low code/db app/spreadsheet app space. It is one of few that to me, proves that this space should (and will) eat market share from excel/gsheets on one end, and expensive bespoke tools on the other. Also eager to see these offering more competition against small ERPs, CRMs and the like - Perhaps this will eventually even give behemoths such as ConnectWise, Salesforce et al a run for their money. Those companies need some competition on both innovation and price. For now though obviously, this is best used for business automation, small tools, and stitching data/processes together.

Not affiliated, just a very happy customer. Customer support is above and beyond. Trialed internally to great success, thus preparing to consider in client solutions.

How is extensibility handled (on the UI side, on the back-end)? Are internals transparent or is it meant to be a black box? Just wondering what happens if one hits the boundaries of what the tool can do and wants to extend or integrate...

The last time I evaluated RAD (Rapid Application Development, for all you cool folks who refuse to know anything that wasn't invented after JavaScript) tool-builders, I really liked https://www.awareim.com/. They're not that famous, but I appreciated the extensibility.

We're engineers, and Retool is built for engineers. So it's pretty flexible: the internals are all available for you to see and modify (every Retool app is serialized to a YAML blob, and can be synced bi-directionally to Git), you can write JS in most places, as well as import npm packages (everything inside {{ }} is sandboxed JS), the front-end components are extensible (you can import your own React, Vue, etc. components), and the back-end we're completely agnostic towards (we connect to any REST / GraphQL API, as well as most databases).

Here's more info on:

* git syncing: https://docs.tryretool.com/docs/git-syncing

* hosting on-prem: https://docs.tryretool.com/docs/setup-instructions

* custom components: https://docs.tryretool.com/docs/custom-react-components

* using JS between {{}}: https://docs.tryretool.com/docs/javascript-overview

* writing custom JS: https://docs.tryretool.com/docs/custom-js-code

Let me know if there's anything else I can help with? Thanks!

I used retool at work for a while. We had some specific peculiarities with our stack that added a little too much friction for us, but overall it's a super impressive product with a lot of potential. I hope you guys continue growing so that it's around for a long time to come.

One piece of feedback/missing feature was the ability to see a version history. Ideally I'd like to be able to back up my entire set up to github so that we could rollback changes easily.

Thanks! If you don't mind, what were the specific peculiarities with your stack that made using Retool difficult? I'm always curious what blockers to Retool adoption are, even if it isn't something we can solve today.

Ah, good feature request! We recently launched a beta version history + git syncing to on-prem customers. Every Retool app is a JSON blob, and we serialize it to human-readable YAML, so you can do nice diffs + PRs. If you're interested in trying it out... let me know? Thanks! https://docs.tryretool.com/docs/git-syncing

Here's what an example Retool app in YAML looks like, btw:

  version: 2.8.1
    - id: table1
        top: 1
        right: 1
        width: 8
        height: 5
        data: "{{ query1.data }}"
        selectedIndex: ''
          - id
          - name
          - salary
          - 10
          - 100
          - 50
          - white
          - white
          - "{{ self > 60 : 'green' : 'red' }}"
        pageSize: 10
        alwaysShowPaginator: true
        onRowSelect: ''
        serverPaginated: false
        totalRowCount: ''
        paginationOffset: 0
        sort: null
        sortedColumn: ''
        sortedDesc: false
        allowMultiRowSelect: false
    - id: query1
        query: "select * from users"
        runWhenPageLoads: false
        runWhenModelUpdates: true
        requireConfirmation: false
        confirmationMessage: ""
        queryDisabled: "",
        triggersOnSuccess: []
        triggersOnFailure: []
        privateParams: []
        queryRefreshTime: ''
        queryThrottleTime: '750'
        queryTimeout: '10000'
        showSuccessToaster: true,
        successMessage: ''

At my last startup I ended up having to build the "Stripe refund tool" myself in our custom rails admin app. I wish Retool had been around back then.

Wow, this looks amazing. I might give it a go and see if I can replace my own internal crappy admin panel with this. Kudos for supporting GraphQL!

This is awesome, and your landing page is super beautiful, but perhaps there is a better way of describing your product/value other than "pre-built internal tools" ?

I was really confused until I scrolled through your landing page and I learned from examples.

The last time I used Retool, I ended up wanting to kill myself. But that's mostly because we rely on Firebase and have many collections, with documents referencing other documents,... So loading times ended up taking for ever, and it seemed like the simplest thing to do was to query everything and handle the references 'locally', leading to astronomical RAM usage :/

After a week a scrapped it all and went back to developing the back office's front in React.

Although, in hindsight, maybe I was "holding it wrong". Unless my situation wasn't appropriate for the tool. Or maybe my way of using Firestore collections is just plain wrong. Who knows? ¯\_(ツ)_/¯

Hi, I'm David, and I work @ Retool. I'm really sorry that our Firebase support is bad — we built it specifically for one customer and haven't iterated on it since. You're right that Retool doesn't handle deeply nested JSON well. (We designed Retool mostly for databases, so it handles tabular data pretty well.) This is something we will be working on next sprint!

Do you mind if I reach out to you? (Edit: found your email via your blog; just sent you an email.) I know that you've already built everything in React so I'm not here to sell you / convince you to switch back to Retool; I'm here to see how we can improve our Firebase integration / our handling of nested JSON so the next ElFitz doesn't have this issue again. Thanks!

Hi David!

Got your email, and replied. I'd be glad to help. Also, although I have ended up building our back office in React, I'd be glad to ditch it, have one less thing to maintain, and let my "internal customers" build their own tools.

Have a great week-end!

Hey David, love to see you guys on hacker news! Come visit us in Czech Republic again soon :D

Been watching Retool for a while and it's a fantastic looking product and concept. I think almost every company ends up spending a relatively significant chunk of time building up internal tooling like this.

Product looks amazing and I'm thinking about using it on a personal level. But my overall sentiment is the same, per user billing is getting out of hand. It makes sense for application where you expect 1 - 20 users max but for places like us we wont use anything that has per user billing. Our end users are in the 1000's

Love your work though!

This looks interesting. Looks like VB6 on steroids. (With less coding as well). Good luck.

I love Retool, but before I have had a hard time explaining its value to non-technical people (trying to sell it to enterprise); this will be of great help! :)

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact