Ask HN: Best low-/no-code solution for simple web-based database frontends

208 points by codechoir ↗ HN
I'm currently looking for a solution to provide (non-technical) team members with a way to interact with a SQL database (MySQL at the moment; PostgreSQL in the future). Basically, I want/need to build several very simple web-based CRUD-forms. Does anyone remember MS Access...

While my initial thought was to build a simple Django application, I'd prefer something non-developers could also work with. -> Low-/No-Code Solution

While I'm generally willing to pay, I'd really prefer an open and self-hosted solution.

145 comments

[ 4.5 ms ] story [ 218 ms ] thread
Not open source nor self-hosted AFAIK, but it sounds like you're looking for something like Retool (https://retool.com)
I've never worked with it myself, but Appsmith (appsmith.com) seems like a promising alternative to Retool.
I've tested Appsmith: https://www.appsmith.com/ and it's great! It's open source and self hostable on k8s. It's really easy to use, there is included tutorials. I mainly use it to build frontends to make APIs calls, but it supports DB backends like MySQL or PostgreSQL. Devs are available and willing to answer questions.
Hey thanks for mentioning this. I have been looking for something like Cisco Prime Service Catalog, but cheaper and easier to use. This looks to fit the bill.

I just set it up this morning in my homelab, and it was very simple to set up.

You might want to take a look at Baserow (https://baserow.io), which is an open source self hosted no-code database tool and Airtable alternative. It is not possible to interact with an existing database, but the databases and tables created are stored in a PostgreSQL database. It might be possible for you to migrate your existing MySQL data to Baserow. The repository: https://gitlab.com/bramw/baserow. It is build in Django and Vue.js.
The OpenOffice/LibreOffice Access alternative (called Base iirc) can use mysql/postgresql as database backend.

if that's what you want you might want to look into that.

I'm working on an open source solution: Saltcorn (https://saltcorn.com). Works against PostgreSQL and sqlite, with a drag and drop view builder and extensions for Kanban boards, maps, statistics, stripe subscriptions etc.
Thanks for mentioning this - new to me, and looks very, very promising. There goes my weekend... ;-)
I've been very impressed by Saltcorn. It's a very well thought out and elegantly implemented tool, well worth a proper look - I'm looking forward to using it in earnest.
Someone mentioned https://directus.io/ to me for this use case the other day. I've not used it, but it looks good. Open source and self hostable or SaaS.
This looks great, I need to build a customer request management system for our construction company, it's basically a CRUD and this looks like a perfect fit.

Thanks for sharing.

I'm interested to hear how you find it - I looked at it to manage some parts of an already existing system (postgres + sqlalchemy) and there are some quirks.

It doesn't automatically detect foreign keys and make the fields for them correctly. Furthermore, it seems like they don't even use foreign keys for the models created through their UI - I checked the github issues, it seems like all of this is planned but work on it seems to have just started.

I would not reccomend directus. Ive used it for a project and it always is buggy and SLOOOOWWWWW. It looks like a candy of a database manager but it’s not. Plenty of features missing.
Interesting! was that before or after the rewrite in nodejs? Looks like they released the rewrite in November '20.
I'm a founder of Appsmith that has already been mentioned here. It's an open source project to help you build CRUD UI on top on any database(MySQL, Postgres included) or API. We give UI components to create forms, charts, tables, etc.

GitHub link: https://github.com/appsmithorg/appsmith

I was just going to mention Appsmith. Great tool!
Appsmith looks incredible thank you for sharing.
I've just looked into Appsmith and it seems like a fantastic solution! Thanks! :)
We also like appsmith quite a bit: it is simple and just works.
It looks great. So impressive.

I am going through the "Create Standup Application" tutorial.

Did u use a specific library to add the hints/popups or is it all manually patched in?

Library might be an overkill I guess. It is an absolute positioned element. There is a config for each step as to what to show at each step in the popup. The animation at the end makes use of https://github.com/airbnb/lottie-web
This is really nice. Just what I was looking for, as I was suffering from CRUD fatigue
Very Nice Job !!

Do you plan to include GraphQL queries ?

Thanks! Yes native Graphql will be coming soon. Right now you can use POST queries to connect to GraphQL endpoints
Good to know that ! Appsmith is my goto to create tools for my dev team starting from now !! Another last thing, can you provide a simple docker-compose instead of the internet install script which can be a headache for devops teams ? Thank you
Hey kmwr, I'm the maintainer of Appsmith. The install script downloads and configures the docker-compose.yml file underneath the hood. It also allows users to configure SSL, setup encryption keys etc which would otherwise need to be done manually.

I understand that in order to have a repeatable installation process (as per Devops best practices), you'd like to have a single configuration file instead. We are working on some Helm charts for this very purpose.

