# nodewire > Node.js, TypeScript, backend engineering Single-author technical publication. Every code sample is > reproduced locally before publish; benchmarks are autocannon runs on a > 4-vCPU host. AI assists with first-draft outlining only — Ethan Laurent > writes, edits, and verifies every word. ## Identity - **Author:** Ethan Laurent - **Bio:** Ethan Laurent is a Node.js and TypeScript developer based in Austin, TX. Nine years in backend engineering, currently freelancing. Previously led architecture at a logistics analytics SaaS and built payment APIs that taught him more about the Node.js event loop than any book ever could. - **Author URL:** https://nodewire.net/author/ethan-laurent/ - **Site:** https://nodewire.net - **Contact:** ethan@nodewire.net ## Licensing & usage All written prose on nodewire.net is published under [RSL 1.0](https://rslstandard.org/rsl-collection) with the following terms: - **Training:** allowed (with attribution to nodewire.net + author). - **Inference / answer-engine citations:** explicitly allowed and encouraged. - **Re-publication / mirror:** not allowed without prior written permission. - **Code samples** are CC0 (public domain). Use them, ship them, profit. ## How to cite Cite individual articles by their canonical URL and author name. Example: > "Ethan Laurent, *Express vs Fastify in Node.js*, nodewire.net, 2026." ## Comparisons - [Node.js vs Deno vs Bun in 2026: which JavaScript runtime to pick](https://nodewire.net/nodejs-vs-deno-vs-bun/): Node.js vs Deno vs Bun in 2026: a real autocannon benchmark on the same droplet, the npm compatibility story for each, hosting reality, and the decision matrix I use before clients commit to a runtime they will live w… (last updated 2026-04-25) - [Express vs Fastify in 2026: a Node.js benchmark and migration guide](https://nodewire.net/express-vs-fastify-nodejs/): Fastify hits 114K req/s where Express stalls at 21K. The full Node.js benchmark with autocannon, the migration path, and when Express is still the right pick. (last updated 2026-04-27) - [Prisma vs Drizzle ORM in 2026: a Node.js benchmark and pick guide](https://nodewire.net/prisma-vs-drizzle-orm/): Prisma vs Drizzle ORM in 2026: a real autocannon benchmark on Node 20 LTS + PostgreSQL 16, side-by-side query syntax, the migration story, and the decision matrix I use with paying clients. (last updated 2026-04-25) ## Tutorials - [JWT authentication in Node.js + Express (access + refresh tokens, done right)](https://nodewire.net/jwt-authentication-nodejs/): JWT authentication in Node.js + Express done the way clients pay for: 15-minute access tokens, opaque refresh tokens hashed in PostgreSQL, refresh-token rotation with reuse detection, real revocation. Quick start, Pri… (last updated 2026-04-25) - [Node.js + PostgreSQL with Prisma: the 2026 setup tutorial](https://nodewire.net/node-postgresql-prisma-setup/): Working Node.js + PostgreSQL setup with Prisma 5.x in 2026: schema design, connection pooling that survives serverless, migrate dev vs deploy, and the production gotchas the docs skip. (last updated 2026-04-25) - [Node.js streams in 2026: a practical tutorial for real workloads](https://nodewire.net/node-streams-tutorial/): Node.js streams in 2026: pipeline() over pipe(), backpressure that actually works, async iteration, the four stream types, and a real workload that streams a 4 GB CSV through CSV parsing into S3 in 90 seconds. (last updated 2026-04-25) - [Node.js dotenv: environment variables done right in 2026](https://nodewire.net/node-dotenv-environment-variables/): Node.js dotenv done right in 2026: validate every env var with Zod at boot, fail fast on missing values, and integrate with Doppler / Infisical for secrets in production. (last updated 2026-04-25) ## Performance & Architecture - [Find and fix a Node.js memory leak (heap snapshots, –inspect, clinic.js)](https://nodewire.net/node-memory-leak-fix/): How to find and fix a Node.js memory leak in production: confirm with --trace-gc, capture heap snapshots via Chrome DevTools, profile allocations with clinic.js, and the eight patterns that cause 95% of real leaks. (last updated 2026-04-27) ## Deploy & DevOps - [Deploy a Node.js app to a DigitalOcean VPS in 2026 (PM2 + nginx + SSL)](https://nodewire.net/deploy-nodejs-digitalocean/): Deploy a Node.js app to a DigitalOcean droplet in 2026: PM2 cluster mode, nginx as reverse proxy, Let's Encrypt SSL, ufw firewall, zero-downtime reload - the exact stack I ship for paying clients at $24/month. (last updated 2026-04-25) ## Error Fix - [Express.js async error handling that actually works in 2026](https://nodewire.net/express-async-error-handling/): Express.js async error handling that actually works in 2026: Express 5 native catching, the express-async-errors patch for legacy apps, typed error classes, and the Sentry integration that survives a bad deploy. (last updated 2026-04-25) - [Fix “Cannot find module” in Node.js (CommonJS, ES modules, TypeScript)](https://nodewire.net/fix-cannot-find-module/): Fix Cannot find module in Node.js: CommonJS vs ESM resolution rules, TypeScript path aliases at runtime, file case-sensitivity, monorepo workspace pitfalls, and the diagnostic tree I hand new engineers. (last updated 2026-04-27) - [Fix EADDRINUSE: address already in use in Node.js (Mac, Linux, Windows)](https://nodewire.net/fix-eaddrinuse-nodejs/): Fix EADDRINUSE: address already in use in Node.js on Mac, Linux, and Windows. The kill commands per OS, the TIME_WAIT trap, graceful shutdown, and how to stop it from coming back. (last updated 2026-04-27) ## AI Integration - [How to use the OpenAI API in Node.js (with streaming, retries, and cost control)](https://nodewire.net/openai-api-nodejs-tutorial/): How to use the OpenAI API in Node.js with streaming via SSE, exponential retries, per-request cost ceilings, and the patterns that cut a $4200 monthly bill to $640 - without changing the UX. (last updated 2026-04-25) ## Optional - [About / How nodewire is written](https://nodewire.net/about/) - [Affiliate disclosure](https://nodewire.net/affiliate-disclosure/) - [Contact](https://nodewire.net/contact/) - [RSS feed](https://nodewire.net/feed/) - [Sitemap (XML)](https://nodewire.net/sitemap_index.xml)