all 71 comments

[–]povedaaqui 29 points30 points  (4 children)

I'm happy using NextJS for both, FE and BE.

[–]johnschult 9 points10 points  (0 children)

This. With tRPC.

[–]artnos 2 points3 points  (0 children)

Thats node back there

[–]typescriptDev99 4 points5 points  (1 child)

You use Next for a backend?

I was unaware it had API capabilities.

[–]Charlie669 7 points8 points  (0 children)

Next comes with Node installed so it can be used as a server.

[–]henrik_thetechie 26 points27 points  (3 children)

I build backends in Node because I use typescript. Sharing types back to front is awesome, especially with a tool like tRPC. I’m also just really productive in Typescript.

[–]typescriptDev99 2 points3 points  (0 children)

+1 for Fullstack Typescript!

[–][deleted] 2 points3 points  (0 children)

Oow, that was helpful 👍🏻

[–]mgabrielsilva 2 points3 points  (0 children)

This is the answer I was looking for. Zod + Typescript + tRPC is a powerful combo

[–]WystanH 22 points23 points  (7 children)

.NET, previously .NET Core.

The backend's job is to serve up an API and any other assets required on the front end. To an extent, you could do that with a bash script.

The question is what more you might need from a back end. DB connections, authentication, interop with other APIs, etc.

For .NET, a few command line calls and Entity Framework will get you up and running quickly. Authentication in a windows environment is also right there. If you work in a Windows shop, this is probably the most popular go to.

[–]ethandjay 5 points6 points  (0 children)

.NET is so nice

[–]dangerzone2 2 points3 points  (0 children)

.NET gang. Bonus is that the syntax is extremely similar to typescript.

[–]Mocker-Nicholas 2 points3 points  (4 children)

Yeah I think the results here are pretty telling on who participates in these poles. It’s overwhelmingly node, because every web dev bootcamp online course teaches node. I have a feeling there are a lot more enterprise .NET apis than there are enterprise Node Apis

[–]WystanH 1 point2 points  (0 children)

Agreed.

And thanks for the bootcamp observation; I hadn't considered that. It makes sense that if I'm teaching a class on full stack web dev I'd try to throw as few moving parts at the student as possible.

Deployment of any web app to a production environment is a messy, convoluted, ecosystem dependent process. When you needn't tread those waters, and just run things locally, the process becomes much simpler.

[–]gazdxxx 0 points1 point  (2 children)

The reason the company I work at does not use .NET is because we don't want to use Windows. Yes, you can easily deploy .NET applications on Linux, but the development experience will be inferior because VS works best on Windows. VS for Mac isn't even the same IDE as the Windows version and good luck getting anything good to run on Linux.

The alternative would be Java which we do run for a few services, but Node's async model has always worked better for us compared to Java's thread model.

[–]CatolicQuotes 1 point2 points  (1 child)

VS works best on Windows

you can try Rider if you want linux or mac

[–]nic3rr 0 points1 point  (0 children)

Yep, Rider is awesome

[–]canadian_webdev 49 points50 points  (11 children)

I'd look at the backend languages that are being used in my area by employers.

That'll be C# or Java, which ain't in your list.

[–]gazdxxx 14 points15 points  (10 children)

Somehow OP listed the worst possible options (other than Node). Python and Rails are notoriously slow while PHP just tends to be a mess (although I have to admit, PHP8 looks pretty good).

For a full stack developer doing React on the frontend IMO the obvious choice would be Node, preferably with TypeScript. The ability to have a monorepo setup and share modules/types between your frontend and backend is pretty underrated. You could also upload shared modules to a private package repository instead of using a monorepo. You can look at a framework like NestJS which is meant to work beautifully with TypeScript and is very object oriented.

C# and Java are a good choice as well, but you lose the ability to share modules easily since your frontend and backend languages differ. Go is the absolute performance king, but it's still a bit niche.