For now, you can go through the process of installing Appsmith via the script and then use the generated files as a template in your Terraform/Ansible scripts.

It reminds me of Visual Basic 6, in a good way.
If you switch to PostgreSQL, then PostgREST would be a nice solution. It turns your DB into a webserver with REST API for data interaction. Add a simple frontend like you mentioned and it's done.
Not open source, but Ninox is really great once you get used to their UI paradigm that is a little bit different from what everybody else is doing. https://ninox.com/de
PowerApps [0] is a surprisingly powerful and flexible low code app builder (that can connect to MySQL, etc.)

[0] https://powerapps.microsoft.com/

I second PowerApps. There’s a to user-friendly tutorials out there and their programming model is based on concepts similar to Excel.

It should be fairly easy to pick up for end users. But only if you don’t use denormalized tables. If your DB is in 2/3NF you’ll run into issues, e.g. the ever so useful DataTable cannot update data across table.

Also, there’s a pretty significant hard limit on 500 rows.

PowerApps is a great tool, but be aware of its limitations and see if that works for you.

If there is no logic to be needed, wouldn't any of the RDBMS web-management things work out? (think: phpmyadmin etc.)

Alternatively, FileMaker still exists, including a direct web interface option.

I often find that if you truly want a 'low-code/no-code' thing, you're stuck with no-logic no-interaction software. As soon as you start adding logic, you're essentially migrating from programming in a somewhat re-usable language into 'programming' in the form of pictures and application-specific interfaces, which essentially requires the same effort but is much less reusable.

Unless the 'thing' is really a 'table' with some CRUD operations you're gonna en up in a messy situation where some undocumented macro-filled spreadsheet becomes a lynchpin.

> if you truly want a 'low-code/no-code' thing, you're stuck with no-logic no-interaction software

I think this used to be the case but the landscape is changing quickly. Deepnote[0], for example, looks like a really interesting programming interface that's not quite traditional programming and lowers the barrier to entry significantly and is (arguably) in the low-code space.

Low-code products for data engineering show that we're not too far away from these sorts of solutions in a more generalized offering. Spreadsheets aren't the only answer.

[0] - https://deepnote.com/

The landing page does not show a low/no code solution. It shows what is effectively a (possibly) more sophisticated IDE wrapping a Jupyter notebook. One might try to argue it's low code, but if their landing page is showing something that isn't low code, I have doubts.

