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...
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.
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.
[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.)
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.
I hear about using Cloudflare often for DNS usage, I just have limited experience with the network side of things, so Ive never been clear why it's something that you need a standalone service for at the MVP stage?
They do a bunch of other amazing things as well, but those are a few favorite features off the top of my head. Definitely check them out!
* Sinatra, is orders of magnitude simpler than Rails
* The command line interface of MySQL is orders of magnitude simpler than PostgreSQL (think "SHOW TABLES" vs. "\dt")
* Installing SQLite is easier than PostgreSQL OR MySQL.
* Cloudflare is completely unnecessary complexity. Yes it's a valuable service, but most webapps will never need it, and it can be added on later.
There are many things that experienced developers come to do without thinking. This doesn't mean they're simple. This usually just means we've memorized how to do the hard bits without worry.
Basically, YAGNI (You Aint Gonna Need It)
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.
Yes, there's frequently a corner of the app that deals with whatever special sauce the company does, but the rest of the app, the majority of the web app.... is very easily handled with CRUD. Even something like Uber: Request a ride (submitting a form "CREATE"). Check the status of an inbound driver ("READ" data from a db). Pick up a user ("UPDATE" the status of the order in the db). Cancel my account ("DELETE" a record from the DB).
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)
In such case, I wouldn't agree with recommending Meteor for a simple CRUD app because naturally there are lots of performance overhead and moving parts.
I remember using it around 3 years ago, it easy to start with, but as soon as your data structure becomes more complex and you need a bit more than plain CRUD, it becomes very messy.
> most flexible
Pick one.
The main drawback in my experience (which is a couple of years out of date) is that once you started pushing the framework to outside what it was designed to do (I'm talking about being far from CRUD), it's less likely that someone has written a blog post or module to do it than in Django, so you'll have to do it yourself. But it was a reasonably rare event, and I'm confident we saved quite a bit of time on the whole.
(Disclaimer: worked at an Odoo partner company for a few years. I don't currently have anything to do with Odoo except a few friendships in that company.)