Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Open-source alternative to Retool, Internal.io, etc. (github.com/tooljet)
429 points by navaneethpk on June 7, 2021 | hide | past | favorite | 68 comments



Founder here,

ToolJet is a no-code platform for building & deploying custom internal tools. ToolJet is built using Ruby on Rails and ReactJS. ToolJet can connect to existing data sources of companies such as databases, Google sheets, API endpoints, external services, and more. ToolJet's drag and drop app builder can quickly create UI widgets such as tables, charts, forms, etc and connect these widgets with the data from data sources.

I have been dabbling with the idea of ToolJet for a while. but the real progress happened over the last 7 weeks while I was in quarantine. One of my family members tested positive for covid and then came to the state-mandated lockdown. Not being able to step out of my home has been particularly hard, but nevertheless gave birth to ToolJet.

I believe that the tools that require access to sensitive data should be self-hosted ( data never leaves the premises) and open-source ( modify the software to fit organization-specific requirements ).


Wow! Building this in 7 weeks is an incredible feat. I am the cofounder of Budibase - an open source alt to Retool, Mendix, Outsystems - and have been building it for around 2 years now.

It's an incredible space and solves a burning problem for engineers, IT teams and business users.

We're seeing major benefits of being open source, with the like of the NHS, Amazon, Deloitte and other major orgs choosing Budibase over proprietary alternatives, so I would say your decision to offer self-hosting was a good one.

As much as we are probably seen as competitors, I wish you well and I am happy to share notes if you would like a call?

https://github.com/Budibase/budibase


> Wow! Building this in 7 weeks is an incredible feat.

Here is an analysis of Tooljet development in the last 90 days

https://public-001.gitsense.com/insights/github/repos?q=wind...

I also did one for budibase as well

https://public-001.gitsense.com/insights/github/repos?q=wind...

Disclaimer: I'm the creator of GitSense


Hi there, nice site.

I'm really like this combined side scrolling table + graph component you use on the pulse page. Looking at the source I see a mention of echarts in the html but I don't think I've seen anything like that in their examples.

Did you build this yourself as a custom rendered chart or is this something that someone else built?


All the charts are by echarts. For the timeline chart (the one in the pulse view) think of it as a scatter chart that is zoomed in. echarts provides labels and drawing lines and other things which is how I was able to create the timeline chart.


Nice! GitSense is really cool. I recently enjoyed this dashboard [0], which is more basic and focused on tracking project popularity. Is there a way for me to add Lowdefy [1] to GitSense?

[0] - https://osschott.metabaseapp.com/public/dashboard/ece8baa7-7... [1] - https://github.com/lowdefy/lowdefy


I've added lowdefy to GitSense and depending on how big the repository is, indexing can take minutes to hours to complete. Having said that, the public version of GitSense is scrubbed from time to time since it is still in Beta, so I can't guarantee that it will be there after the next scrubbing.

You can install GitSense on your own infrastructure like your laptop if you want, but the license file will time out after 30 days. Once GitSense is out of Beta and I'm properly funded, I want to make GitSense free to use forever for small instances and opensource.


GitSense seems very useful. Constructive feedback about the UI: replace the (straggler?) serif font with the sans serif font you're using elsewhere on the page


Thanks for the feedback. I'm the sole founder behind GitSense and to be honest, there are too many stragglers and things I should have done better. It's just that my time is pulled in so many different directions, with the business side of things occupying most of it right now.

Thanks for commenting and yeah I do want to ensure everything is sans serif. I think I get a pass though, since I do have the beta label on the tool :-)


Awesome tool. Have you considered adding support/analytics around Github discussions?


I actually want to index everything in the software development lifecycle, which will include GitHub discussions. The issue right now is I'm a sole founder and I can only implement so many features and I am looking for investors right now (ping me if you think you can help with introductions) to tackle what you suggested.

I really do want to index everything from meetings, emails, time between design docs and so forth. Indexing GitHub discussions is very important since it takes effort to engage people and I want to best capture effort so that developers can say "1 line of code" took more effort than you can imagine.


