DEV Community

Discussion on: How would you build a full stack Node.js web app today?

Collapse
 
gksander profile image
Grant Sander

I've got a handful of node apps with the following stack:

  • Strapi for the backend. I really enjoy it! Nice wrapper around Koa and mongoose.
  • Use Nuxt.js to pre-render my Vue app. I'm a big Vue fan, and Nuxt makes the development really enjoyable.
  • Vuetify as a component library.
  • Until projects need to scale, I deploy both on the same server and use Nginx as a reverse proxy and to serve static assets.
Collapse
 
markoa profile image
Marko Anastasov • Edited

Thanks! I thought it was a typo but there are really Next.js, Nuxt.js and Nest.js 😅

Collapse
 
itsjzt profile image
Saurabh Sharma

😋

Collapse
 
tgeber profile image
tgeber

That sounds interesting. Can you explain in more detail why you use Strapi for the backend? Do you really want to have a GUI for managing records in the backend or what is the reason?

Collapse
 
gksander profile image
Grant Sander

For me, the GUI is a secondary reason for using Strapi.

My primary reason for using it is this: it imposes a little bit of structure and opinion on your node app. Just enough so that your project isn't a mess and you know where to look for things, but not so much that it restricts what you can do with it. Basically, it bootstraps Koa and Mongoose (and some other tools) in a really nice way, and gives you a nice way to configure/use them. After building Express apps, it was refreshing to have some structure and eliminate some of the tedium of setting up projects.

Although I'm not using the GUI for adding content, I have found it very useful during development (inspecting data and relationships), and can help in tracking down issues in production. With Strapi's GUI, if pieces of data are related, you can easily jump between them - as far as I know, this isn't something that can be done in a MongoDB client (like Robo3T).

If you've ever built an app with Express and Mongoose, I recommend at least trying Strapi. I was skeptical about the "headless CMS" nature of Strapi at first, but that's just "icing on the cake" for me now. Don't think of it as something like WordPress - think of it as a structured Node app with a convenient GUI placed on top.

Thread Thread
 
tgeber profile image
tgeber

Thank you very much for the detailed explanation. I will definitely take a closer look at Strapi.

Collapse
 
koresar profile image
Vasyl Boroviak

I've been writing full stack using nodejs for about 6 years now. Tried a humongous number of backend and Frontend frameworks. Nearly all them.

My current stack of choice is exactly the same. Yes, including the Nginx approach.

If I can't use MongoDB, then the backend framework would be either Hapi or Nest.

Collapse
 
gksander profile image
Grant Sander

That's actually quite fascinating to me! I also tried just about every framework as well before landing on this stack. Used to write my backend in express and mongoose, but I really like the way Strapi bootstraps and organizes things. I find it helps me keep things a little more organized, and I find the GUI quite helpful during development and debugging.

Collapse
 
alexsorinsky profile image
alexsorinsky

what d'u think about v4.loopback.io/ ?

its just like Nest, but sponsored by IBM and developed by StrongLoop (which is now one of IBM companies)

personaly i found that loopback v4, lets say... more academically rigorous but has a bit poor documentation than Nest.

i'd be really interesting to see what the man with 6 years of full stack in background thinks about this serious framework.

Thread Thread
 
koresar profile image
Vasyl Boroviak

Thanks for the question.
I'd have to back off expressing any opinions about lb4. I haven't played with versions 2 or 3 either.

Meanwhile, I believe in GraphQL (as a concept). And don't believe in a bright future of the http servers (yes, even Hapi and Nest). In the future we'd need 1 endpoint (REST is going to vanish step by step) for application data.

Sorry for not answering your question and bringing own gibberish to the discussion.

Collapse
 
kamalhm profile image
Kamal

Vuetify and Vue is also my tools of choice! Not sure about Nuxt and Strapi, will look into it further