JHipster NodeJS: A NestJS Backend Blueprint with Strings Attached
A NodeJS blueprint that creates the backend using NestJS. MongoDB support is experimental in TypeORM so is in JHipster NodeJS.
At a glance
- What is it?
- The official JHipster blueprint replaces the Java backend with NestJS and TypeScript. It inherits the JHipster client ecosystem, but MongoDB support is experimental and the setup demands a specific Node version.
- Who is it for?
- Adopt generator-jhipster-nodejs if you are already invested in JHipster and want a TypeScript NestJS backend with the standard JHipster client stack, and you can live with SQLite for development and a configurable SQL database for production. Do not adopt it if you need stable MongoDB support, because the README states it is experimental in TypeORM and therefore in this blueprint.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly EJS, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- jhipster/generator-jhipster-nodejs262 ★ · +1
| Repository | 2026-08-04 | 2026-11-13 |
|---|---|---|
| jhipster/generator-jhipster-nodejs | 261 | 262 |
1 Stars in the last 101 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What the Blueprint Actually Replaces
JHipster normally generates a Spring Boot backend in Java. This blueprint swaps that backend for NestJS, a TypeScript framework, while keeping the JHipster client generation for Angular, React, or Vue. The README is explicit: 'all TypeScript files generation, not Java!'. That means you get the familiar JHipster workflow, including entity subgenerators and JDL import, but the server code is NestJS with web controllers, Swagger documentation, and JWT or OAuth2 Passport authentication. The intended user is a team that already uses JHipster for full-stack generation but prefers TypeScript on the server. It is not a tool for starting a NestJS project from scratch; it is a blueprint that only works inside a JHipster application. The client side is inherited unchanged, so the value proposition is about backend language choice, not about changing the frontend experience.
How the Generation Pipeline Works
The blueprint hooks into JHipster's generator system. You invoke it with the `nhipster` command, which is a shortcut that runs the blueprint. Under the hood, the generator uses EJS templates to produce the NestJS application structure. The README describes the standard configuration: a NestJS base app with web controllers, Swagger, and Passport-based authentication. It also seeds four users: admin, a basic user, and anonymous roles, matching the standard JHipster monolithic app. The generator asks you a question about which database to use, either a SQL database or MongoDB. For SQL, it defaults to SQLite in development and a configurable SQL database in production. TypeORM handles entity mapping and also manages automatic migration and versioning of database scripts. The data flow is straightforward: you define entities via JDL, the blueprint generates NestJS modules, controllers, and TypeORM entities. The README points to sample repositories for React with OAuth2, Angular with JWT, and Vue with MongoDB, so you can inspect the generated code without running it.
Getting It Running: Commands and Prerequisites
The installation requires JHipster and Yeoman already installed. The README insists on a specific Node.js version: 'Please attention to install that node.js version!!' and specifies node.js 14.16.0. That is a hard constraint, and it is a red flag for modern environments where Node 14 is long past end-of-life. To install the blueprint globally, you run `npm install -g generator-jhipster-nodejs` or `yarn global add generator-jhipster-nodejs`. Then you generate an app with `nhipster`. For JDL models, you run `nhipster jdl my_file.jdl`. There is also a CI/CD subgenerator: `nhipster ci-cd`. The README includes a Docker option where you download a Dockerfile, build an image, and run it with a volume mount to generate the application inside a container. That Docker path avoids the Node version issue on your host, but it still uses the same generator. For development of the generator itself, the README shows a workflow: clone the repo, run `npm install` and `npm link`, then create a test folder and run `nhipster` to see your changes.
Database Support: SQL Is Solid, MongoDB Is Experimental
The README is blunt about MongoDB: 'MongoDB support is experimental in TypeORM so is in JHipster NodeJS.' That sentence is a direct warning. TypeORM's MongoDB support has known limitations, and this blueprint inherits them. The default for development is SQLite, which is convenient for testing but not for production. For production you can configure a SQL database, likely PostgreSQL or MySQL, but the README does not specify which ones are tested. The generator asks you a question about the database, so you are not forced into MongoDB. If you choose MongoDB, you are opting into experimental territory. That is a genuine limitation. The sample app with Vue and MongoDB exists, but the README does not claim that it is production-ready. For teams that need MongoDB as a primary store, this blueprint is the wrong tool today. The SQL path is the safer choice, and TypeORM's migration support is a plus for versioning schema changes.
The Node Version Pin Is a Real Constraint
The prerequisite of Node.js 14.16.0 is not a suggestion; the README warns you to install that exact version. That version was released in early 2021 and is now unsupported. Running a generator that requires an old Node runtime means you either maintain a legacy Node installation, use Docker, or use a version manager like nvm to switch per project. The README's Docker instructions are a workaround, but they add a layer of complexity. The generator itself is written in EJS templates, so the runtime constraint is about the JHipster ecosystem and its dependencies, not the generated code. The generated NestJS app might run on a newer Node version, but the generator will not. This is a maintenance cost: every developer on the team needs to align on the Node version, and CI pipelines must use that version too. The README does not mention any support for newer Node versions, so expect friction if your organization standardizes on Node 18 or 20.
What the Release History Tells You
The repository shows a v4.0.0 release dated 2026-07-21, which is the latest. The README, however, points to the CHANGELOG for v2.0.0 when listing features. That mismatch suggests the README has not been fully updated for the latest releases. The v3.x releases came in 2025, and v4.0.0 is a major version bump. Without the CHANGELOG content, you cannot know what changed between v2 and v4. The README references sample repos tagged at v2.0.0, which might be outdated. This is a documentation gap. Before adopting, you should read the CHANGELOG for v4.0.0 to see if the Node version requirement has changed, if MongoDB support has improved, or if the generated NestJS structure has breaking changes. The release cadence is not fast: about a year between v3.1.0 and v4.0.0, with v3.2.0 in between. That is not a project in rapid flux, but it is active enough. The license is Apache-2.0, which is permissive and allows commercial use without requiring derivative works to be open source, though you should verify any JHipster core licensing as well.
Alternatives: Plain NestJS or JHipster with Java
The obvious alternative is to skip the blueprint and generate a NestJS application directly with `nest new`. That gives you full control over the backend structure, no JHipster dependency, and no Node version pin. You lose the JHipster client generation, entity scaffolding, and JDL import. If you need a full-stack JHipster app but want to stay in Java, you use the standard JHipster generator, which produces Spring Boot. That is a mature path with extensive documentation and a larger community. The trade-off is language: Java versus TypeScript. The blueprint's value is only realized if you want JHipster's workflow and TypeScript on the backend. If you are not already using JHipster, adopting this blueprint means learning JHipster's conventions on top of NestJS. That is a double learning curve. The README does not compare itself to these alternatives, but the choice is clear: this blueprint is for JHipster loyalists who want to switch the backend language, not for developers starting fresh with NestJS.
Maintenance and Upgrade Cost
The blueprint is a generator, so its maintenance cost is front-loaded at generation time. Once the application is generated, you have a standard NestJS codebase that you can maintain without the generator, unless you need to regenerate entities or add new features. Regeneration requires the same Node 14 environment, and you must keep the blueprint version in sync with the JHipster core version. The README does not mention a command to upgrade an existing generated app; you would rerun `nhipster` and hope it merges changes, which is a risk. The CHANGELOG is the only source for upgrade notes, and it is not linked for v4.0.0 in the README. The project is not archived and had a push on the same day as the v4.0.0 release, so it is actively maintained. The Apache-2.0 license means you can fork it if needed, but the small contributor list, with a single founder mentioned, suggests limited bus factor. Before adopting, plan for the possibility that the generator falls behind JHipster core updates, and verify that the generated NestJS app can be maintained independently of the generator.
Editorial conclusion
Adopt generator-jhipster-nodejs if you are already invested in JHipster and want a TypeScript NestJS backend with the standard JHipster client stack, and you can live with SQLite for development and a configurable SQL database for production. Do not adopt it if you need stable MongoDB support, because the README states it is experimental in TypeORM and therefore in this blueprint. Before adopting, verify that your Node.js version matches the prerequisite (14.16.0) and check the CHANGELOG for the latest release, since the README references features only up to v2.0.0 while the current version is v4.0.0. The blueprint is not a standalone framework; it only works inside a JHipster application, so confirm that your workflow can tolerate that dependency. The concrete next step is to run `nhipster` in a fresh directory and inspect the generated NestJS structure before committing to a full migration.
Frequently asked questions
How do I install generator-jhipster-nodejs?
With `npm install -g generator-jhipster-nodejs`, or `yarn global add generator-jhipster-nodejs` for Yarn, after following the JHipster installation guide so that both `yeoman` and `jhipster` are present. Then generate an application with the `nhipster` command. Updating is `npm update -g generator-jhipster-nodejs` or the Yarn global upgrade equivalent.
What does the nhipster command generate?
A NestJS backend written in TypeScript, with web controllers, Swagger documentation, and JWT or OAuth2 passport authentication services. It also registers JDL model support through `nhipster jdl my_file.jdl` and a CI/CD generator through `nhipster ci-cd`, and the user interface is inherited from the standard JHipster app client.
Which database does a generator-jhipster-nodejs app use?
TypeORM, which also handles automatic migration and versioning of the database scripts. The generator asks whether you want another SQL database or MongoDB. Defaults are four seed users with SQLite for development and a configurable SQL database for production, and MongoDB support is described as experimental because it is experimental in TypeORM.
Which Node.js version does generator-jhipster-nodejs require?
The README states 14.16.0 and repeats the instruction in bold, but the blueprint is at version 4.0.0 and carries a JHipster 8 keyword, so that pin predates the current work. Install JHipster first and take the Node version from that installation rather than from the blueprint's prerequisites section.
How do I develop a generator feature in generator-jhipster-nodejs?
Clone the repository, create a feature branch, run `npm install` and then `npm link`, then create a scratch directory outside the clone and run `nhipster` from inside it. The linked generator is what runs there, so the clone stays free of generated output. The test script runs a formatting and lint check first, and snapshots are updated with a separate command.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/jhipster-generator-jhipster-nodejs)Star history chart for your README
[](https://hysenlabs.com/projects/jhipster-generator-jhipster-nodejs)Was this useful?