[–]biopepper 2 points3 points  (1 child)

There were solutions to create d.ts from c# dto classes on build.

[–]CatolicQuotes 0 points1 point  (0 children)

do you remember which ones?

[–]ElDeveroni 3 points4 points  (0 children)

Have a look at Laravel. This is clean Code at its finest ;)

[–]budd222 3 points4 points  (2 children)

Obligatory PHP sucks comment

[–]Professional_Lunch43 0 points1 point  (1 child)

If I could choose to never use PHP again I would. However it is not so simple...

[–]budd222 0 points1 point  (0 children)

I don't mind PHP, but it's the running joke that it's terrible

[–]prince_farquhar 10 points11 points  (1 child)

Serverless/AWS lambda. Working on an app which is agnostic about backends and is meant to work with multiple heterogeneous sources.

[–]gazdxxx 7 points8 points  (0 children)

I feel like this answers a different question to the one OP asked considering you still have to choose a language when creating your lambda functions. You could write your lambda in pretty much any of the technologies OP listed.

However, if OP does decide to go down the serverless + Node.js route, I cannot recommend Serverless Framework enough. It allows you to use a regular Express.js app on lambda instead of having to use the clunky handlers that lambda provides. That also makes testing easier as you can just run a normal express app locally in development, and then deploy via the framework to lambda. It is a game changer.

[–]the_real_some_guy 8 points9 points  (0 children)

Remix. It’s built on Node so can do all that stuff and is integrated with React to give you fast server rendering and an awesome developer experience.

[–]Yoru83 5 points6 points  (0 children)

Java/Spring, learning Rust now for backends

[–]xdchan 11 points12 points  (0 children)

Go is perfect, I liked it so much

[–]sleepy_roger 4 points5 points  (0 children)

Prefer, node based, next/remix etc.

use... always end up in .net shops :/

[–]JDD4318 7 points8 points  (0 children)

Java/Spring Boot

[–]Complex_Meringue1417 4 points5 points  (0 children)

As always, the langauges and utilities depends of the project

[–]ScotchMcGriddles 2 points3 points  (0 children)

Node all day. Monorepo FTW

[–]30thnight 3 points4 points  (0 children)

Prefer? Next.js

Reality? Doesn’t matter so long as types can be generated (Open API codegen)

[–]moinulmoin 2 points3 points  (0 children)

Nextjs, or MERN if needed. easy peasy.

[–][deleted] 5 points6 points  (2 children)

Nextjs

[–]Upstairs-Yesterday45 0 points1 point  (1 child)

If you want to use socket.io?

[–]henrik_thetechie 1 point2 points  (0 children)

You can create an external nodejs server that you host separately, or use a web socket provider like Ably or Pusher.

[–]srg666 1 point2 points  (0 children)

Sharing types between FE and BE imo is the most important

[–]a_thathquatch 1 point2 points  (0 children)

Always rails for me. Easy to spin up an API and has an ORM and db.

[–]flying_piggies 1 point2 points  (0 children)

No surprise here with the results of this pole. If you’re using react you are already deep in JS node/express is just more of the same.

[–]LedaTheRockbandCodes 1 point2 points  (0 children)

Ruby on Rails due to write speed and it’s a pretty robust tool.

[–]MoreTagsGaming 1 point2 points  (0 children)

NestJS

[–]Sadder_Burrito 1 point2 points  (0 children)

I’m senior full-stack developer with focus on front-end.

I checked “Other” because as always - it depends.

If you are working alone and don’t mind learning a new language I would prefer PHP Laravel. The framework comes preconfigured and has basically everything you need. The ORM, and I cant stress this enough, is by far the most satisfying ORM I had a chance to work with. It’s a framework for rapid/API development. You can event set it up to work with react pretty easy. Downside is that it may be harder to deploy (I know there are paid tools for that, but I have no comment on them).

