Easy-to-use, open-source modules that implement common API logic to simplify backend development.
We created this library of reusable Node.js API Modules to simplify API development because we were wasting too much time setting up basic functionality and researching the latest backend best practices. We wanted a repository of high-quality API modules we can reuse, copy and paste into our projects and have a working backend in seconds.
This led us to build a high-quality repository of reusable API modules that address common functionality used in every backend service.
These modules have been reliably built by us, following best practices with minimal assumptions so you can integrate them into any API project and have full ownership and control of your codebase.
Currently, the modules work for Express.js, however, we’re actively working to extend compatibility with other backend languages and popular Node.js frameworks. We would be more than happy for you to contribute and help us achieve this faster.
You’re free to copy and use any code from the API Module Library — it's designed to be a foundation you can build on.
To simplify setup and integration, we created a CLI tool that helps you start new projects or integrate our API Modules into existing ones. The CLI handles imports, configurations, and dependencies automatically, so you can get up and running in minutes.
Use the init
command to create a new Node.js project or configure an existing one.
Add the -c
flag to specify a custom folder, or the CLI will set up the project in the current directory:
npx vratix-cli init
The CLI will prompt you with a few questions to configure your project and create ./config/modules.json
:
Select your package manager: › pnpm
What database are you going to use: › PostgreSQL
Select your schema validator: › zod
Should we set up Docker containers for this service (docker-compose.yaml): › no / yes
Should we configure a web proxy for this project (NGINX): › no / yes
During setup, select any initial API Modules you’d like to install as part of the project template:
☐ Auth (Basic)
☐ Stripe Subscriptions
☐ S3 File Upload
☐ None
If you choose "None" you can add modules individually after setup.
Customize the paths for main module folders if needed:
@components -> /src/components
@routes -> /src/routes
@middleware -> /src/middleware
@utils -> /src/utils
Note: Any folder overrides will still be located within
/src
.
Once setup is complete, run:
npm run dev
to start your service.
To add additional modules later, simply use:
npx vratix-cli add auth-basic
Use the init
command to create a new project using our Node.js template or to add a .config/modules.json
file to an existing project.
npx vratix init
This command installs the template, sets up package.json
, and configures the project based on your choices.
Usage: vratix init|i [options]
Initialize project
Options:
-c, --cwd <cwd> The working directory. Defaults to the current directory.
-h, --help Display help for the command
The add
command allows you to add new API modules to your project. It checks if both package.json
and .config/modules.json
exist in the project directory.
If these files are missing, use the init command first.
npx vratix add <module>
This command installs all relevant files for the specified module, manages dependencies, and adjusts import
statements as needed.
Usage: vratix add [options] [module...]
Add an API module to your project
Arguments:
module The name of the module you want to add
Options:
-c, --cwd <cwd> The working directory. Defaults to the current directory.
-h, --help Display help for the command
You can use the module
commands to create and publish new API modules to your private registry.
npx vratix module [command]
NOTE: To publish API modules you need to authenticate your CLI session using the
login
command
Usage: vratix module|m [options] [command]
Private module commands. Use them to create, validate and publish Private API Modules.
Options:
-h, --help display help for command
Commands:
new Create a new API Module, this will create the necessary files and directories for your new module.
publish [options] Publish your API Module to your Vratix registry.
help [command] display help for command
To publish or install Private API Modules you need to authenticate your CLI session. To do this use the login
command:
npx vratix login
This will open a browser window and ask you to verify an 8 character code shown in your terminal. The code will look something like this 6AF2-4CPI
.
You need to have a Vratix account to be able to authenticate your CLI session. Create a new account.
Usage: vratix login [options]
Authenticate your CLI session with your Vratix account.
Options:
-h, --help display help for command