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?
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?
Actually, I thought it was a Microsoft product for some reason. Turns out I’m wrong and it actually is FOSS.
Ruby on Rails?
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
@PeterPoopshit I want to try Supabase, especialy PostgREST. Also htmx is interesting.
For rapid development of web applications, you should probably use a web framework in a high level language. Popular examples of such web frameworks: Django (language: Python) and Ruby on Rails (language: Ruby). These frameworks have huge communities behind them, lots of documentation, and lots of educational resources available (such as books).
I personally like FastAPI (python.)