Let developers focus on pure business logic
A backend framework for keeping professional software development fast, efficient, secure and maintainable!
Build awesome products on one code base - ready to be deployed on edge/IoT, server or cloud.
Run your application as a single instance, microservices or as cloud functions without touching your business logic.
Highly modular and easy to extend and to be customized for your needs.
Visit purista.dev
Follow on Twitter @purista_js
Join the Discord Chat
This framework adapts and combines a wide range of different patters from domain driven design, cqrs, microservice, event sourcing and lambda functions.
It is built from the ground up in typescript and highly focuses on schema, and auto generation of types, input-output-validation, OpenApi documentation (swagger) and tracing via OpenTelemetry.
The main goal is to let developers keep focusing on solving business requirements while building robust & maintainable software fast and efficient in professional business environments.
Visit purista.dev
Create a new project folder and simply run:
npm create purista@latestThe CLI tool will guide you through all the steps. The setup uses blueprint templates so you can choose the initial runtime and infrastructure options.
After successful init, start adding business logic with the PURISTA CLI by adding your first service.
purista add serviceAs soon as you've created your first service, you can start adding commands and subscriptions to implement your business logic.
To add a command to your service, use the CLI tool.
purista add commandFor pull-based CQRS workloads you can now scaffold queues and worker implementations directly from the CLI.
The queue wizard adds typed schemas, .canEnqueue() entries, and optional producer commands so HTTP handlers can return a 202 Accepted response immediately.
purista add queue
# or add an additional worker for an existing queue
purista add queue-workerPURISTA supports opt-in integration tests for external systems (AWS Localstack, NATS, Azure, GCloud, Infisical).
- Create a local env file from
.env.example. - Set the
PURISTA_*flags you want to run. - Add required credentials for cloud-backed tests (for example GCloud and Infisical).
- Run:
npm run test:integrationThe integration test runner uses Node's native --env-file=.env support via the root test:integration script.
Please help us to provide a secure software.
See: Security
Contributors are welcome!