What is your favorite software stack for full-stack web development?

CoderSupreme@programming.dev to Programming@programming.dev – 42 points –
56

Rust in the backend and frontend, via WebAssembly. I'm using the Leptos framework for the frontend.

How do you find Rust for the frontend?

I enjoy it a lot. It's the first time that I find frontend actually fun.

A lot of the memory management aspects of Rust are bypassed by Leptos, so that doesn't come up as much as one might think.

And I do find Rust's type system really helpful for actually portraying the UI state. For example, if you execute a function that can fail, you don't have to catch some exception and then pass the error message separately into the UI or whatever.
Instead, you get a Result-type from that function, which contains either the data you want to render in the UI or the error information you want to render instead.

So, you can just pass that right through to your rendering code. And then there's pseudo-HTML inline in the code, where you can do full-blown Rust-pattern-matching to properly handle such a Result-type and simply render the appropriate UI element.
No horrid multi-line ternaries, no uninitialized variables, no separate boolean checks before accessing a variable. You simply know at all times what information is actually available.

What's also really nice with backend and frontend in the same language, is that you get compile-time-guaranteed compatibility between them, because you can simply use the exact same model types and API route constants.

It is still a relatively young ecosystem, so there are still breaking changes every so often. And well, obviously you won't find anywhere close to the number of UI component libraries as you can find for JS. So, for an experienced JS dev, it is likely a step back in productivity.

But if you've got Rust expertise instead or only backend folks on your team, then I heartily recommend it.

Vue/Nuxt + ASP.NET Core + PostgreSQL

I've used Nuxt a few times, but I end up in absolute hell sometimes tracing down bugs and incompatabilities. More so with Nuxt 3. Probably not an issue for more experienced Devs.

I find myself coming back to the simplicity of running a separate backend, even though that reintroduces a lot of the problems that Nuxt alleviates.

HTMX, Python, JavaScript.

Though I would like to try Go for the backend if I would just find some time for it.

Also Svelte and Sveltekit is very nice

svelte front end, golang backend, postgres for database. But it depends on the needs of the project. Choose technology because it's the right fit for the job, not because it's your favorite.

Choose technology because it’s the right fit for the job, not because it’s your favorite.

100000%

I think this is strictly less than 100% true. There is significant value in using tools you know and like

Well it's difficult when the main difference between technologies is mostly preference. Real pros and cons require tons of analysis.

TypeScript React (although I like Svelte better, it's hard to pitch for business projects), C# ASP.NET Core API, Postgresql.

React / TypeScript / Vite (sometimes Redux) for the front end, C# .net / SQL for the backend..

Fast-ish to get up and running, scales to a medium-large project with minimal headaches

Yessss.

C#/.Net backends are the best. The long term stability, DevX, and the "it just works" nature of all the tooling makes it a great choice. It's also fast, which makes scaling for most applications a non-issue.

I've switched to postgres for DB from SQL server, have never looked back, would recommend.

Yup all valid points. And I find Nuget to be a heaps less painful package manager than other ecosystems

Typescript React from cloudront Typescript express on ecs. PSQL on RDS

.Net + EF Core + Vue/TS + Postgres. Redis as needed, Kafka as needed.

I can get applications built extremely quickly, and their maintenance costs are incredibly low. The backends are stable, and can hang around for 5, 10+ years without issue or problems with ecosystem churn.

You can build a library of patterns and reusable code that you can bring to new projects to get them off the ground even faster.

Would recommend.

But .NET has a 3 year LTS schedule unless you're on the invincible .NET Framework 4.

You'll have to update your server OS at some point and then your .NET version will be too old to be installed and then you'll have fun bugs to squash from all the new versions of things interacting...

Javascript/Preact/Lesscss on frontend with a backend written i Go, using Postgres for data needs. Sometimes with websockets in between if needed.

Go and Next.js. For data, PostgreSQL or SQLite depending on the need.

markdown+frontmatter+handlebars, bun, sqlite.

HTMX + Go.

Go as a backend has a very nice multithreading model to extract more speed and value from your app.

The built-in standard libraries provide many good abstractions.

Also the templating engine is very nice to use.

I hate go templating, I really really do. I don't even really know why. I just hate it.

Vue + Express + Typescript + Postgres

Though I am playing around with Firebase and Firestore at the moment so that simpler projects have less backend overhead

Typescript, svelte, django, postgresql with a dash of celery, redis and pushpin

Depends:

For websites: Htmx + AlpineJs on the front end, ASP.NET Razor Pages and PostegreSQL on the backend.

For Web Apps; Blazor and PostgreSQL

My current favorite is mostly Rust-based with the tide crate, tide-jsx crate, vanilla JS, postgres crate, and Postgres in Docker. Super easy, super fast (to develop and run), but I haven't made any large web projects with this stack yet, just small stuff.

Go with the frontend kept as simple as possible.

Total beginner here, but I like VueJS with Pug Templating for the front end. I also could go with just HTML/Pug for most of my projects since they are small.

On the backend I only really have experience with NodeJS, but have created small personal applications with the Express, Hapi, and Fastify frameworks. For databases, I have only worked with MariaDB and Sqlite, with Knex/ObjectionJS the only query builder/ORM-like libraries I've utilized thus far. I hear a lot about PrismJS for a full fledged ORM and will probably look into that at some point. I've played around with Postgres, but have yet to build anything using it yet, and have not worked with GraphQL or Redis either.

I'm intrigued by the Python FastAPI and Flask frameworks (no interest in Django tbh). I also am intrigued by Go for servers, but have yet to even write a single line of Go code yet.

On the Front End, I'm looking to learn React next as it's everywhere, but am much more interested in learning Svelte and HTMX.

I'm seriously very surprised to still see so many relational databases in the top responses... guess I'm just in fantasy land. I hate writing SQL... good at it, but it's not fun (to me).

I hate when I have to work with non SQL based persistence.

To each their own I guess. 😇

API gateway all the things... it's annoying at times, but I don't want to have to manage a dbs... or write SQL.

Of course, there's always some data store to manage, but I prefer the ones with fewer switches and easier scaling (like DynamoDB).

In the end, it's a matter of preference. I prefer writing custom map reduce functions, you prefer SQL indexes.

Honestly, the amount of requests and data I'm handling for personal projects could be easily handled by the filesystem... so, ddb is great and I stay free tier... like always.

Use an ORM. With NoSQL on relational data, you're guaranteed going to write a worse, relational solution than what relational databases provide. SQL is shit, but rewriting relational logic is worse.

Except when you're not worried about scale because you're building a small side project... I don't want to pay for a db (or the hardware to host it) for my play projects. My in-home play server is a very old home PC that is very underpowered for today's software.

Not sure I get what you're saying. Sqlite exists and works on very underpowered hardware.

Ah, yes... good old sqlite... I guess the main reason I go the route I go is that I like writing map/ reduce functions... much more than reorganizing tables because I structured them poorly to start.

In fact, the project I'm on right now at paid job has a lot of structure transformation... and I'm enjoying it so much that I'm not even pining for one of my million side projects.

While it's not the most performant way to do things, I feel like data structure manipulation is one of the easiest to read ways to get from point a to point b.

Express, JavaScript (with JSDocs+TS for type-checking) and Postgres

Streamlit + Snowflake DB

It is very limited but it's the best framework for dashboards.

Django/DRF has really grown on me as I've been working in it more, also I always feel myself come back to flask for small projects.

FastAPI was fun but I don't feel it will have enough longevity

I'm Definitely a backend python fanboy

Frontend: react is neat but I'd like to explore Vue more again

I'm used to : Angular or React + Pyramid(Python) or Strapi(Nodejs)