Quick Start
A quick start guide to start using Permix and validating your permissions
Try Permix
Want to explore Permix before installing? Try our interactive sandbox environment where you can experiment with type-safe permissions management right in your browser.
Installation
Create an instance
To create a base instance, you need to provide a schema as a generic type to createPermix function that defines your permissions:
import { createPermix } from 'permix'
export const permix = createPermix<{
post: ['create', 'read', 'update', 'delete']
}>()
// ...Learn more about features and configuration of instances in the instance guide.
Setup your permissions
You can setup your permissions by calling setup method on your instance in any place you want:
// ...
// Call setupPermissions in your application
export function setupPermissions() {
permix.setup({
post: {
create: true,
read: true,
update: true,
delete: false,
},
})
}Check permissions
After setup, you can use check method to check available permissions:
permix.check('post.create') // trueIntegrations
Continuing from the quick start, you can now explore how Permix integrates with other libraries and frameworks.
React
Integration with React via provider and hook.
Vue
Integration with Vue via plugin and composable.
Node.js
Integration with Node.js via middleware.
Server
Integration with native Request and Response handlers.
Hono
Integration with Hono via middleware.
Express
Integration with Express via middleware.
tRPC
Integration with tRPC via middleware.
Next.js
Integration with Next.js App Router.
TanStack Start
Integration with TanStack Start.
Solid
Integration with Solid via provider and hook.
Svelte
Integration with Svelte via provider and hook.
oRPC
Integration with oRPC via middleware.
Fastify
Integration with Fastify via plugin.
Elysia
Integration with Elysia via middleware.
Drizzle
Schema-driven permissions from Drizzle tables.
Effect
Integration with Effect services and layers.