HACKER Q&A
📣 MrPowers

What's the best technology for a CRUD website to minimize maintenance


The first website I ever built (CodeQuizzes) still has some users and I'd like to migrate it to a tech stack that's easier to maintain: https://www.codequizzes.com/

It's a Rails app that's hosted on Heroku. It's a simple CRUD app that's backed by a Postgres database, only a few lines of JavaScript. I am a data engineer and don't have the time to keep up with the constantly evolving Rails ecosystem. I don't need a web framework that makes breaking changes to add new features.

* I know Python, but guess that Django is a constant maintenance effort after looking at all the releases

* I also know Scala, but find it really difficult to maintain, as I noted in this thread: https://news.ycombinator.com/item?id=26539508

* I'm working on a Node / React app right now and it seems it will also require constant maintenance

I'm leaning towards Go. From what I understand, Go really cares about backwards compatibility and lets you build a CRUD app that'll continue to work with minimal maintenance. Interested in thoughts on the best technology for this.


  👤 rlawson Accepted Answer ✓
I've had a Django app running for 3+ years (stick to an LTS release) and it requires a very occasional security update (months in-between) but generally it's a 5 minute change to update the version, run the test suite and then push to prod

👤 vhodges
https://postgrest.org/en/stable/index.html for the backend? You'd still need to write the front end of course.

👤 VectorLock
Other than security updates why can't you just freeze your dependencies as they are now? Or am I understanding you want to continuously work on it but don't want to have to fix forward version incompatibilities?

👤 anoojb
I think you’re describing needs similar to an Enterprise, which primarily use .Net and Java.

I might encourage you to look at ASP.NET if you really want minimal maintenance and a modern-ish experience.


👤 juanse
Out of curiosity: Which change in Rails broke a part of your system? I am also interested since I use also Rails.

👤 solardev
This website seems simple enough that you could conceivably write the whole thing in plain HTML + vanilla JS, with the quiz data stored as plain JSONs that you either inline or dynamically fetch() as needed. You can do all that with or without a (frontend) web framework, up to you. I don't think you need a relational DB at all, unless there's some hidden feature I didn't see at first glance?

What's the CRUD aspect? If it's just the user login + progress saving, you could probably outsource auth and then store their progress as user-specific metadata, tied to individual question IDs. Doesn't seem like you need much of a backend at all. Maybe a cloud KV store at most (Cloudflare, etc.) or the free plan of some headless CMS.

If you really prefer a relational backend, services like ElephantSQL and Cloudflare D1 and DigitalOcean offer low-costed hosted Postgres that you don't have to maintain yourself (no updates, OS to manage). Instead of a full-blown backend, just write a serverless function that your frontend can talk to which will fetch from the database. But again it's easier (as in lower maintenace) to just use a preexisting solution or headless CMS.

Host your frontend anywhere, like Vercel or Netlify, since it's just static HTML + JS.

TLDR eliminate the backend parts that you don't need, and maintenance becomes a lot simpler. You don't need a backend stack or any other languages except HTML and JS.


👤 aregsar
Flask could be one option