Have you ever set up a Node.js backend and felt like you were reinventing the wheel? Hours spent configuring TypeScript, setting up routing, writing boilerplate code - it’s the same process every time.
As someone who has been building Node.js backend services for the last five years, I know this struggle all too well. That’s why I decided to create Vratix, an open-source library of reusable API modules you can copy and paste into your codebase. It’s open source, extensible, and developer-friendly, making it an ideal choice for any project.
Think of it as shadcn/ui but for backend APIs. Vratix provides everything you need to get up and running in seconds:
- Controllers and routes
- Endpoint validation
- Database integration
- Docker + NGINX configurations for deployment
It’s fully typed with TypeScript and includes tests for all business logic using Vitest.
So how do you exactly get a fully working API in seconds? Vratix comes with a CLI that makes starting a new project or adding API modules super simple. To get started just run:
npx vratix init
See the full docs here: vratix.com
Quick guide
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
☐ Stripe Subscriptions
☐ S3 File Upload
☐ Emails (Postmark)
...
☐ None
If you choose "None," you can always add modules later with
npx vratix add <module>
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
.
Ready To Go
Once setup is complete, to start your service run:
npm run dev
Give it a spin and let me know your feedback on Discord or contribute on GitHub!
Top comments (0)