Awesome. It's a big task, and I wish you all the best. Not sure I can help with investors though.


Why no LoC included, it seems most useful metric. Also bugs filed/fixed would be helpful too.

Thank you for your effort!


> Why no LoC included

LoC invokes PTSD for many developers and I honestly want to do it right, which will take a bit effort and thinking on my part. For example, when providing LoC, I want to be able to break it down into useful information like (isolated code, used here and there) and so forth.

I want LoC to help us understand the significance of going from one revision to another, so that LoC can be used to help us drive actionable insights.

Edit: Just realized I never addressed your other points which is I do want to index and provide insights into everything in the software development lifecycle, it's just that I'm bound by resource constraints right now.


Thanks :)

Sure, would love to talk. Please send me an email so that we can schedule a call. ( navaneeth@tooljet.io )


Would you two be able to share some take-aways from that conversation at some point? Maybe write up a short comparison of the projects as they are now and any differences in roadmap/vision that could be relevant.

I always appreciate when OSS projects put in effort to understand and position themselves in relation to competitors (or potential collaborators).

Also want to mention some open-source React visual drag and drop page editors that might be useful for inspiration or to eliminate possible duplicate work. There's OpenChakra [0] and Blocks [1], which are apps, and then there's craft.js, a library that aims to modularize "the building blocks of a page editor" and seems to have more emphasis on customizing the actual editor UI.

Best of luck to you both!

[0] https://github.com/premieroctet/openchakra [1] https://github.com/blocks/blocks [2] https://github.com/prevwong/craft.js


awesome. I'll ping you later


I have to say I was very impressed when I tried out Budibase and was able to create a CRUD app out of the box without looking at docs. You guys are easier to use than Retool — and self hostable/open source!!

i have no idea what it's like to work on this problem for 2 years but really looking forward to see what you become. the youtube updates are super helpful btw pls keep that up


Appreciate your feedback. With the latest release, we're in a much better position to release quicker, and communicate better.

We're still in beta, and yet to launch to Hackernews, PH, etc, so looking forward to that over the next few months.


I've been playing with this for a little while now, really like the fact this takes over a lot of the management issues as well like handling email templating and all those nitty gritty bits that would otherwise be a pain!

Looking forward to seeing where this goes over the next while!


Thanks for the feedback. Our latest release has received great feedback to date. There are a lot of IT professionals out there who don't want to deal with onboarding, adding/removing users and forgot password flows.

I'd love to hear more about your use cases if you have the time:

calendly.com dash budibase


I'll get in touch, thanks!


Hey! I've been following Budibase too You're doing great too.

I want to do implementations for projects like this and trainings around it. There is so much power in these tools its amazing.

Can we talk too? andrew AT amescher.com


Hey - of course we can. I'll email you ASAP


Would this be considered product thread hijacking? The 'compliment' could also be interpreted as a disguised subtle diss (7wk product vs 2yr one)..


It's not a diss. It is a compliment.


This looks cool. What did you use to generate the documentation? https://docs.tooljet.io/docs/intro/


Looks like Docusaurus.

Check out Wappalyzer[0], it's an open source plug-in that tells you what technologies a website is using.

0. https://github.com/AliasIO/wappalyzer


Docusaurus - It's easy to customise and good enough even without customisations.


This looks very interesting... But no tests?

I'm not 100% happy with a project at work, where we're building out a jsonapi from a legacy rails app (part rewrite in-place, part move to react for front-end) - and after setting it up rswag with integration tests generating swagger schemas has been pretty nice. Not quite decided on what I think about activemodel::serializer... But it mostly works, without too much tweaking.

I've also adopted some ideas from:

https://github.com/guillaumebriday/jsonapi-scopes

For filtering/sorting - I think something like it should be in rails, really.

Rswag: https://github.com/rswag/rswag


Rswag looks cool, will try it out. There are tests for rails controllers and I have recently setup Cypress for component testing, will be focusing on tests the coming days.


> There are tests for rails controllers

I only found one:

https://github.com/ToolJet/ToolJet/blob/develop/test/control...

