HACKER Q&A
📣 sidcool

What is the simplest and most flexible way to build a CRUD app in 2019?


I like the Rails model of ActiveRecord and Spring Data too. Any other models, tools, frameworks that make building CRUD apps easy and also provide flexibility?


  👤 013 Accepted Answer ✓
The Symfony Maker Bundle[0] let's you run one command to generate CRUD views/forms/controllers on a defined entity[1].

So, with 2 commands you can have a CRUD website with all the values you need.

Really easy, really flexible.

[0] - https://symfony.com/doc/current/controller.html#generating-c... [1] - https://symfony.com/doc/current/doctrine.html#creating-an-en...


👤 gitgud
I recommend [1] react-admin, it's an admin panel framework built for CRUD style apps.

Tables, Lists and Forms are all built-in and nicely abstracted, along with an Auth system. It's built using react and redux which makes it easily extensible. And there's plenty of database connectors for it too.

[1] https://github.com/marmelab/react-admin


👤 muzani
My choice:

Framework7 hybrid front end + Parse Server back end, hosted on Heroku and mLab.

Or if you want lighter and simpler, with less scalability, jQuery + Bootstrap + Parse Server. Maybe Vue.

Setting up Parse Server is poorly documented, so I wrote a little walkthrough: https://medium.com/@smuzani/setting-up-a-mobile-backend-serv...

I'm not sure about the others, but I'd say it would take about 2 hours to build a quick listing app with little experience.


👤 latchkey
If you go the JS/TS route, definitely go with MikroORM as your ORM [1]... it is rather newish, but works unlike all other JS/TS ORM's on the open source market. Namely it has implemented Unit of Work...

[1] https://github.com/mikro-orm/mikro-orm

(Note: v3 is beta and what you should start with. Quite stable as it has 100% coverage.)


👤 sireat
I know many people who are extremely productive doing CRUD apps using Django. I am not one of those people.

They claim it is very fast development once you get past some comfort level. There is a bit of jump involved when it just clicks. I've tried a few times and it seems like slugging it out with a lot of magic.

While I write and like Python more than PHP, something like Laravel or Symfony seems more logical for CRUD than Django to me.


👤 syedmeesamali
I just completed my own CRUD App and feel super proud. Simple no non-sense user interface all in Vanila JS along with my own personal hand coded CSS and HTML. Backend using Python Flask with form packages for input forms. Database simple SQLite and authentication using Flask login system. Super simple yet lovely and useful.

👤 davidjnelson
Rails/Postgres/Heroku/Cloudflare is a great stack. You have the option of scaffolding for quick and dirty mvp test stuff, and you can use something like react_on_rails to do universal rendering of react, which is pretty great too for the more customized and interactive views.

👤 jnathsf
Our company has used BulletTrain (RoR) with success - met our unique business needs quickly and at a low cost. Since it’s standard Rails we can tap into a big dev community.

https://bullettrain.co/


👤 chatmasta
It depends what you know. There is a productive option in pretty much every language. If you know JavaScript, you’re ahead of the curve simply because you can share so much code between frontend and backend. With tools like next.js it’s almost automatic.

The real problem, I think, is that 95% of real business problems are not simple CRUD apps. There is always some complication unique to your domain that burdens you with constraints. Also, it seems like authentication is a problem that is still not solved smoothly without paying for SaaS. It doesn’t take long before you feel like you’re anything but a standard “CRUD app.”

My lesson from the past few years has been this: stay within the guardrails as much as possible. Use frameworks when you can, and try not to deviate too far from their conventions, no matter how tempting. If you stay within these rails, it’s fairly easy to ride the flow of changes and keep your code up to date without losing velocity on new features.

Whatever you choose, you're still going to be using it in three years. The safest option is probably to pick something really popular.


👤 potta_coffee
Laravel, Django, or Rails. The productivity comes from being proficient with the tools. Pick the one you like, each is extremely productive, from my experience.

👤 codeonline
Make use of the tools you are most familiar with. You want delays to arise from your understanding of the problem domain rather that the platform upon which you are building it. Also if you are targeting the simplest and most flexible execution, then you should accept that the platform you choose for v1 might not be the same for v2 as more specific use cases might emerge that will enable you to better compare frameworks and platforms.

👤 santa_boy
It is very easy to build a CRUD app with reasonable security using [Meteor](https://www.meteor.com/) and its [autoform](https://github.com/aldeed/meteor-autoform) package.

The best part is you retain complete freedom and control to manage any part of the process both on the client and server side and "hook" in practically anything else on top of it.

Even in Meteor there are new ways but require more learning.

[Django](https://www.djangoproject.com/) is also very good if you like Python.

IMHO, the best part of both is that you don't need to worry about a TON of standard functionalities like authentication, logging, messaging, security (to a good extent), user management, etc.

I program on the side and focus more on the business, and just find comfort in JS although I do analytical work in Python (and integrate them using hacks and bridges .... works fine for most part ... little slow and clunky but works and saves a lot of dev time)


👤 hbcondo714
I just discovered today's discussion here on HN about building a CRUD app with Datomic Cloud Ions:

https://news.ycombinator.com/item?id=21490305


👤 lmiller1990
I still think Rails is the fastest way, but any of the "monolith" frameworks (django, etc) is similarly fast, once you know the tooling well.

👤 bjacobt
If you use node, then FeathersJS is good. https://feathersjs.com/

👤 louisswiss
I've found it relatively easy (and very quick) to get something up and running with Firestore/Firebase and React.js.

👤 snisarenko
I recently discovered 8base: https://www.8base.com/ I haven't tried it yet, but based on documentation looks promising.

👤 fulafel
Web based spreadsheets are one sweet spot. Generally simplest and most flexible are conflicting requirements.

👤 elamje
I like python flask! Great flexibility, and it has a great plugin ecosystem.

👤 vs4vijay
Well Express + Express Generator is pretty neat in NodeJS ecosystem.

👤 shekhardesigner
SailsJS Blueprint API are still my favorite. https://sailsjs.com/documentation/concepts/blueprints

👤 johncmunson
Express + Objection.js + SQLite

👤 qes
> simplest

> most flexible

Pick one.


👤 pinky07
Odoo is probably the fastest way to create crud apps, especially with Odoo Studio: https://www.odoo.com/page/studio