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?
It really depends on the kind of website. Is it a blog? an e-commerce? a static website? a full blown web application?
Node.js has been a popular backend choice for years. On the frontend there are frameworks such as React, but that’s overkill in many cases. Nowadays I’ve been meaning to look into Hugo and htmx
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.
- TypeScript
Is Django not FOSS?
I personally like FastAPI (python.)
Ruby on Rails?