Live data from Hacker News

Ask HN: Easiest way to build a CRUD app?

news.ycombinator.com

211–220 of 239 posts

Re: Ask HN: Easiest way to build a CRUD app?

#211
post #186

I'm reading this as a CRUD GUI app. Definitely Ruby on Rails coupled with Avo (shameless plug). It literally takes you less than an hour to create a realistic usable CRUD app (that would take you at least a few days in the traditional way) without learning anything new. Generate a DSL (a Resource) and add one line per field. Avo knows how to read and display in a rich way, handle creating/updating records using your…

I second Rails. It's incredibly polished and has really good gems to speed up dev. ActiveAdmin is a great gem if you need to quickly make an admin dashboard. It was useful when I had a small consultancy. https://activeadmin.info/

Yup. That's how we think about it. Avo is for Rails what Rails is for web development. It should increase your speed a few times (3x-10x).

Also Avo is so much more than just CRUD. You can easily break out of CRUD and create your own pages and dynamic content in it; dashboards is incoming in the next month; authorization; multi-tenancy; multi-resource search; and much more.

We're trying to figure out a way so we distance ourselver from being just "a prettier activeadmin", but a full on rocket of a developer platform.

Thank you for your compliment!

Re: Ask HN: Easiest way to build a CRUD app?

#212
If it's for a side project, i would think about resiliency and lasting for long time once there's a need for it. This's also contributed by the stack or how you setup infra. So don't bother initially.

You can pick a framework if you're comfortable with mix of frontend and backend (rails, django etc)

If you are more on backend, pick say react in frontend and your choice of language in backend and write monolith. Have a database if needed. Avoid cache completely (You don't need to scale or make it performant). Infact you can use file based db (eg: bolt) and add Pg/Mongo/Sql later.

My usual setup is,

  1. Go for backend, react frontend
  2. Deployed backend in free-tier GCP VM
  3. Deployed frontend in Netlify/Heroku
  4. Use free pg database in Heroku
Avoid self provisioning as much as possible if you don't need the control.

If it's for Indiehacker project, would suggest to not build it right away, use nocode platform or template to setup landing page, validate and do things.

Re: Ask HN: Easiest way to build a CRUD app?

#213
The absolute simplest setup that i've ever seen would be along the lines of the following:

  - PHP on the server, regular .php files that process the requests
  - Apache2/httpd as your web server
  - SQLite as your database (just a file), through PHP's PDO
  - just regular JS/CSS files for additional functionality that you need (e.g. add jQuery/Bootstrap)
  - no Composer or reliance on external dependencies or package management whatsoever
That said, every application that i've seen that has been written this way has been pretty bad - eventually you develop your own badly tested and badly documented abstractions that will slow you down towards the end of the project development and will cripple most of the developers that will need to take over your mess. Furthermore, security is generally an issue, since you should almost never write your own security code under most circumstances, but you probably will do just that with this approach. Also, managing the installation will eventually be a bit problematic, as your current PHP version will be deprecated.

For those reasons (and some others), i'd generally advise people to go with one of the other popular web frameworks with server side rendering:

  - PHP with Laravel/Lumen/Slim
  - Ruby with Rails
  - Python with Django
Now, some might prefer having a separate front end application (Angular, React, Vue, Svelte) from the back end (probably REST for its simplicity), but that's just introducing more complexity into the mix than necessary in this case, even though it has other benefits in regards to eventually scaling and/or swapping out bits of functionality for other technologies down the road.

Personally, i'd look in the direction of using something like MariaDB for the simpler apps that might need to eventually have a separate DB instance, as well as containers for managing the runtimes of everything as well as networking (Docker, Docker Compose, Docker Swarm, rather than something complicated like Kubernetes), but none of that is also strictly necessary.

As for the actual servers, just get an Ubuntu LTS VPS on whatever provider is affordable to you. It has a long life cycle, is generally pretty well documented and pretty boring. That way you can also migrate elsewhere if need be.

Re: Ask HN: Easiest way to build a CRUD app?

#214
post #56

I'll probably be a minority here, but I'd say: java + Vaadin [1] + raw jdbc (no ORM nonsense). On Vaadin site, you can use starter [2] to create an app template. There is no need to write javascript; most Vaadin code looks like good old desktop programming. Due Java stability, that thing will run forever and will be performant. If you want to be "cloud native" (or whatever cool name now is) in the future, you can lat…

+1 for good old Java, rock solid and just works for so many large, mission critical, and high performance (!) systems. As for vaadin - how far can u get without the pro version? None of the samples include a login, and the LoginView seems to be a PRO feature? It looks full of features.

I haven't checked LoginView, but I guess it will be a couple of text fields, a button with an attached event, maybe CSSLayout, and some javascript code for effects. Something you can easily get done quickly by following tutorials.

PRO components are there you can get something fast with zero coding, but everything else is open source Vaadin.

Re: Ask HN: Easiest way to build a CRUD app?

#215

I'm reading this as a CRUD GUI app. Definitely Ruby on Rails coupled with Avo (shameless plug). It literally takes you less than an hour to create a realistic usable CRUD app (that would take you at least a few days in the traditional way) without learning anything new. Generate a DSL (a Resource) and add one line per field. Avo knows how to read and display in a rich way, handle creating/updating records using your…

Except ruby is dead for literally anything else, so the moment you need it for anything else you're combining languages.

We are currently thinking about how to break that barrier.

When talking about configuring Avo, it's not really about having the best ruby developer. Instead, you just need a crafty developer.

If you bring in any PHP/JS/Python/INSERT_PROGRAMMING_LANG_HERE developer, they will know how to write that one-liner that adds that new field to a resource.

The alternatives are to use "general purpose" low-code tools (like re-tool) or mash it all together yourself using packages like AG Grid, both having the burden of a steep learning curve and continuous maintenance. With Avo, you need to know a bit of ruby and let it help you get the job done.

Avo is designed to be a bit boring like Rails. You build it; it works, and then you forget about it.

Re: Ask HN: Easiest way to build a CRUD app?

#219
post #110

No one mentioned Spring Boot and Spring Data with Thymeleaf yet? I find it quite simple to build stable web apps in a short time. Plus it removes a metric ton of boilerplate that's inherent in Java applications.

I use Grails, which is Spring Boot with sane defaults already configured. Grails is very similar to Rails, while Spring Boot still involves some configuration.

Re: Ask HN: Easiest way to build a CRUD app?

#220

I've spent years building an open-source framework for building CRUD apps [0] I made it because I was tired of spending months designing beautiful interfaces, only to realize I was only 30% done with building a full app -- it was exhausting. So I thought of a simpler way to create a dynamic app: treat HTML as a data structure. --- Here's how to use it: Tag your HTML elements as editable and/or containing data. The sy…

The concept looks very similar to the idea behind Mavo[1] and I think is great. Mavo is probably is too dumbed down for the HN crowd, but for simpler requirements I don't see how I personally could get a CRUD app running any quicker. A big part of this is being able to make the back end someone else's problem without fuss (local storage, GitHub, Dropbox, Firebase, Google Sheets, etc), but there are other options too.

It looks like Remake (when run self-hosted) gives a bit more depth, control and ownership, but also the responsibility and complexity that comes with it. I'll have to check it out.

[1] https://mavo.io

Post reply on HN