ZenStack is a data layer for TypeScript applications that brings schema modeling, a typed ORM, access policies and generated query services into one development approach. The current homepage presents a schema-first model designed to reduce scattered configuration. It describes a modeling language compatible with Prisma schema concepts and an ORM built on Kysely with a Prisma-compatible API. Advanced modeling options include polymorphic models and strongly typed JSON fields.
Access control is defined alongside the data model and enforced at the application ORM layer. The site describes row-level and column-level policies across supported databases, including SQLite, PostgreSQL and MySQL. This is a different placement from relying only on permission checks in each API handler, but it still requires developers to define correct rules and ensure application access follows the intended path. A policy system is not proof that every application built with it is secure.
The same approach supports deriving a CRUD query service from an access-controlled model. Framework integrations and a typed frontend SDK are presented as ways to use that service while retaining control over deployment and application architecture. The frontend SDK uses TanStack Query patterns for data invalidation and optimistic updates. For a team, the main appeal is keeping data definitions, permissions and query behavior close together instead of maintaining several unrelated representations. Before adopting it, developers should check the documentation for the version they intend to use, database support, migration requirements and framework compatibility. Existing Prisma-style code may be a useful starting point, but compatibility claims should not be read as a guarantee that an entire application can move unchanged.





