If you were to start a new web project with Node.js today, how would you pick your stack? I'm looking for suggestions spanning both backend and front-end. Thanks!
For further actions, you may consider blocking this person and/or reporting abuse
If you were to start a new web project with Node.js today, how would you pick your stack? I'm looking for suggestions spanning both backend and front-end. Thanks!
For further actions, you may consider blocking this person and/or reporting abuse
Latest comments (39)
I'm using Gridsome for sites like my personal site that doesn't need a backend. its fast and uploading to Netlify is easy and free.
For bigger sites where i need search, authentication, and a headless approached backend. I use Nuxtjs as my Frontend, Strapi for my Backend hosted on a VPS at the moment until it needs to scale.
I've tried everything from Wordpress, Drupal, Magento, Apostrophe, to python like Wagtail and these two above seems to be my go to as they are fast to learn and build. Also gotta love the all in javascript approach as well.
My go-to full stack:
Frontend - React (w/ Typescript), NextJS, MaterialUI
Backend - NestJS
Infrastructure - Kubernetes w/ Helm Charts
Server:
Client:
Happy days
Express for rest services with mongoosejs for mongodb
passport-jwt for authentication
angular for UI, with angular material library
Choice of stack for me for some years now is the MEAN
MongoDB for the storage
Express for the APIs
Angular for all things frontend (using Angular Material). PWA out of the box support great.
Node.js
Although I've played with Cockpit (by Agenjeto) and recently, Strapi (the 3 alpha)
server:
express.js
sequelize
source in ES6 stage-0 (babeljs)
client:
Reactjs
Redux
Database:
MySQL for production
Sqlite for development
Redis as key store for things like tokens for auth and data caching
Migrations:
custom script based on sequelize
proxy server:
nginx
everything packed in docker containers and runned with docker-compose
Lerna monorepo. React, Redux, Amplify and entire AWS: GatewayAPI and Lamda + DynamoDB if NoSQL or Aurora if relational, Cognito for Authentication, Cloudfront for CDN , S3 for storage of webapp and other stuff, Cloudwatch for logging and metrics.
AVA for testing and XO for formatting.
eventually Typescript.
all infrastructure defined and deployed with Serverless Framework
Express/Fastify, Nuxt/Angular/Markojs
I usually use nuxt with fastiy on one, Nuxt had the template, but that for simple one. If the apps got big enough I separate my apps. For fast realtime dev, i use Feathersjs.
Dont use typescript yet. π€ Should I? Never seen my use case in it.
For linter I use xojs. Simple no overwhelming setup.
Testing as usual, tap, assert, mocha, chai.
Just learning docker now, so maybe will include it later.
The testing stack matters too! πͺ
I did just this a few months ago:
Primary database: Postgres, unless there's a pressing reason to use something else
Data access layer: assuming Postgres, Massive (my own project)
Web framework: koa; Express may be more popular in this category but koa supports async route functions
Templating: koa-views with pug
Frontend JS: jQuery, if that
Styling: CSS preprocessors seem pretty interchangeable, I haven't had a reason to use anything other than LESS
Build: npm scripts
Routes are organized so that state changes always happen through a dedicated API route instead of POSTing to a route that redirects or renders. This ensures other frontends can still use the system (assuming they authenticate), and means it's pretty easy to drop a more complex single-page frontend solution in should the need arise.
TypeScript might be nice if you have a sufficiently large team but for the most part I think of JavaScript's lack of static guardrails a feature, not a bug.
Very insightful, thank you! Kudos for Massive