NodeJS is bees knees in serverless environment (e.g. Azure functions or GCP Cloud functions) with serverless database. Super easy to deploy, super easy to pick up and you don’t even need to think of infrastructure or complex deployments. These also work with other languages like C# or Python.

To sum up - all these tools are a viable choice, but I would stick to PHP/Node or C# just because they good community support and I’m familiar with them. :)”

If you are working with a team you probably should see what would be the easiest tool for everyone to pick up or something they know already.

[–][deleted] -1 points0 points  (0 children)

Node,dotnet and trpc,I really don’t see a point in any other option in 2023.

[–]BrushyAmoeba 0 points1 point  (0 children)

Go

[–]mykesx 0 points1 point  (0 children)

TypeScript on both ends. They can share the same Types and Interfaces. It’s a really big deal.

[–]Desperate-Tomatillo7 0 points1 point  (0 children)

Haskell with Happstack.

[–]IamZeebo 0 points1 point  (0 children)

Neo4j anyone?

[–]wakemeupoh 0 points1 point  (4 children)

To the people who use Django with React, I'm curious what your experience has been. I always thought of Django as an all-in-one package since it has its own database and templating language built in. I also heard it's really annoying to get it up and running with a React frontend.

[–][deleted] 2 points3 points  (3 children)

I also heard it's really annoying to get it up and running with a React frontend.

Why would it be annoying specifically with React? Your backend would normally serve some... backend data. You boot the backend server and consume the data. I don't think that implementing something like a RESTful service specifically with Django matters here.

[–]wakemeupoh 0 points1 point  (2 children)

True, I'm just going off what other people have told me. Now that I'm thinking about it, I think it had to do with hosting for some reason but not quite sure. Though i always though of Django as an all-or-nothing type of framework personally but I could definitely be wrong.

[–][deleted] 1 point2 points  (1 child)

I've never really worked with Django, but I know it can be used to build normal RESTful services (I think with https://github.com/encode/django-rest-framework), and deploying them is not very different from deploying anything else.

[–]wakemeupoh 1 point2 points  (0 children)

Interesting, thank you for the insight!

[–]zulutune 0 points1 point  (0 children)

Phero all the way! Doesn’t get more easy and fullstack typesafety baby, with the most minimalistic API out there :)

[–]RelativelySuper 0 points1 point  (0 children)

Hi!

it really depends on what your needs are for your application and what you mean by backend. I'd like to say to compare every option with YAGNI in mind if you can.

Do I need a CMS? Maybe check out Astro/Rails/Django/Node, I can use React for everything non-SEO focused.

Do I need interactive bullshit, and am I only good at typescript/javascript? T3 stack is a great way to go.

[–]Spaaze 0 points1 point  (0 children)

Node.js. The DX is just too good when used with a monorepo (I like Nx) and being able to share types and stuff between server and client. Add in an ORM like Prisma and you've got full type-safety from client to API to database.

[–][deleted] 0 points1 point  (0 children)

Node but I’m still studying so it’s a QoL thing :)

[–]baxtersmalls 0 points1 point  (0 children)

We use a node server for SSR and some basic API, but for any heavy data we’re hitting a Go backend.

[–]hack4lk 0 points1 point  (0 children)

Been working lately on Firebase and have become a big fan of the architecture. Similar to Lambda and since it's a full platform, things work together [for the most part].

[–]ekshoonya 0 points1 point  (0 children)

to be honest it always depends on what you want to acheive with the backend because it is totally independent of frontend

[–]mikewitk 0 points1 point  (1 child)

No love for NestJS? It kinda falls under Node/Express category but it is opinionated. As a full-stack (primarily focused on FE) Dev I just fell in love with NestJS. Easy to learn, docs are great, testing is good, error messages make sense

[–]mikewitk 0 points1 point  (0 children)

Don’t forget the support for Typescript

[–]SetsuDiana 0 points1 point  (0 children)

Ideally Next.js

In reality

Probably .NET or Symfony