The others appear to be empty scaffolds (which imnho is worse than no tests, really), eg:

https://github.com/ToolJet/ToolJet/blob/develop/test/control...

  require "test_helper"

  class FoldersControllerTest < ActionDispatch::IntegrationTest
    # test "the truth" do
    #   assert true
    # end
  end
Same for empty model tests etc - I'd strongly encourage removing them - as they just add noise.

Btw, if not doing tdd, time is probably better spent on integration tests than controller/model tests. Main challenge I've found with rails projects that were put in use with no tests, is there's a big effort to set up test data/fixtures from scratch. One option can sometimes be to just set up a test database with real data (database dump as a fixture).

> and I have recently setup Cypress for component testing

That's nice, and probably a good focus for a project like this.

Ed: as for mocking/integration testing apis - which might be useful here, there's "vcr": https://github.com/vcr/vcr


Appsmith is also open source, but this looks great. Can't believe you knocked it out in 7 weeks.


Same here, the website and product looks impressive. @navaneethpk how many hours a day have you been coding? Do you use some ready templates or boilerplates?


8-10 hours a day :) Using Tabler for builiding the user interface helped me speed up the development.


Can you give a brief breakdown of what features are the same between ToolJet and a service like Retool, what features are different, which ones are intentionally left out, and how close to feature parity you're hoping to get?


There are many similar features such as: a) The ability to fetch & merge data from multiple data sources b) Widgets such as tables, charts & forms

The goal is to build more connectors and widgets while ignoring features that will not makes sense for majority of the users. Example of a feature that's intentionally left out (for now) is the schema browser for databases.

Also, thanks for pointing out the typo, fixed it :)


Impressive amount of work for 7 weeks! Looking forward to trying it out, super welcome tool!


It demonstrates what a skilled Rails developer can achieve by himself. It’s not a surprise that so many successful startups are still built with Ruby on Rails regularly.


That is a very great job. Congrats! My feedback is to make it flexible on charts and easy to create admin panels.


Any ideas how you will differentiate yourself from Appsmith? (which looks similar but more developed)


I feel like low-code apps like this have hit commodity level.

A bit of history - in the late 90s, you could (and we did) build a multi-million dollar product doing basic content management for plain old web pages. That heydey lasted a couple years before Wordpress and other such tools came around and basic CMS was more of a solved problem than a unique product.

The same has occurred over the years in multiple niches - a tool that would have been a terrific SaaS at one point gets built out, normalized, and well understood... to the point that it is no longer a unique value prop to just build a tool that solves problem X. You need to build the tool AND have some unique perspective and value prop that escalates it above all the others.

Low-code CRUD builders with DB integration and some basic workflow, reporting, and security now have hit that mark. There have always been big players in this market (Microsoft, IBM, Salesforce, etc.) It is good to see smaller players coming into their own in recent years, and this specific one is open source, which is a nice differentiator between it and many others.


For me the problem is that they usually don't reach a good maturity level, but the idea in my opinion is very important. To mention the 90s again, you could do in one day an internal app using MS Access. Now if you want it with web interface, you have to think about front-end, back-end, database, devops. It is just too much for when you want a simple thing.


Pretty cool project to build in 7 weeks! Congratulations! Your lockdown has been way more productive than for some of us.

I'm a founder of Appsmith, which Tooljet mentions in the GitHub project as an inspiration. https://github.com/appsmithorg/appsmith

We are an Apache 2.0 licensed internal apps builder that's being used by teams in Adobe, IBM, MSFT, Rappi, Swiggy, and 1000's of other companies.

Difference vs. other projects mentioned here: 1. Community edition is free for unlimited users 2. Great developer experience(local development, debugging, & Git sync is coming soon) 3. Pricing model will be usage based and not user based


Congratulations on the launch! What would you say is the main reasons why one should choose you over other open source solutions like Appsmith and Budibase?

PS: Small typo on the docs - https://docs.tooljet.io/docs/intro/

> but in case you are stuck, please feel to mail us:


This space is very hot right now. This looks amazing. I can't wait to use it.

