This roadmap is based on roadmap.sh/backend but fully tailored for TypeScript + Node.js.
- How the web works: DNS, HTTP/HTTPS, domain, hosting, CDNs
- Clientβserver model: requests, responses, headers, status codes
- Learn about REST vs GraphQL vs gRPC
- WebSockets, SSE, long polling for real-time apps
Mini-projects:
- Build a raw Node.js HTTP server (in TS using
ts-node) - Implement a JSON API without frameworks
- TypeScript basics: types, interfaces, enums, generics
- Advanced types: unions, intersections, utility types
- Config:
tsconfig.json, strict mode, module resolution - Tooling:
ts-node,tsc, ESLint + Prettier
Mini-projects:
- Convert a small JS project to TS
- Create a CLI calculator using TypeScript
- Core Node.js modules: fs, http, events, streams
- Express.js (with TS types & middlewares)
- NestJS (structured, enterprise-level backend)
- Fastify (for performance-focused APIs)
Mini-projects:
- REST API with Express + TS
- GraphQL API with Apollo Server + TS
- NestJS task manager API
-
Relational: PostgreSQL, MySQL
-
NoSQL: MongoDB, Redis
-
Querying: SQL joins, indexing, transactions
-
ORMs/ODMs (TypeScript-friendly):
- Prisma (recommended)
- TypeORM
- Mongoose (MongoDB)
Mini-projects:
- Todo API with PostgreSQL + Prisma
- Blog API with MongoDB + Mongoose
- Sessions + cookies (express-session)
- JWT authentication (stateless)
- OAuth2 / Google Login (Passport.js or Auth0 SDK)
- Password hashing (
bcrypt,argon2) - Security headers with
helmet - Input validation with
zodorclass-validator
Mini-projects:
- JWT auth system in Express + TS
- Google OAuth login with Passport.js
- Environment configs: dotenv, cross-env
- Hosting: Railway, Render, Vercel, AWS EC2
- Reverse proxy: Nginx basics
- Docker: Dockerfile + docker-compose for Node.js + Postgres
- CI/CD: GitHub Actions, GitLab CI
Mini-projects:
- Dockerize a NestJS API + Postgres
- Deploy an Express API on Railway/Render
- Logging: Winston, Pino
- Monitoring: Prometheus + Grafana (optional)
- API metrics: response times, error tracking (Sentry)
- Caching: Redis for sessions & queries
- Performance optimization: clustering, PM2
Mini-projects:
- Add Winston logging middleware
- Add Redis caching to an API
- Monolith vs Microservices in TypeScript
- Event-driven architecture (RabbitMQ, Kafka, NATS)
- CQRS and Domain-driven design (DDD) with NestJS
- API Gateway, rate limiting, throttling
- CAP theorem, ACID vs BASE
Mini-projects:
- Event-driven order + notification microservices
- Microservice with gRPC (TS with
grpc-js)
- Unit testing: Jest + ts-jest
- Integration testing: Supertest + Jest
- End-to-end (E2E) tests with Playwright or Cypress
- Code quality: ESLint, Prettier, Husky (pre-commit hooks)
Mini-projects:
- Write Jest unit tests for blog API
- Integration tests for auth system
-
Beginner: URL shortener, Weather API wrapper
-
Intermediate:
- E-commerce API (products, cart, orders, auth)
- Chat backend with WebSockets + Redis
-
Advanced:
- SaaS backend (subscriptions, billing, roles)
- Job queue system (BullMQ + Redis)
backend-roadmap-ts/
βββ README.md # This roadmap
βββ notes/ # Notes & resources
β βββ typescript.md
β βββ nodejs.md
β βββ databases.md
β βββ auth.md
β βββ devops.md
βββ fundamentals/
β βββ raw-http-server-ts/
β βββ cli-calculator-ts/
βββ express-nest/
β βββ express-api-ts/
β βββ graphql-apollo-ts/
β βββ nest-task-manager/
βββ databases/
β βββ prisma-postgres-todo/
β βββ mongoose-blog-api/
βββ auth-security/
β βββ jwt-auth-api/
β βββ session-auth-api/
β βββ oauth-google/
βββ deployment/
β βββ dockerized-nestjs/
β βββ nginx-config/
β βββ ci-cd-github-actions/
βββ observability/
β βββ winston-logger/
β βββ redis-caching/
βββ system-design/
β βββ microservices-orders/
β βββ event-driven-notifications/
βββ testing/
β βββ jest-unit-tests/
β βββ supertest-integration/
βββ projects/
βββ beginner/
β βββ url-shortener-ts/
β βββ weather-api-ts/
βββ intermediate/
β βββ ecommerce-api-ts/
β βββ chat-backend-ts/
βββ advanced/
βββ saas-backend-ts/
βββ job-queue-bullmq-ts/
1 - Master TypeScript type system and advanced features
1 - Build a RESTful API with Express and TypeScript
2 - Implement authentication and authorization
3 - Integrate with SQL and NoSQL databases
4 - Write comprehensive tests for all components
5 - Containerize application with Docker
6 - Set up CI/CD pipeline
8 - Implement monitoring and logging
9 - Optimize application performance
10 - Deploy to a cloud platform