I think better examples might be Databricks, Tecton, H20.ai, or Domino Data Lab. These aim to provide "drag-n-drop"/no-code implementations for the "boring" infrastructure related work in most typical data engineering/analytics applications, while offering a set of tools for more sophisticated uses (e.g. the ability to supply one's own python functions for ayptical or custom data engineering).

Even these fall short, in my view: they're more like platforms on which to build a data science/ML infrastructure--which requires a substantial amount of engineering effort.

The landscape can change all it wants, but as soon as you put enough complexity together, you end up with programming and even 'real' development and engineering at some point. This isn't even software-specific, it happens to any system that is sufficiently different from a generic catch-all solution.

In some cases it might be beneficial for some people to 'program' using pictures and arrows etc, but if you're in a situation where you need some complex process modelled and automated, the complexity doesn't just 'go away' because a vendor said 'low/no code!'.

> If there is no logic to be needed, wouldn't any of the RDBMS web-management things work out? (think: phpmyadmin etc.)

Because phpmyadmin would be too easy. It looks like this OP needs some busywork.

There's also UI tools provided by the first parties that do these things.

Metabase is amazing at doing basic things in the UI and dropping down to SQL easily if you need. More for reading and analysing though so might not work if you need a lot of the other CRUD stuff
I’ve tried Retool in the past. Really enjoyed it.

https://retool.com

+1 on retool, my company uses retool extensively to build out admin tools for our operations and CX teams. It's incredibly straightforward and easy to hook it up directly to DB's for reading, as well as other query/requests.

Coming from building admin tools in ruby on rails previously, this is incredibly easy and straightforward. If I have the money to pay for retool I don't think I would choose another tool in the future

It's even possible to host it yourself which allows highly regulated industries to use it.

For those who already familiar with the SQL, Retool is pretty cool.
Is Retool usable enough for non-technical people? "It's easy, just wire it up to your REST service" may be scary for non-technical people. Maybe the persona isn't well-defined enough. They're somewhat technical, but don't code.

Spending over a decade programming makes it extremely difficult to reason about the the precise level of "okay, I can do this" from a semi-technical perspective.

I think that is a fair concern. I would say that it does take some learning/training. If you're going to hook it up to a SQL DB or a REST interface then you have to know what a GET request is or the connection credentials.

However, once the data is wired up, getting it wired to the various components was pretty straight forward.

You should check out Stacker: https://stackerhq.com

Your data is hosted in an Airtable or Google Sheet that you control, not in a SQL database, though I'd say this is actually a huge advantage for your goal of a no-code CRUD web app that non-developers can work with easily. It is paid.

Disclosure: I work at Stacker, and we're a YC company. Email in my profile if you have any questions.

Wasn’t the asker’s goal a front-end to Postgres?

Your product looks interesting but I don’t see how it fits the requirements here.

Thanks, yeah you're totally right, but worth mentioning if OP had never considered backing an app with a spreadsheet.

It's a really powerful option for non developers to manage data without having to use SQL / a PG client etc.

Unfortunately, for the current project(s) I have to work with existing DBs. That said, your product looks great for the use case!
I’ve explored lots of these and implemented a few with customers who wanted their “business analysts” to be able to build apps. My experience has been the “non technical” people can’t do these either and wind up getting developers to try, who are then frustrated with lock-in to a relatively unknown tool or expensive BPM suite. To a developer, these are often “death by a thousand clicks”. Even Visual Studio for the most part has abandoned the “Visual”.

I keep hoping that there’s ways to make low-code work without those drawbacks, and plan to try some new ones I see in this thread. In my mind it has to be a designer that a “non technical” uses to output quality code that a dev can then tweak, but not break the designer.

I’ve had a similar experience trying to fix up the code of someone who learned enough to code up some CRUD pages. They got some basic Rails working, and wanted me to take over. I spent a week fixing shit HTML so I could possibly take a stab at fixing the CSS. After about a week I couldn’t take it anymore.
The interface between Microsoft PowerApps and Microsoft Dynamics for example seems to make sense to me - that these low-code solutions can be used to augment an existing (cloud-based) ERP with new forms/capability that wouldn't otherwise be practical.

It seems to be a case of 'right-tool-right-job' rather than a blanket rule that no-code is good/bad.

I actually think no-code is incredibly powerful when applied by the right person to the correct problem, and will run circles around a custom-developed app in terms of cost, time and flexibility. If you apply it to the wrong problem then of course you aren't going to get the same outcome, like with any technology. I think the mistake people often make is thinking that no-code aims to eliminate all-code, but like any development tool it just fits a certain niche well.

I use no-code and low-code tools daily to spin up simple things that are long-term maintainable. I can write real code, but the speed of cranking out these low/no-code sites is unmatchable. Is it frustrating at times? Sure. But like you say, when it’s the right tool for the right job it can be a good idea. We don’t have any truly ‘non-technical’ folks touch any of it though, at worst it’s someone who is basically a self-taught programmer who has a good conceptual understanding of things but may not be able to wrangle the syntax of a traditional programming environment.
I personally believe that Microsoft has lost their way when it comes to low code (which is why we are trying to build a replacement). PowerApps is a lot less powerful than the traditional VBA/Excel/Access combo.

However they did manage to add RPA to PowerApps, which is a plus.

Eh, VBA & Excel serve a fundamentally different use-case for Microsoft. Building lots of hacky applications using spreadsheets was never the intention, and does not result in good applications.

Access... I agree and miss it, but I can see why they wanted to replace it. You couldn't build scalable applications with it because of database locking, and to do the sort of stuff you can do in PowerApps you had to resort to VBA which was beyond the capability of most users (and a language they were trying to escape from anyway!). Lots of the things being built in Access could also be built in Sharepoint Lists, which was also simpler for many users and 'cloud/mobile native'. The more complicated things being built in access... I believe Microsoft probably looked at a lot of them and thought that they would be better in SQL Server & C# / Visual Studio. Plus from a commercial perspective it's way easier to sell PowerApps, you just show managers that you can put things on their phone.

Their biggest mistake was not scaling the VBA/Excel/Access stack beyond desktop and updating it. Where is the WinUI integration for VBA? The product and language was fine but it has been abandoned by Microsoft. It is easy to learn and use but they never tried to make it a cross platform technology.
I don’t think that’s a mistake - VBA in the browser sounds like an awful technology that I want nothing to do with!

Also most VBA code already written is inherently locked into the windows API and COM framework so isn’t multi-platform by design. Code written in VBA on Excel for Windows often doesn’t port across to Mac without errors because there is little abstraction from the host OS. That’s why the replacement technology is a cross-platform JavaScript API for Excel (that will eventually allow fully cross platform macros).

It does have WinUI integration via winforms, but again porting winforms to mobile and web would be a huge technical challenge and be very ugly (or break compatibility).

Join our mailing list :) Give us a try when we launch, you might be pleasantly surprised.
VBA in the browser? This sounds like old school ASP using vb script!
This echoes my experience with trying to leverage BPM tools to automate workflows. The biggest thing that the tools in this space neglect is how important data are. Typing is completely non-existent, and validation has to be bolted on and is invisible/non-configurable to the BA. Configuration-based rules are also incredibly difficult to implement, if not impossible through the UI without a lot of work that would be trivial to implement without the lock-in.

I think for one-off projects and workflows that aren't deeply integrated, tools like Node-RED are very interesting and something I'd definitely consider pursuing. But outside of modeling, BPM tools have been more of an obstacle than anything else.

(comment deleted)
Visual studio also largely trended towards an MVC model + ORM which made implementing forms on a front end an absolute nightmare and led to a lot of security issues, poor usability issues, and lack of agility in changing and updating complex forms with conditional form logic etc. Not to mention that user security integration using identity providers is also an epic headache.

There is a middle ground, and that’s why low code / no code is so popular. Often a business does not need the full flexibility and nonsense that comes along with something like that.

Horses for courses. If off the shelf drag and drop helps you build enough to get your idea up and running and start using it / making money, then that’s far better than being lost neck deep in a code pile and not getting up and running. Once you’ve got the funds, then look at transitioning.

> I'm currently looking for a solution to provide (non-technical) team members with a way to interact with a SQL database ... While I'm generally willing to pay, I'd really prefer an open and self-hosted solution.

You should definitively check Metabase [0] then: it's open source, very easy to self-host, and democratize data access inside your team. We started using it for the same reason 3 years ago, I cannot recommend it more.

[0] https://github.com/metabase/metabase

Metabase is great for querying and visualising your data but won’t help you collect input like Google Forms, which sounds like what the OP is after.
Thanks for pointing Metabase out. Unfortunately, while great for analytics, I'm really more focused on data input.
yeah, you are totally right, I somehow skipped the CRUD-form requirement.
CRUD is basic to low-code / no-code solutions. It is almost the point of their existence. Because for more complex / custom stuff, coded solutions anyway exist and are more powerful and flexible, though at cost of more time and money.
Have you looked at Retool? Pretty sure this is the exact use case they built it for.
Quickbase from Intuit is probably the most mature, easiest longest serving paid, hosted solution. Key is do you want to manage the tool or do you want a turn key approach. MS Power Platform, AirTable are other notables.
They’re no longer owned by Intuit and as a daily user of Quick Base I can emphatically say: avoid it. They’ve focused on cosmetic improvements over the last few years rather than any structural UX changes (or bug fixes). 5 years ago? Yea, give them a try. But no more.
Why not start out by using the Django Admin features?

That allows you to start with next to no code, but you can easily add a little business logic anywhere you need it eventually, and it provides a way to long term transition to a true application if the need arises.

This is definitely the correct approach!

This will take a few minutes to implement and be significantly more stable and full-featured than any low/no-code solution.

Interesting! It would be awesome if anyone would want to expand on this advice (^_^)

How does one get started with Django Admin?

Would this tutorial be a good start? https://first-django-admin.readthedocs.io/

That seems reasonable, though it looks like it's a few years old by now.

You can use my project template, it comes with the admin enabled out of the box:

https://github.com/skorokithakis/django-project-template

You just install that, add the TODOs that it says, and then run it with "./manage.py migrate; ./manage.py createsuperuser; ./manage.py runserver", and that's about it.

I took a quick look at the README and this looks like a great resource. Docker-readiness is a nice touch. I should definitely find some time for trying this out. Thank you for the advice, Stavros!
I find answers in this format annoying. Why not? Maybe he's never heard of it. Great answer, but let's not assume he's considered it and decided not to.
(comment deleted)
I read as just a friendly suggestion that it’s something the OP might want to take a look at (^_^)
I had written it this way because the OP had specifically ruled out using Django. Point taken though.
I think you came across as friendly and helpful. To me "why not" is a gentle suggestion, and not a literal question. Maybe that changes in different parts of the world?
Colloquially "Why not?" is used to make a suggestion. That is, "Why not" means "Perhaps". One need not trace or question preceding statements or ideas nor is there any need to be annoyed.

Is English your native language?

I'm pushing ~$120 million this year through that exact model. Use what works.

Throwaway for obvious reasons.

I explore this topic in my blog post from a few months ago:

https://adsharma.github.io/flattools-programs/

In short, django models are written using a very low level of abstraction. I much prefer dataclasses generated from a high level IDL.

The blog post compares different IDLs and argues why flatbuffer IDL is more suitable.

In order to express queries over such models:

https://adsharma.github.io/fquery/