The Identity Infrastructure for Developers ZITADEL is an open-source identity and access management platform built for teams that need more than basic auth. Whether you're securing a SaaS product, building…
The Identity Infrastructure for Developers
ZITADEL is an open-source identity and access management platform built for teams that need more than basic auth. Whether you're securing a SaaS product, building a B2B platform, or self-hosting a production IAM stack — ZITADEL gives you everything out of the box: SSO, MFA, Passkeys, OIDC, SAML, SCIM, and a battle-tested multi-tenancy model.
No vendor lock-in. No compromise on control. Just a robust, API-first identity platform you can own.
---
🏡 Website | 💬 Chat | 📋 Docs | 🧑💻 Blog | 📞 Contact
---
Why ZITADEL
We built ZITADEL to handle the hardest IAM challenges at scale — starting with multi-tenancy.
| | ZITADEL | FusionAuth | Keycloak | Auth0/Okta |
|---|---|---|---|---|
| Open-source | ✅ | ❌ | ✅ | ❌ |
| Self-hostable | ✅ | ✅ | ✅ | ❌ |
| Infrastructure-level tenants | ✅ Instances (High scale) | ✅ Tenants | 🟡 Realms (Scaling limits) | ❌ (Multi-tenant = multi-account) |
| B2B Organizations | ✅ Native & Unlimited | 🟡 via Entity Management | ✅ (Recent addition) | 🟡 (Plan/Account dependent) |
| Full audit trail | ✅ Comprehensive Event Stream* | 🟡 Audit logs | 🟡 Audit logs | 🟡 Audit logs |
| Passkeys (FIDO2) | ✅ | ✅ | ✅ | ✅ |
| Actions / webhooks | ✅ | ✅ | 🟡 via SPI | ✅ |
| API-first (gRPC + REST) | ✅ | 🟡 REST only | 🟡 REST only | 🟡 REST only |
| SaaS + self-host parity | ✅ | ✅ | ➖ N/A | ➖ N/A |
ZITADEL Cloud and self-hosted ZITADEL run the same codebase.
Key differentiators for architects:
- Relational core, event-driven soul — every mutation is written as an immutable event for a complete, API-accessible audit trail. Unlike systems that log only select activities, ZITADEL provides a comprehensive event stream that can be audited or streamed to external systems via Webhooks.
- Strict multi-tenant hierarchy — Identity System → Organizations → Projects, with isolated data and policy scoping at multiple levels
- API-first design — every resource and action is available via connectRPC, gRPC, and HTTP/JSON APIs
- Zero-downtime updates and horizontal scalability without external session stores
---
Get Started in 3 Minutes
ZITADEL Self-Hosted
bash
# Docker Compose — up and running in under 3 minutes
curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/docker-compose.yml \
&& curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/.env.example \
&& cp .env.example .env \
&& docker compose up -d --wait
Full deployment guides:
> Need professional support for your self-hosted deployment? Contact us.
ZITADEL Cloud (SaaS)
Start for free at zitadel.com — no credit card required. Available in US · EU · AU · CH. Pay-as-you-go pricing.
---
Integrate with the V2 API
ZITADEL exposes every capability over a typed API. Here's how to create a user with the V2 REST API:
bash
curl -X POST https://$ZITADEL_DOMAIN/v2/users/human \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "[email protected]",
"profile": { "givenName": "Alice", "familyName": "Smith" },
"email": { "email": "[email protected]", "sendCode": {} }
}'
Explore the full API reference — including connectRPC and gRPC transports — or jump straight to quickstart examples.
---
Features
Authentication
- Single Sign On (SSO) · Username/Password · Passkeys (FIDO2 / WebAuthn)
- MFA: OTP, U2F, OTP Email, OTP SMS
- LDAP · Enterprise IdPs and social logins
- OpenID Connect certified · SAML 2.0 · Device authorization
- Machine-to-machine: JWT Profile, PAT, Client Credentials
- Token exchange and impersonation
- Custom sessions for flows beyond OIDC/SAML
- Hosted Login V2
Multi-Tenancy
- Identity brokering with pre-built IdP templates
- Customizable B2B onboarding with self-service for customers
- Delegated role management to third parties
- Domain discovery
Integration
- gRPC, connectRPC, and REST APIs for every resource
- Actions: webhooks, custom code, token enrichment
- RBAC · SCIM 2.0 Server
- Audit log and SOC/SIEM integration
- SDKs and example apps
Self-Service & Admin
- Self-registration with email/phone verification
- Administration Console for orgs and projects
- Custom branding per organization
Deployment
- PostgreSQL (≥ 14) · Zero-downtime updates · High scalability
Track upcoming features on our roadmap and follow our changelog for recent updates.
---
Showcase
Login V2
Our new, fully customizable login experience — documentation
---
Adopters & Ecosystem
Used in production by organizations worldwide. See the full [Adopters list](./ADOPTERS.md) — and add yours by submitting a pull request.
- SDKs: All supported languages and frameworks
- Examples: Clone and use our examples
How To Contribute
ZITADEL is built in the open and welcoming to contributions of all kinds.
- 📖 Read the [Contribution Guide](./CONTRIBUTING.md) to get started
- 💬 Join the conversation on Discord
- 🐛 Report bugs or request features via GitHub Issues
Contributors
Made with contrib.rocks.
---
Security
Security policy: [SECURITY.md](./SECURITY.md)
Vulnerability Disclosure Policy — how to responsibly report security issues.
Technical Advisories are published for major issues that could impact security or stability in production.
License
[AGPL-3.0](./LICENSE) — see [LICENSING.md](./LICENSING.md) for the full licensing policy, including Apache 2.0 and MIT exceptions for specific directories.
Members
-
zitadel ★ PINNED
ZITADEL - Identity infrastructure, simplified for you.
Go ★ 15k 1d agoExplain → -
oidc ★ PINNED
Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation
Go ★ 1.9k 2d agoExplain → -
saml ★ PINNED
A SAML 2.0 server (IdP) implementation written for Go
Go ★ 70 19d agoExplain → -
zitadel-go ★ PINNED
ZITADEL Go - The official client library of ZITADEL for an easy integration into your Go project.
Go ★ 141 5d agoExplain → -
actions ★ PINNED
ZITADEL Actions - Easy extensibility with custom code. Think GitHub Actions in an Identity System.
JavaScript ★ 43 12d agoExplain → -
zitadel-charts ★ PINNED
This repository contains Helm charts for running ZITADEL in Kubernetes
Go ★ 156 19d agoExplain → -
typescript ▣
Typescript packages and application to showcase the ZITADEL resource API
TypeScript ★ 113 9mo agoExplain → -
passwap
Package passwap provides a unified implementation between different password hashing algorithms. It allows for easy swapping between algorithms, using the same API for all of them.
Go ★ 78 19d agoExplain → -
terraform-provider-zitadel
Official Terraform provider for ZITADEL
Go ★ 62 19d agoExplain → -
example-auth-nextjs
Official Zitadel auth example for Next.js.
TypeScript ★ 50 6d agoExplain → -
zitadel-tools
No description.
Go ★ 35 10d agoExplain → -
zitadel-nextjs-b2b
Showcase the use of personal access tokens in a B2B environment. Uses NextJS Framework.
TypeScript ★ 29 19d agoExplain → -
vue-auth
Official Zitadel auth integration for Vue.
TypeScript ★ 26 1d agoExplain → -
zitadel-java ▣
No description.
Java ★ 24 4mo agoExplain → -
react-auth
Official Zitadel auth integration for React.
TypeScript ★ 20 4d agoExplain → -
example-symfony-oidc
Example Symfony PHP app
PHP ★ 18 1mo agoExplain → -
examples-api-access-and-token-introspection
Python examples for securing an API and invoking it as a service user
Python ★ 18 1y agoExplain → -
nextgen
A Zitadel Preview
TypeScript ★ 17 5h agoExplain → -
example-api-python3-flask ▣
Example Python3 + Flask API for authentication and authorization with ZITADEL
Python ★ 16 4mo agoExplain → -
example-quote-generator-app ▣
A simple web application using a React front-end and a Python back-end API, both secured using ZITADEL.
Python ★ 16 4mo agoExplain → -
zitadel-examples ▣
DEPRECATED ⛔: Examples how to integrate different languages and frameworks with ZITADEL
TypeScript ★ 16 3y agoExplain → -
client-python
Official Zitadel SDK for Python. Authenticate and access Zitadel's authentication and management APIs in Python.
Python ★ 15 3d agoExplain → -
example-auth-flutter
Official Zitadel auth example for Flutter.
C++ ★ 14 3mo agoExplain → -
angular-auth
Official Zitadel auth integration for Angular.
TypeScript ★ 12 2d agoExplain → -
example-python-django-oidc ▣
Example Python Django OIDC Web
Python ★ 12 4mo agoExplain → -
react-user-authentication ▣
This is the React sample used in the ZITADEL quick start guide.
JavaScript ★ 11 3mo agoExplain → -
example-fine-grained-authorization
Leverage actions, custom metadata, and claims for attribute-based access control
Python ★ 11 3y agoExplain → -
zitadel-node
Official Zitadel SDK for Node. Authenticate and access Zitadel's authentication and management APIs in Node.
TypeScript ★ 10 7d agoExplain → -
client-java
Official Zitadel SDK for the JVM. Authenticate and access Zitadel's authentication and management APIs in JVM-based applications.
Java ★ 9 19d agoExplain → -
sloggcp
Go slog attribute adaptor and error reporting handler
Go ★ 9 19d agoExplain → -
example-auth-fastapi
Official Zitadel auth example for FastAPI.
Python ★ 7 1mo agoExplain → -
example-python-django-oauth ▣
Example Python Django OAuth API
Python ★ 7 4mo agoExplain → -
homebrew-tap
No description.
Ruby ★ 6 11d agoExplain → -
astro-auth
Official Zitadel auth integration for Astro.
TypeScript ★ 6 2d agoExplain → -
client-ruby
Official Zitadel SDK for Ruby. Authenticate and access Zitadel's authentication and management APIs in Ruby.
Ruby ★ 6 9d agoExplain → -
client-php
Official Zitadel SDK for PHP. Authenticate and access Zitadel's authentication and management APIs in PHP.
PHP ★ 5 2d agoExplain → -
example-auth-nestjs
Official Zitadel auth example for NestJS.
TypeScript ★ 5 15d agoExplain → -
example-auth-sveltekit
Official Zitadel auth example for SvelteKit.
TypeScript ★ 4 11d agoExplain → -
zitadel-helper
Helper repository with scripts and fixes for self-hosting ZITADEL
PLpgSQL ★ 4 19d agoExplain → -
exifremove
Removes EXIF information from JPG and PNG files
Go ★ 3 19d agoExplain → -
zitadel-vanilla-js
Simple vanilla JS SPA demonstrating authentication with Zitadel using OIDC.
HTML ★ 3 19d agoExplain → -
nestjs-auth
Official Zitadel auth integration for NestJS.
TypeScript ★ 3 12d agoExplain → -
example-auth-nuxtjs
Official Zitadel auth example for Nuxt.
Vue ★ 3 16d agoExplain → -
example-auth-vue
Official Zitadel auth example for Vue.
Vue ★ 3 14d agoExplain → -
example-auth-react
Official Zitadel auth example for React.
TypeScript ★ 3 1d agoExplain → -
example-auth-astro
Official Zitadel auth example for Astro.
TypeScript ★ 3 19d agoExplain → -
example-auth-spring
Official Zitadel auth example for Spring.
HTML ★ 3 3mo agoExplain → -
schema ⑂
Package zitadel/schema fills a struct with form values. Forked from gorilla/schema.
Go ★ 3 6d agoExplain → -
example-postman-collections
This repository contains Postman collections to try out ZITADEL APIs
★ 3 2y agoExplain → -
zitadel-guest-accounts
Zitadel Guest Accounts Demo App
JavaScript ★ 2 19d agoExplain → -
tanstack-auth
Official Zitadel auth integration for TanStack Start.
TypeScript ★ 2 10d agoExplain → -
logging
Logging extension
Go ★ 2 19d agoExplain → -
example-auth-angular
Official Zitadel auth example for Angular.
TypeScript ★ 2 11d agoExplain → -
example-auth-laravel
Official Zitadel auth example for Laravel.
Blade ★ 2 6d agoExplain → -
example-auth-solidstart
Official Zitadel auth example for SolidStart.
TypeScript ★ 2 13d agoExplain → -
example-auth-expressjs
Official Zitadel auth example for Express.
TypeScript ★ 2 12d agoExplain → -
example-auth-hono
Official Zitadel auth example for Hono.
TypeScript ★ 2 16d agoExplain → -
xk6-modules
Provides additional modules for xk6.
Go ★ 1 10d agoExplain → -
example-auth-remix
Official Zitadel auth example for Remix.
TypeScript ★ 1 2h agoExplain → -
example-auth-fastify
Official Zitadel auth example for Fastify.
TypeScript ★ 1 15d agoExplain → -
nuxt-auth ⑂
Official Zitadel auth integration for Nuxt.
TypeScript ★ 1 1d agoExplain → -
example-auth-qwik
Official Zitadel auth example for Qwik.
TypeScript ★ 1 16d agoExplain → -
example-auth-django
Official Zitadel auth example for Django.
Python ★ 1 1mo agoExplain → -
example-auth-flask
Official Zitadel auth example for Flask.
Python ★ 1 1mo agoExplain → -
example-auth-symfony
Official Zitadel auth example for Symfony.
PHP ★ 1 2mo agoExplain → -
example-auth-dotnet
Official Zitadel auth example for .NET.
HTML ★ 1 3mo agoExplain → -
example-deploy-aws-eks
No description.
HCL ★ 1 8mo agoExplain → -
example-apache2
Minimum ZITADEL integration with Apache2
Dockerfile ★ 1 2y agoExplain → -
express-auth
Official Zitadel auth integration for Express.
TypeScript ★ 0 12d agoExplain → -
remix-auth
Official Zitadel auth integration for Remix.
TypeScript ★ 0 14d agoExplain → -
sveltekit-auth
Official Zitadel auth integration for SvelteKit.
TypeScript ★ 0 12d agoExplain → -
hono-auth
Official Zitadel auth integration for Hono.
TypeScript ★ 0 7d agoExplain → -
elysia-auth
Official Zitadel auth integration for Elysia.
TypeScript ★ 0 7d agoExplain → -
solidstart-auth
Official Zitadel auth integration for SolidStart.
TypeScript ★ 0 13d agoExplain → -
next-auth
Official Zitadel auth integration for Next.js.
TypeScript ★ 0 14d agoExplain → -
zitadel-php
Official Zitadel PKCE authentication middleware for PHP — Laravel, Symfony, CodeIgniter 4, Phalcon, Yii 3, Slim 4, Mezzio
PHP ★ 0 13d agoExplain → -
client-dotnet
Zitadel API client for .NET
C# ★ 0 12d agoExplain → -
qwik-auth
Official Zitadel auth integration for Qwik.
TypeScript ★ 0 13d agoExplain → -
k8-zitadel-on-kind
Reference architecture for an end-to-end Zitadel K8 setup for testing and local use
Go Template ★ 0 19d agoExplain → -
fastify-auth
Official Zitadel auth integration for Fastify.
TypeScript ★ 0 12d agoExplain → -
.github
No description.
★ 0 19d agoExplain → -
example-auth-tanstack
Official Zitadel auth example for TanStack Start.
TypeScript ★ 0 18d agoExplain → -
example-auth-elysia
Official Zitadel auth example for Elysia.
TypeScript ★ 0 13d agoExplain → -
example-auth-yii
A guide to securing Yii 3 apps with ZITADEL using the PKCE flow
★ 0 2mo agoExplain → -
example-auth-phalcon
A guide to securing Phalcon apps with ZITADEL using the PKCE flow
★ 0 2mo agoExplain → -
example-auth-codeigniter
A guide to securing CodeIgniter 4 apps with ZITADEL using the PKCE flow
★ 0 2mo agoExplain → -
python-saml-sp
SAML Service Provider with ZITADEL Integration
Python ★ 0 19d agoExplain → -
grpc-gateway ⑂ ▣
gRPC to JSON proxy generator following the gRPC HTTP spec
Go ★ 0 5mo agoExplain →
No repos match these filters.