Needs advice

I am going to build a backend which will serve my React site. It will need to interact with a PostgreSQL database where it will store and read users and create and use JSON Web Token for authenticating HTTP requests. I know EF core has good migration tooling, can Go provide the same or better? I am a one man team and I'll be hosting this either on Heroku or DigitalOcean.

4 upvotes84.1K views
Replies (2)

I'm a dotnet developer, and recently enjoyed building cli apps in golang, it's been a fun experience. The main reason for me using golang will be its resource consumption, Small cross-platform executables. What I did notice though, building more complex applications, those benefits starts to erode quickly. And the latest articles about dotnet core single executables and AOT compile modes does suggest a much smaller footprint for dotnet apps going forward.

Either way, I like both languages

6 upvotes788 views
Avatar of undefined
Avatar of milgner
Director New Technology at i22 Digitalagentur GmbH

From your question I gather that you don't have any specific requirements with regards to performance or technology: both PostgreSQL and JWT are well-supported in both ecosystems and so my recommendation would be to go with whatever you're most familiar with already which seems to be ASP.NET if I interpret the wording correctly.

Although there are very good frameworks and libraries for Go, you'll be looking forward to doing a lot of things manually. Although this can potentially lead to very optimized and high quality software, it can just as well slow you down because you're dealing with low-level stuff that doesn't actually add business value to your application.

The point in favour of Go would be that you can easily deploy it to Heroku, which (afaik) doesn't support ASP.NET.

As you're a one-man team, you might even want to reconsider the decision to have separate codebases and languages for back-end and front-end. You're going to need to be very focused on adding business value to your application without getting distracted by some low-level technical detail or context switch. With React being your chosen front-end technology, I'll throw Next.js in the ring. (It'll deploy on Heroku nicely, too).

In the end: choose the technology that will support your flow the most.

6 upvotes1 comment794 views
Avatar of undefined
G\ C\
G\ C\
January 12th 2021 at 9:58PM

Thanks, next.js is my selection for the website / web panel! As you say, Go can be overkill for a one man team and I will be using nodejs with express js for most backend APIs. I also replaced Postges with MongoDB and I'm happy I did DX-wise.

Avatar of G\ C\

G\ C\