Skip to content
ExponaBLOG
Series · Day 100 of 100

NestJS

  1. 51
    Mocking providers cleanly: a NestJS guide for developers
    Good mocks make tests readable; bad ones make them brittle.
  2. 52
    E2E tests with Supertest: NestJS lessons from production
    Test the full HTTP stack like a client would.
  3. 53
    Testcontainers for Node: NestJS best practices explained
    Real Postgres and Redis in your tests, started from code.
  4. 54
    Structured logging with Pino: what developers should know
    Fast JSON logs with request context.
  5. 55
    Correlation IDs across services: lessons from production
    One ID to trace a request through every service and log.
  6. 56
    Health checks with Terminus: what developers should know
    Liveness and readiness probes that reflect reality.
  7. 57
    Graceful shutdown in NestJS: what developers should know
    Finish in-flight work before the container dies.
  8. 58
    File uploads with Multer and S3: lessons from production
    From simple uploads to presigned URLs.
  9. 59
    Streaming files with StreamableFile for NestJS developers
    Send large files without loading them into memory.
  10. 60
    Receiving webhooks in NestJS: what developers should know
    The raw body problem and how to solve it.
  11. 61
    rawBody without breaking JSON parsing: a practical guide
    Keep normal JSON parsing and still verify signatures.
  12. 62
    Payment integration in NestJS: best practices explained
    Lessons from integrating Stripe and regional gateways.
  13. 63
    An idempotency interceptor: patterns, pitfalls and fixes
    Safe retries for POST endpoints.
  14. 64
    GraphQL with NestJS, code-first: lessons from production
    Types from TypeScript classes, schema generated for you.
  15. 65
    DataLoader for GraphQL N+1: patterns, pitfalls and fixes
    Batch and cache relation lookups per request.
  16. 66
    Dynamic modules: forRoot and forRootAsync for production
    How to build configurable, reusable modules.
  17. 67
    ConfigurableModuleBuilder: a NestJS guide for developers
    Less boilerplate for dynamic modules.
  18. 68
    Monorepos with NestJS: a practical guide for developers
    Share code between services and apps without copy-paste.
  19. 69
    Nest CLI monorepo mode: a practical guide for developers
    Multiple apps, one repository, one toolchain.
  20. 70
    Faster NestJS with Fastify: patterns, pitfalls and fixes
    A drop-in adapter for higher throughput.
  21. 71
    HTTP keep-alive and compression in Node, explained simply
    Two settings that quietly affect latency.
  22. 72
    Profiling the Node event loop: a practical NestJS guide
    When your API is slow but the CPU looks fine.
  23. 73
    Worker threads for CPU-heavy work for NestJS developers
    Keep the event loop free for requests.
  24. 74
    NestJS security checklist: practical tips and trade-offs
    The defaults I set on every production API.
  25. 75
    Helmet in NestJS: a practical guide for developers
    Security headers in one line.
  26. 76
    Secrets and configuration in production, explained simply
    Where secrets live once you leave your laptop.
  27. 77
    Mass assignment in NestJS: practical tips and trade-offs
    The bug where users promote themselves to admin.
  28. 78
    Dockerizing a NestJS app: a hands-on guide for engineers
    Small images, fast builds, secure defaults.
  29. 79
    PM2, Docker or Kubernetes for Node for NestJS developers
    Pick the deployment model that matches your team.
  30. 80
    CI/CD for NestJS: a practical guide for developers
    From push to production on every merge.
  31. 81
    Prisma migrations in CI/CD: patterns, pitfalls and fixes
    Database changes as safe as code changes.
  32. 82
    API versioning in NestJS: a hands-on guide for engineers
    Built-in versioning for evolving APIs.
  33. 83
    Response serialization: a practical guide for developers
    Never leak password hashes again.
  34. 84
    Circular dependencies in NestJS: lessons from production
    Why they happen and how to remove them properly.
  35. 85
    Designing module boundaries: what developers should know
    Good boundaries make features easy to change and delete.
  36. 86
    A modular monolith with NestJS: best practices explained
    The architecture I recommend before microservices.
  37. 87
    When to split into microservices: lessons from production
    Microservices solve organizational problems, not code problems.
  38. 88
    OpenTelemetry in Node.js: NestJS lessons from production
    Traces across HTTP, Prisma, Redis and Kafka.
  39. 89
    Metrics with Prometheus: NestJS best practices explained
    Logs tell stories; metrics show trends.
  40. 90
    Designing a lead assignment engine for NestJS developers
    How I built automatic lead routing for a CRM.
  41. 91
    Lessons from integrating Twilio telephony for production
    Adding calling to a CRM taught me a lot about webhooks and state.
  42. 92
    A Meta Lead Ads webhook pipeline: lessons from production
    From Facebook form submission to CRM lead in seconds.
  43. 93
    Process webhooks in the background for NestJS developers
    Webhook handlers should do three things and return.
  44. 94
    My NestJS code review checklist: lessons from production
    What I look for in every NestJS pull request.
  45. 95
    Common NestJS anti-patterns: what developers should know
    Patterns I keep refactoring out of codebases.
  46. 96
    Migrating Express to NestJS: what developers should know
    An incremental path, not a rewrite.
  47. 97
    Using Express middleware in NestJS: a step-by-step guide
    Your favorite middleware still works.
  48. 98
    My NestJS starter template: patterns, pitfalls and fixes
    What every new NestJS service gets on day one.
  49. 99
    Advice for Node devs moving to NestJS: a practical guide
    Things I wish I knew on day one.
  50. 100
    100 days of NestJS: lessons — what developers should know
    Wrapping up the series.