Overview
ZenStack is a Node.js/TypeScript toolkit that enhances the development of a web app’s backend by extending Prisma ORM. It introduces a data modeling language called “ZModel” and implements a flexible access control layer around Prisma. ZenStack aims to save time by reducing boilerplate code and allowing developers to focus on building real features.
Features
- ZModel: ZenStack introduces a data modeling language called ZModel, which extends the Prisma schema language with custom attributes and functions. It provides a flexible access control layer around Prisma.
- Runtime enhancements: ZenStack creates transparent proxies around Prisma clients at runtime to intercept queries and mutations and enforce access policies.
- Automatic RESTful APIs: ZenStack includes server adapter packages that help wrap an access-control-enabled Prisma client into backend CRUD APIs that can be safely called from the frontend.
- Generated client libraries (hooks): Plugins in ZenStack can generate strong-typed client libraries that communicate with the aforementioned APIs.
Installation
To install ZenStack, follow these steps:
Install the ZenStack CLI globally by running the following command:
npm install -g @zenstack/cli
Initialize ZenStack in your project directory:
zenstack init
For more detailed installation instructions and configuration options, refer to the full documentation at zenstack.dev.
Summary
ZenStack is a powerful Node.js/TypeScript toolkit that enhances the development of web app backends by extending Prisma ORM. With features like ZModel, runtime enhancements, automatic RESTful APIs, and generated client libraries, ZenStack aims to simplify backend development and allow developers to focus on building real features. The installation process is straightforward, and detailed documentation is available at zenstack.dev. Join the ZenStack community on Discord for feedback, questions, and collaboration in making ZenStack an even better tool.