ToolJet, NocoDB, fabrica.dev are all projects I've found recently in this space.

I've been really thinking a lot about how to bring tools like this to businesses and make them useful. I still think there's a lot of training and material needed to make these ultimately powerful. Love Open Source!


We definitely need good reviews comparing all the different options. Hard to know the pros and cons of each solution quickly. Appsmith, Saltcorn, Budibase were three others I came across today


Hey @navaneethpk,

Congrats on the launch! How do you plan to monetize this on the long term - if you are? Premium plugins? Fully managed paid hosted version?


Looks great!

How do you sandbox custom js code. Can we choose if it runs on the front-end or server-side?

Most of the low-code opensource builders seems to run it on a sandbox in the frontend using realms..but this is not great if a screen needs to perform calculations that affect financial data like a mini POS, tax calc etc


Is the concern with running JS on the client side regarding security? At Appsmith we run user code inside a worker to avoid malicious code from accessing many browser apis. We also plan to add the ability to run the JS code on the server and have it run via web hooks for automation use cases. I wrote how we do it at Appsmith a few months back:

https://blog.appsmith.com/evaluating-js-in-the-browser-for-a...


Congrats on the launch! This is really cool. We created Lowdefy [0] to build similar apps but with a "no-gui" approach. I have great respect for how much work this is. Even the website looks great!

[0] - https://github.com/lowdefy/lowdefy


Congratulations on launch!

Got a question. What do you think, is it possible to create internal tools as desktop apps that doesn't need servers/internet connection? I understand that your product is web based, so doesnt have such desktop-app feature. Can you recommend any no-code tool for building desktop based apps?


Budibase have a desktop app, not sure if the apps built can run without internet.


They just phased it out to focus on the browser version iirc



Aplogies, please use this link: https://docs.tooljet.io/docs/deployment/architecture I recently changed the structure of documentation, probably forgot to change the url somewhere. Will fix it in a while.


This goes in an infinite loop now.


So this is like a web version of Filemaker?


For people in the ruby/rails/active record ecosystem, rails_admin as always remains a fantastic choice


I've used Retool at my old job and it's one awesome platform. Does Tooljet support also MySQL?


Is there a way to deploy a tool to end users only? Say I build something with this system, but I want to give end users read access only on my website or backend system?


Can you reformulate that? I’ve read this several time and still not sure what you are asking for.

Do you want to restrict access? If so easiest should be to put a load balancer (For example haproxy, or whatever you use already) with auth


Is there anything similar with nodejs backend ? Having ruby is a big downside since you need extra engineer with ruby knowledge in the team.


budibase and lowdefy


Good job navaneethpk, this looks really nice!


Before I could give more of a look into it, the license jumped at me. What's the idea behind using GPLv3? Who do you want to enable to use this, versus whom are you trying to prevent from using this?


GPLv3 has an elaborate preamble, which should be able to answer some of your questions. In particular, wrt "whom are you trying to prevent from using this", it mentions things such as:

we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary

and:

if you distribute copies of such a program, whether gratis or for a fee, [...] You must make sure that they, too, receive or can get the source code

So, given that the GPL says these things, and the author has selected the GPL for this project, by a reasonable guess the answer to your question is, "people who would otherwise do/not do those things".

Rather than adding a TODO item onto the list of the person who has already gifted this to us, where that item would involve the labor of enumerating over a set of scenarios, composing a response to you, and hoping that it answers your question, how about helping both them and yourself by inverting the workload and elaborating on what you mean?

GPLv3 doesn't prevent anyone from using the covered software. Who do you think is prevented from using this? Do you consider the GPL to be a bad choice for some other reason, and you think there is a compelling reason to do something else? What are those reasons?

And ultimately, this is software that is being provided to you, generously, at no cost, and the author has gone out of their way to let you do stuff with it that you otherwise wouldn't be able to do. If it doesn't suit you and you don't want to "give more of a look into it", then don't.


Maybe your question should be more specific. What use case do you have for this project that you believe might be inconvenienced by GPL?

Without that, it sounds like you’re spreading FUD about GPL.




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

Search: