Ask HN: Easiest way to build a CRUD app?
Ideally, there would be no:
>multiple programming/scripting languages to learn
>external dependencies: packages, api's, services, saas
Should be simple and resilient, can last for a long time.
Doesn't require a lot of maintenance, large multiskilled teams, or dependency on services or API's that have a tendency to deprecate or disappear. Something which is not easy to compromise or hack.
Is it a stupid question? The closest I can think of is a static site generator with some kind of self-hosted database but I'm not aware of any.
Thanks
238 comments
[ 5.9 ms ] story [ 275 ms ] threadIts hard to build anything non-trivial with a gui without involving a few languages these days.
You can package your .NET server as completely self contained and run it on anything, just need a web browser.
Edit: python might get you close with a simple html framework.
although it is a little bit in disarray at the moment because of a migration to preact.
Whe first thing that comes to mind i Notion, which is a true no-code alternative if you want to build internal CRUD apps.
The next step would be to use a managed backend and a no-code frontend. For backend you can use services like Firebase [1], Nhost [2], or Supabase [3].
For frontend you can use something like Retool [4].
[1] https://firebase.com/
[2] https://nhost.io/ - Discloser: I'm the co-founder of Nhost
[3] https://supabase.com/
[4] https://retool.com/
If you're coming with no experience in programming at all, nothing will be easy. There might be tools which focus on one programming language, but they would abstract away too much details of how web based apps work in general to really understand what you're doing.
If you have some experience in a programming language or coming from just another field than web development, I'd suggest you go with a web framework which is commonly used in your programming language's universe. That might be Django for Python, ASP.NET for C#, etc.
Then, there are many lowcode/nocode tools which gives quick results. I have used Anvil in a tutorial to build a Twitter Dashboard: https://bas.codes/posts/python-anvil-twitter-stats
Your idea with the static site generators could also work. Keep in mind that you're going to create mostly frontend code when using this approach. That involves JS and npm – so you might go deep into the rabbit holes of front end web development, which can be huge. However, if that's what you want, I'd suggest using NextJS over Gatsby since I'd consider it easier to setup for beginners. Using a non-JS static site gen would contradict your "no multiple languages" requirement ;)
Laravel is basically the “Rails of PHP”, and has an absolutely incredible ecosystem to go with it.
Livewire was directly inspired by Phoenix LiveView. I only just recently started using it in my own projects, but it’s invaluable. Backend has always been my speciality, but now I can make real-time UIs just like the cool JS kids can too :)
[0] https://laravel.com/
[1] https://laravel-livewire.com/
Either AWS for hosting or if you go the crazy root your ISP to bring internet to your own server.
Relying on Google sheet and Google form seems like a reasonable safe bet.
Then of course, the simple stack may not be enough, but if it is enough, I am not aware of anything simpler.
Any tool that can do CRUD in a web context has a minimum level of complexity. I strongly believe iommi comes closer to that minimum than standard django by a lot.
It's not a no-code solution, but the shallow learning curve will allow you to get up to speed in no time.
I believe it’s a brilliant tool for building internal CRUD type db apps.
Knowing how to use the admin framework well is basically a developer super power.
You won’t need any external libraries, it has brilliant docs and important tools like database migrations are built in.
If you want to do something that the ORM isn't designed to do it can be a real pain. But if you have 20-30-100 different business objects you need to model and only a few don't fit in nicely you save so much time in the others that you can absolutely afford to figure out the special cases.
I have in the past used Djangos built in “in memory” cache with a global invalidation on all db writes for simple apps like this that have a low write rate.
[0] https://github.com/cookiecutter/cookiecutter-django
Using the CRUD-app-building framework in which you are competent.
Beyond toy apps there are no shortcuts without that competence but there are plenty of prospective frameworks to develop it in, as evidenced by the other comments.
That's assuming people already know one. If they don't, which would you recommand?
https://jasonette.com/
I would still build a crud app with the frameworks and dependency hell you are referring to. Magic solutions tend to save time in the short term but often cost more than it saved in the mid to long term.
Django is great, you can get very far with it's defaults e.g. it uses local SQLite db.
It is not a stupid question at all. A problem I thought would have been solved by now or very closed to solving it. But we are not even half way there. Especially the self hosted API and services part.
Basically you want to bring Native App development model to the web. Although I think WebObject in the old days were quite close?
The current recommendation are Laravel, Rails and Django.