
Show HN: Retool Templates – Custom internal tools with drag-and-drop components - syogi
https://retool.com/templates
======
syogi
Hi, I’m Yogi, the engineer who worked on templates. Retool
([https://retool.com](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](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”.

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

~~~
dvdhsu
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!

~~~
vish4
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?

~~~
dvdhsu
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!

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

------
alexgodin
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!

~~~
syogi
Thanks for your support Alex!

------
ethiclub
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.

------
vijucat
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/](https://www.awareim.com/).
They're not that famous, but I appreciated the extensibility.

~~~
dvdhsu
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](https://docs.tryretool.com/docs/git-syncing)

* hosting on-prem: [https://docs.tryretool.com/docs/setup-instructions](https://docs.tryretool.com/docs/setup-instructions)

* custom components: [https://docs.tryretool.com/docs/custom-react-components](https://docs.tryretool.com/docs/custom-react-components)

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

* writing custom JS: [https://docs.tryretool.com/docs/custom-js-code](https://docs.tryretool.com/docs/custom-js-code)

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

------
sonofaplum
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.

~~~
dvdhsu
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](https://docs.tryretool.com/docs/git-syncing)

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

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

------
knubie
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.

------
ValCanBuild
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!

------
ElFitz
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? ¯\\_(ツ)_/¯

~~~
dvdhsu
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!

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

------
craze3
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.

------
parentheses
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.

------
Dansvidania
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! :)

------
thedangler
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!

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

