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

  • 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?

  • 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