@zenstackhq

Full-Stack TypeScript ORM with flexible Authorization and auto-generated, type-safe APIs/hooks, simplifying full-stack development

Joined October 2022
What Is ZenStack? youtu.be/dI8LeuFTr9c
2
10
3,203
ZenStack Studio can now turn your database into an MCP server with one click. It works with any Postgres/MySQL/SQLite database, even without ZenStack. @zenstackhq
1
1
7
120
ZenStack v3.9 just landed with parameterized computed fields. It takes typed parameters, with arguments supplied at query time — in `select`, `where`, `orderBy`, `aggregate` & more. Dynamic, client-driven computed values with full type safety. github.com/zenstackhq/zensta…
2
3
230
New ZenStack website is live! Does it give you AI slop vibes? Guess which one is behind it? 👀 @zenstackhq
1
3
7
385
Tired of clicking through foreign key just to find out who `userId=cus_8f3a2b1c` is for the current record? ZenStack Studio allows displaying related fields like user.email directly in the current table, and use it as a normal column to filter and sort, etc.
1
2
3
129
Congrats to the @better_auth team! Excited to see Auth for agents is going to be the foundation of agentic infra. Better-Auth solves AuthN (who you are). ZenStack's access policies solves AuthZ (what you can do) @zenstackhq zenstack.dev/docs/orm/access…
1
1
2
172
ICYMI, you can now install zenstack v3 official skills using skills.sh: npx skills add zenstackhq/skills --all
2
3
196
He explains the essence of ZenStack better than I, makes me wanna speak Spanish 😁 TLDR: If you're tired of duplicating logic, keeping multiple permission definitions in sync, or just want a more solid foundation to scale your app, ZenStack deserves a serious look.
Si usas Prisma para tus proyectos en TypeScript, sabes lo bien que se siente tener un ORM schema-first con excelente tipado y una "developer experience" muy pulida. Sin embargo, cuando avanzas hacia aplicaciones reales (especialmente aquellas con usuarios, roles y reglas de negocio complejas), aparece un desafío recurrente: el control de acceso y la seguridad de los datos terminan siendo responsabilidad de múltiples capas. Middleware aquí, chequeos manuales allá, y una constante preocupación de que algo se filtre. [ZenStack] Se trata de una capa de datos moderna y unificada para aplicaciones TypeScript. Parte de un lenguaje de schema que es un superconjunto del de Prisma, por lo que migrar es sorprendentemente sencillo. Cambias la extensión del archivo, ejecutas unos comandos y ya estás dentro de un ecosistema mucho más completo. Lo realmente interesante es su sistema de políticas de acceso integradas. Puedes definir reglas declarativas directamente en tus modelos. Por ejemplo, que un recurso solo sea legible si cumple ciertas condiciones, que un usuario solo pueda operar sobre sus propios datos, o que determinados roles tengan privilegios especiales. Estas políticas se aplican de forma automática en todas las operaciones del ORM y en los servicios que genera. El cliente ORM mantiene compatibilidad con la API de Prisma, lo que facilita mucho la adopción. Al mismo tiempo, te ofrece un query builder tipado basado en Kysely para cuando necesites mayor precisión o consultas avanzadas. Pero el verdadero poder para el desarrollo full-stack viene de lo que puedes derivar del schema. ZenStack genera automáticamente endpoints CRUD seguros (con adaptadores para frameworks como Next.js o Express) y, quizás lo más útil en el día a día, hooks de TanStack Query completamente tipados listos para usar en tu frontend. Todo respetando las mismas políticas de acceso que definiste. En la versión 3, el proyecto dio un paso importante: reescribió su motor sobre Kysely en lugar de depender del runtime de Prisma. El resultado es una herramienta más ligera, 100% TypeScript, sin binarios nativos ni WASM, y con una arquitectura más fácil de extender mediante plugins. Tu modelo de datos deja de ser solo una definición de tablas. Se convierte en el contrato central de tu aplicación: desde ahí fluyen los tipos, la seguridad, las validaciones y las interfaces de comunicación entre backend y frontend. Si estás cansado de duplicar lógica, de mantener sincronizados múltiples lugares donde se definen permisos, o simplemente quieres una base más sólida para escalar tu aplicación, ZenStack merece una mirada seria. REPOOO👇
1
3
244
ZenStack retweeted
Si usas Prisma para tus proyectos en TypeScript, sabes lo bien que se siente tener un ORM schema-first con excelente tipado y una "developer experience" muy pulida. Sin embargo, cuando avanzas hacia aplicaciones reales (especialmente aquellas con usuarios, roles y reglas de negocio complejas), aparece un desafío recurrente: el control de acceso y la seguridad de los datos terminan siendo responsabilidad de múltiples capas. Middleware aquí, chequeos manuales allá, y una constante preocupación de que algo se filtre. [ZenStack] Se trata de una capa de datos moderna y unificada para aplicaciones TypeScript. Parte de un lenguaje de schema que es un superconjunto del de Prisma, por lo que migrar es sorprendentemente sencillo. Cambias la extensión del archivo, ejecutas unos comandos y ya estás dentro de un ecosistema mucho más completo. Lo realmente interesante es su sistema de políticas de acceso integradas. Puedes definir reglas declarativas directamente en tus modelos. Por ejemplo, que un recurso solo sea legible si cumple ciertas condiciones, que un usuario solo pueda operar sobre sus propios datos, o que determinados roles tengan privilegios especiales. Estas políticas se aplican de forma automática en todas las operaciones del ORM y en los servicios que genera. El cliente ORM mantiene compatibilidad con la API de Prisma, lo que facilita mucho la adopción. Al mismo tiempo, te ofrece un query builder tipado basado en Kysely para cuando necesites mayor precisión o consultas avanzadas. Pero el verdadero poder para el desarrollo full-stack viene de lo que puedes derivar del schema. ZenStack genera automáticamente endpoints CRUD seguros (con adaptadores para frameworks como Next.js o Express) y, quizás lo más útil en el día a día, hooks de TanStack Query completamente tipados listos para usar en tu frontend. Todo respetando las mismas políticas de acceso que definiste. En la versión 3, el proyecto dio un paso importante: reescribió su motor sobre Kysely en lugar de depender del runtime de Prisma. El resultado es una herramienta más ligera, 100% TypeScript, sin binarios nativos ni WASM, y con una arquitectura más fácil de extender mediante plugins. Tu modelo de datos deja de ser solo una definición de tablas. Se convierte en el contrato central de tu aplicación: desde ahí fluyen los tipos, la seguridad, las validaciones y las interfaces de comunicación entre backend y frontend. Si estás cansado de duplicar lógica, de mantener sincronizados múltiples lugares donde se definen permisos, o simplemente quieres una base más sólida para escalar tu aplicación, ZenStack merece una mirada seria. REPOOO👇
2
1
2
31
2,774
Very well summarized! ZenStack strives to be the type-safe, DX-centric data toolkit that goes way beyond ORM.
Si usas Prisma para tus proyectos en TypeScript, sabes lo bien que se siente tener un ORM schema-first con excelente tipado y una "developer experience" muy pulida. Sin embargo, cuando avanzas hacia aplicaciones reales (especialmente aquellas con usuarios, roles y reglas de negocio complejas), aparece un desafío recurrente: el control de acceso y la seguridad de los datos terminan siendo responsabilidad de múltiples capas. Middleware aquí, chequeos manuales allá, y una constante preocupación de que algo se filtre. [ZenStack] Se trata de una capa de datos moderna y unificada para aplicaciones TypeScript. Parte de un lenguaje de schema que es un superconjunto del de Prisma, por lo que migrar es sorprendentemente sencillo. Cambias la extensión del archivo, ejecutas unos comandos y ya estás dentro de un ecosistema mucho más completo. Lo realmente interesante es su sistema de políticas de acceso integradas. Puedes definir reglas declarativas directamente en tus modelos. Por ejemplo, que un recurso solo sea legible si cumple ciertas condiciones, que un usuario solo pueda operar sobre sus propios datos, o que determinados roles tengan privilegios especiales. Estas políticas se aplican de forma automática en todas las operaciones del ORM y en los servicios que genera. El cliente ORM mantiene compatibilidad con la API de Prisma, lo que facilita mucho la adopción. Al mismo tiempo, te ofrece un query builder tipado basado en Kysely para cuando necesites mayor precisión o consultas avanzadas. Pero el verdadero poder para el desarrollo full-stack viene de lo que puedes derivar del schema. ZenStack genera automáticamente endpoints CRUD seguros (con adaptadores para frameworks como Next.js o Express) y, quizás lo más útil en el día a día, hooks de TanStack Query completamente tipados listos para usar en tu frontend. Todo respetando las mismas políticas de acceso que definiste. En la versión 3, el proyecto dio un paso importante: reescribió su motor sobre Kysely en lugar de depender del runtime de Prisma. El resultado es una herramienta más ligera, 100% TypeScript, sin binarios nativos ni WASM, y con una arquitectura más fácil de extender mediante plugins. Tu modelo de datos deja de ser solo una definición de tablas. Se convierte en el contrato central de tu aplicación: desde ahí fluyen los tipos, la seguridad, las validaciones y las interfaces de comunicación entre backend y frontend. Si estás cansado de duplicar lógica, de mantener sincronizados múltiples lugares donde se definen permisos, o simplemente quieres una base más sólida para escalar tu aplicación, ZenStack merece una mirada seria. REPOOO👇
2
3
232
Are users struggling to adopt your MCP server because it consumes too many tokens of the context window? Here is how to use Code Mode to fix it: dev.to/zenstack/how-to-save-…
3
4
147
Replying to @the_yamiteru
Totally agree! I think @kysely_ has the best type-safety among TS query builder. That's why we built ZenStack v3 on top of it! If you like Kysely, you might find ZenStack(zenstack.dev) interesting too. Would love to hear your thoughts if you give it a try.
1
1
6
374
Tired of table switching just to copy a user ID for filter? You don’t have to anymore. ZenStack Studio now lets you filter directly through relation fields — and it even works with to-many relations.
1
2
5
296
Vibe coding has me opening my IDE less and less. But there are moments I still miss it — like when writing database queries with IntelliSense support. ZenStack Studio's query editor has you covered. So your IDE can still rest in peace 🪦
2
2
8
852
A fair comparison of @prisma , @DrizzleORM , and @zenstackhq by someone with obvious skin in the game — who tried very hard anyway 😁
1
1
5
202