What should we be using to develop web apps? - eviltoast

Using php + sql and maybe a little javascript is generally an OK-ish method that has few strings attached and runs on anything. However there are a lot of modern frameworks that let you do a lot more stuff. There things like django, firebase, blazor, asp net or whatever but what FOSS equivalent to this “next gen” web development stuff should we be using?

  • vampatori@feddit.uk
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    1 year ago

    As always, it depends! I’m a big fan of “the right tool for the job” and I work in many languages/platforms as the need arises.

    But for my “default” where I’m building up the largest codebase, I’ve gone for the following:

    • TypeScript
      • Strongly-typed (ish) which makes for a nice developer experience
      • Makes refactoring much easier/less error-prone.
      • Runs on back-end (node) and front-end, so only one language, tooling, codebase, etc. for both.
    • SvelteKit
      • Svelte as a front-end reactive framework is so nice and intuative to use, definite the best there is around atm.
      • It’s hybrid SSR/CSR is amazing, so nice to use.
      • As the back-end it’s “OK”, needs a lot more work IMO, but I do like it for a lot of things - and can not use it where necessary.
    • Socket.IO
      • For any real-time/stream based communication I use this over plain web sockets as it adds so much and is so easy to use.
    • PostgreSQL
      • Really solid database that I love more and more the more I use it (and I’ve used it a lot, for a very long time now!)
    • Docker
      • Easy to use container management system.
      • Everything is reproducible, which is great for development/testing/bug-fixing/and disasters.
      • Single method to manage all services on all servers, regardless of how they’re implemented.
    • Traefik
      • Reverse proxy that can be set to auto-configure based on configuration data in my docker compose files.
      • Automatically configuring takes a pain point out of deploying (and allows me to fully automate deployment).
      • Really fast, nice dashboard, lots of useful middleware.
    • Ubuntu
      • LTS releases keep things reliable.
      • Commercial support available if required.
      • Enough name recognition that when asked by clients, this reassures them.