Hacker News new | ask | show | jobs
by sonofaplum 2507 days ago
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.

1 comments

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
  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: ''