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 aResult
-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.
Check out Greg Johnston’s interview with Primeagen. Greg’s just an awesome dude all around. I just hope one day there comes a solution for the large bundle sizes associated with wasm frameworks
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.
/me Sort by top
wat
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.
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
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
deleted by creator
React, Go, GraphQL, and PostgreSQL
php + cobol
:(
deleted by creator
It’s honestly not that hard, the language was made to be simple. The complexity associated with the language largely has to do with the legacy applications the language supports. If you look at a greenfield project (eg CHADstack (it’s a joke project, but pretty fun to get exposure to some esoteric stuff for a couple hours)) you’ll actually pick the language features up pretty quickly.
.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…
Vue + Express + Typescript + Postgres
Though I am playing around with Firebase and Firestore at the moment so that simpler projects have less backend overhead
React +python + postgres/sqlite
Go and Next.js. For data, Postgres or SQLite depending on the need.
SvelteKit + PocketBase + CapRover.
Laravel (PHP) + Vue (JS)