Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What's the best technology for a CRUD website to minimize maintenance
4 points by MrPowers on Nov 5, 2022 | hide | past | favorite | 9 comments
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.



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


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


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?


Web Framework versions go EOL and then you're forced to upgrade. So constant maintenance is required with Rails, even if you just want to put the app in "security patch only mode".


I feel like this is less of an issue for Django but I don't have any data to support that opinion.


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.


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


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.


Flask could be one option




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: