v0.10.0
Released: October 24, 2026
Node.js 24 and NestJS 12 are the headline: new projects start on Node 24, with node:24-slim images and Node 24 CI workflows, and every NestJS package is on 12. The rest of the stack moves with it: Next.js 16.4, React 19.3, Prisma 7.10, ioredis 6, BullMQ 6, OpenTelemetry 3, the current Google and Azure SDKs, and the toolchain (lerna 10, Rslib 1.0, Rstest 0.12, Vitest 5). Existing projects need the upgrade steps below.
Node.js 24
- Node 24.15 or later everywhere:
enginesin the templates and the published packages,node:24-slimin the generated Dockerfiles, Node 24 in the generated GitHub workflows. Node 24 is in long-term support until April 2028. @types/node24 in every template.
NestJS 12
@nestjs/common,core,platform-expressandtesting12.2,cli12.0,swagger12.0,config12.0 and@nestjs/bullmq12.0 in the services, nest-common and the templates.- The Nest 12 packages are ES modules. The services stay CommonJS and load them through Node's
require(esm). Jest needsNODE_OPTIONS=--experimental-vm-modules; the template test scripts carry it. - Generated clients accept
@nestjs/swagger11 or 12.
Dependencies
- Frontend: Next.js 16.4.3, React 19.3.1, eslint-config-next 16.4, Vitest 5, shadcn CLI 4 (the checked-in components are unchanged).
- Services: Prisma 7.10.1, ioredis 6, BullMQ 6, compression 1.8.2.
- nest-common: OpenTelemetry SDK 3.0 with the 0.300 exporters, Google Cloud Storage 8 and Secret Manager 7. The Redis connections the framework opens stay on the RESP2 protocol.
- CLI: googleapis 188, google-auth-library 11, the Google Cloud and Azure management SDK majors, MCP SDK 1.32 (cli-mcp 0.8.0).
- Toolchain: lerna 10, Rslib 1.0, Rstest 0.12, eslint 10.13, typescript-eslint 8.72. TypeScript stays on 6.0.
npm auditon a fresh project reports one advisory, in the msal-node dependency of@azure/identity, pending its next release.
Fixes
- The email confirmation page sends the confirmation once. In development, React Strict Mode mounted it twice and the second request failed on the used token.
Breaking changes
Pre-1.0, so they ship in a minor version. The upgrade guide below covers each.
- Node.js: 24.15 or later is required for the CLI, the services and the tests. Deploys build
node:24-slimimages; generated CI runs on Node 24. - NestJS 12: ES-module packages. Jest scripts need
NODE_OPTIONS=--experimental-vm-modules. Lifecycle hooks run in a new order across modules.@nestjs/configvalidation options move undervalidationOptions.libraryOptionsif you use Joi schemas. - BullMQ 6: the legacy
repeatjob option,Job.discard(),debounceandQueue.clientare gone; repeatable jobs use job schedulers. - ioredis 6: connections you create yourself speak RESP3 by default (RESP2 on Redis 5 and older); the framework's own connections pin
protocol: 2. - OpenTelemetry 3:
@opentelemetry/sdk-trace-nodeno longer exists; tracing you set up yourself moves to@opentelemetry/sdk-trace.TelemetryModuleneeds no change. - shadcn 4:
npx shadcn addgenerates components in the new registry style (radix-uiandcnpackages). Existing components keep working. - dotenv 18 in nest-common:
.env.vaultfiles are not read.
nest-common 0.10.0
NestJS 12, OpenTelemetry 3, ioredis 6 and BullMQ 6. @nestjs/jwt is no longer a dependency. The module and service APIs are unchanged.
Upgrading an existing project
1. Node 24. Install 24.15 or later and set "engines": { "node": ">=24.15.0" } in the root package.json and in each app.
2. Root packages, overrides, nx.
In the root package.json, add these overrides next to the existing ones:
Add an nx.json with { "neverConnectToCloud": true } so lerna's task runner stays offline, and add .nx/, **/.rstack/ and **/.vitest/ to .gitignore.
3. NestJS services. For each service:
The auth service also takes @nestjs/config@^12.0.1. Remove @types/ioredis if present (ioredis ships its own types). Prefix the Jest scripts in each service's package.json:
4. Frontend.
Optional: in app/(public)/confirm/confirm-client.tsx, guard the effect with a ref as the template does, so the confirmation is sent once in development.
5. Generated clients. Set "@nestjs/swagger": "^11.0.0 || ^12.0.0" in each client's peerDependencies, or regenerate them:
6. Install and check. npm install, then npm run build and npm run test. Vitest 5 clears mock history before each test; tests that counted calls across tests need their own setup.
7. Regenerate CI and deploy.
The deploy builds the services on node:24-slim.
New projects get all of this from the templates.