-
npm
instead ofyarn
to reduce amount of dependencies. This assumespackage.json
. NPM is mature enough and we don't require different package manager anymore -
prettier
as a standard for code formatting. This assumes.prettierrc
. -
eslint
as a standard for code linting. This assumes.eslintrc
. -
typescript
because type safety. This assumestsconfig.json
withstrict: true
. - Docker because it's a standard for deploy now. This assumes
Dockerfile
and.dockerignore
. -
jest
as an all-in-one solution for testing. - We don't need
supertest
for HTTP testing because Fastify have this functionality built-in. -
nestjs
as an architecture layer. It includes logger. We get rxjs for free! -
prisma
for ORM, because it has integration with Nest.js and it is compiled. -
fastify
for web server because it has integration with Nest.js -
dotenv
for configuration management because it has integration with Nest.js -
passportjs
for authentication -
swagger
for OpenAPI spec. It has integration with Nest.js -
.editorconfig
file. -
bullmq
for queues. It has integration with Nest.js -
node-cron
for scheduled tasks. It has integration with Nest.js -
helmet
as an ubiquitous library for headers manipulation, and which sets "important security headers". For Fastify we have to use specificallyfastify-helmet
. -
fastify-cookie
with the support of Nest.js -
fastify-cors
with the support of Nest.js -
fastify-session
with the support of Nest.js - Logger is included in Nest.js and Fastify have built-in route logger.
- Caching layer is included in Nest.js.
- Dependency Injection and reflection is included in Nest.js
- Configuration management is included in Nest.js
snyk
for security testing.apm
for monitoring.sonarqube
for static analysis.elk
for logs.
- Redis - cache, sessions storage
- PostgreSQL - persistent storage
- Elasticsearch - logs, monitoring, search index
- Package with a
pkg
?