Keycloak vs SuperTokens: Which Open Source Auth to Choose?
Last updated: March 2026
Keycloak and SuperTokens are both open-source authentication solutions, but they target different needs. Keycloak is a full-featured identity and access management platform built on Java. SuperTokens is a lightweight authentication library built on Node.js. Choosing between them depends on what you are building, how much complexity you need, and where you want to run your infrastructure.
This guide provides a head-to-head comparison across architecture, features, community, hosting, and developer experience. We will be clear about where each excels.
Architecture
Keycloak
Keycloak is a standalone identity server built on the Quarkus framework (Java). It runs as an independent service with its own database, admin console, and API. Applications connect to Keycloak as clients using standard protocols (OIDC, SAML 2.0, OAuth 2.0).
Architecture characteristics:
- Standalone server process (typically 512 MB-2 GB memory)
- PostgreSQL or MySQL for persistent storage
- Infinispan for distributed caching and session management
- Built-in admin console (web UI)
- Protocol-based integration (applications talk to Keycloak via OIDC/SAML, not SDKs)
# Start Keycloak
docker run -p 8080:8080
-e KC_BOOTSTRAP_ADMIN_USERNAME=admin
-e KC_BOOTSTRAP_ADMIN_PASSWORD=admin
quay.io/keycloak/keycloak:26.1.0 start-dev
Keycloak acts as an identity provider. Your applications redirect users to Keycloak for authentication. Keycloak handles the login page, MFA, password reset, and identity provider federation. Tokens are issued back to your application.
SuperTokens
SuperTokens has a two-layer architecture: a Core service (Java, handles storage and session management) and Backend SDKs (Node.js, Python, Go) that integrate directly into your application server.
Architecture characteristics:
- Core service (Java-based, ~200 MB memory)
- PostgreSQL or MySQL for storage
- Backend SDKs that run inside your application process
- No standalone admin UI (dashboard available as an add-on)
- SDK-based integration (auth logic runs in your backend)
// SuperTokens Node.js integration
import supertokens from 'supertokens-node';
import Session from 'supertokens-node/recipe/session';
import EmailPassword from 'supertokens-node/recipe/emailpassword';
supertokens.init({
framework: 'express',
supertokens: {
connectionURI: 'http://localhost:3567',
},
appInfo: {
appName: 'My App',
apiDomain: 'http://localhost:3001',
websiteDomain: 'http://localhost:3000',
},
recipeList: [
EmailPassword.init(),
Session.init(),
],
});
SuperTokens acts as an auth library that your application uses. The login pages, form validation, and auth logic run within your application’s process. The Core handles token storage and session management.
Architecture Implications
| Aspect | Keycloak | SuperTokens |
|---|---|---|
| Deployment model | Separate service | Embedded in your app + Core service |
| Login pages | Hosted by Keycloak | Hosted by your app (pre-built or custom) |
| Protocol support | OIDC, SAML, OAuth 2.0 | Proprietary session management |
| Multi-app SSO | Built-in (shared SSO session) | Requires configuration |
| Resource usage | Higher (standalone JVM) | Lower per component |
| Scaling model | Scale Keycloak independently | Scale with your app |
Feature Comparison
Authentication Methods
| Method | Keycloak | SuperTokens |
|---|---|---|
| Email/Password | Yes | Yes |
| Social Login | Yes (20+ providers) | Yes (Apple, Google, GitHub, + custom) |
| Passwordless (magic link) | Yes | Yes |
| Passwordless (OTP) | Yes | Yes |
| WebAuthn/Passkeys | Yes | No |
| Phone/SMS OTP | Via extensions | Yes |
| TOTP | Yes | Yes |
| Kerberos/SPNEGO | Yes | No |
Keycloak supports more authentication methods out of the box, including WebAuthn/Passkeys which SuperTokens does not currently support.
Identity Management
| Feature | Keycloak | SuperTokens |
|---|---|---|
| User management UI | Built-in admin console | Dashboard add-on |
| User federation (LDAP/AD) | Yes | No |
| Identity brokering | Yes (OIDC, SAML providers) | Social login only |
| SCIM 2.0 provisioning | Yes | No |
| User self-service account | Yes (Account Console) | Build your own |
| Custom user attributes | Yes (with Declarative User Profile) | Yes (metadata) |
| Groups | Yes | No |
| Organizations/Multi-tenancy | Yes (Organizations feature) | Yes |
Keycloak has significantly more identity management capabilities. If you need to federate with corporate directories (LDAP, Active Directory), broker identities from enterprise IdPs (SAML), or provision users via SCIM, Keycloak is the clear choice.
Authorization
| Feature | Keycloak | SuperTokens |
|---|---|---|
| RBAC | Yes (realm roles, client roles, composite roles) | Yes (roles/permissions) |
| ABAC | Yes (via policies) | No |
| UMA 2.0 | Yes | No |
| Fine-grained permissions | Yes (resource-based) | No |
| Policy evaluation API | Yes | No |
Keycloak’s authorization capabilities are enterprise-grade, supporting fine-grained authorization with resource types, scopes, and policies. SuperTokens provides basic role-based access control.
Protocol Support
| Protocol | Keycloak | SuperTokens |
|---|---|---|
| OpenID Connect | Full provider | No |
| SAML 2.0 | Full IdP and SP | No |
| OAuth 2.0 | Full server | No |
| Token exchange (RFC 8693) | Yes | No |
| CIBA | Yes | No |
This is the most significant difference. Keycloak is a standards-compliant identity provider. SuperTokens uses its own session management protocol. If your applications need to integrate with external services via OIDC or SAML, Keycloak is required. SuperTokens cannot act as an OIDC provider or SAML IdP.
Use the SAML Decoder to inspect SAML messages or the JWT Token Analyzer to decode Keycloak-issued tokens.
Session Management
| Feature | Keycloak | SuperTokens |
|---|---|---|
| Session tokens | JWTs (access/refresh) | Custom session tokens (rotating) |
| Anti-CSRF | Via state parameter |
Built-in |
| Token theft detection | Via events | Built-in (rotation-based) |
| Session revocation | Yes (admin console/API) | Yes (API) |
| Cross-domain sessions | Via OIDC SSO | Requires configuration |
SuperTokens has a well-designed session management system. It uses rotating refresh tokens — if a stolen token is used, the rotation is detected and all sessions for that user are revoked. Keycloak handles session management through standard OIDC token flows. For Keycloak session management patterns, see Skycloak’s Session Management feature.
Enterprise Features
| Feature | Keycloak | SuperTokens |
|---|---|---|
| Single sign-on | Yes (OIDC + SAML) | Limited |
| Single logout | Yes (front-channel, back-channel) | No |
| Audit logging | Yes (events system) | No (build your own) |
| Branding/themes | Yes (FreeMarker themes) | Yes (pre-built UI with CSS) |
| Email templates | Yes (customizable FreeMarker) | Yes (customizable) |
| Custom auth flows | Yes (visual flow editor) | Yes (overrides) |
| Admin API | Comprehensive REST API | Yes |
| MFA | TOTP, WebAuthn, email, SMS | TOTP |
| Step-up authentication | Yes | No |
| Token exchange | Yes | No |
| Impersonation | Yes | No |
Community and Ecosystem
Keycloak
- GitHub stars: ~25,000+
- First release: 2014
- Backed by: Red Hat / IBM
- CNCF status: Incubating project
- Contributors: 1,000+
- Release cadence: Quarterly major releases
- Documentation: Comprehensive (server admin, developer guide, API docs)
- Community: Active mailing lists, GitHub Discussions, community extensions
Keycloak has over a decade of production use. It is deployed by organizations ranging from startups to government agencies. The CNCF incubation status and Red Hat backing provide long-term stability guarantees.
SuperTokens
- GitHub stars: ~13,000+
- First release: 2020
- Backed by: SuperTokens Inc (VC-funded startup)
- Contributors: 100+
- Release cadence: Frequent (multiple releases per month)
- Documentation: Good (recipe-based, with examples)
- Community: Discord, GitHub issues
SuperTokens is younger and more tightly focused. Its community is smaller but active. The startup backing means feature development is fast but long-term sustainability depends on the company’s trajectory.
SDK and Language Support
Keycloak
Keycloak relies on standard protocols (OIDC, SAML) rather than custom SDKs. Any OIDC or SAML library works with Keycloak:
- Java: Spring Security, Quarkus OIDC
- Node.js:
openid-client,passport-openidconnect - Python:
authlib,python-keycloak - Go:
coreos/go-oidc - .NET:
Microsoft.AspNetCore.Authentication.OpenIdConnect - PHP:
jumbojett/openid-connect-php - Any language: Any OIDC/SAML client library
Additionally, Keycloak provides a JavaScript adapter (keycloak-js) for browser integration and the Keycloak Admin Client for Java applications.
SuperTokens
SuperTokens provides custom SDKs:
- Backend: Node.js, Python (FastAPI, Flask, Django), Go
- Frontend: React, vanilla JavaScript
- Mobile: React Native, Flutter (community), iOS/Android (via API)
Important limitation: If your application is not written in one of these languages, you must use the SuperTokens Core API directly. There are no Rust, C#/.NET, PHP, or Ruby SDKs. Keycloak’s protocol-based approach means any language with an OIDC library can integrate.
For Keycloak integration guides by framework:
- React with Keycloak
- Next.js with Keycloak
- Vue.js with Keycloak
- NestJS with Keycloak
- FastAPI with Keycloak
- Django with Keycloak
- Go with Keycloak
- Spring Boot with Keycloak
Hosting Options
Self-Hosted Keycloak
Running Keycloak in production requires:
- 2+ Keycloak nodes (for high availability)
- PostgreSQL database (with backups)
- Load balancer with health checks
- TLS termination
- Monitoring and alerting
- Ongoing maintenance (upgrades, security patches)
See Is Keycloak Production Ready? A Practical Checklist for the full requirements.
For quick local development, use the Keycloak Docker Compose Generator.
Managed Keycloak (Skycloak)
Skycloak handles all operational aspects:
- Cluster management and scaling
- Automated backups and disaster recovery
- Monitoring and insights
- Security patches and upgrades
- SOC 2 compliance
- SLA guarantees
This eliminates the operational overhead of self-hosting while retaining all of Keycloak’s capabilities.
Self-Hosted SuperTokens
SuperTokens self-hosting requires:
- SuperTokens Core service (single process)
- PostgreSQL or MySQL database
- Your application server (with SuperTokens SDK)
The operational burden is lower than Keycloak because the Core is a simpler service. However, you lose the features Keycloak provides (OIDC provider, SAML, federation, authorization).
SuperTokens Cloud
SuperTokens offers a managed cloud service:
- Free: Up to 5,000 MAUs
- Paid: $0.02/MAU after 5,000
Cloud handles the Core service. Your application still runs the SuperTokens SDK.
Pricing Comparison
| Scenario | Keycloak (Self-Hosted) | Keycloak (Skycloak) | SuperTokens (Self-Hosted) | SuperTokens (Cloud) |
|---|---|---|---|---|
| 1,000 MAUs | $150-300/mo (infra) | See pricing | $50-100/mo (infra) | Free |
| 10,000 MAUs | $150-300/mo (infra) | See pricing | $50-100/mo (infra) | $100/mo |
| 100,000 MAUs | $300-500/mo (infra) | See pricing | $100-200/mo (infra) | $1,900/mo |
| 1,000,000 MAUs | $500-1,000/mo (infra) | See pricing | $200-400/mo (infra) | $19,900/mo |
Note: Self-hosted costs are infrastructure only and do not include engineering time for maintenance, upgrades, security patches, and troubleshooting. Use the IAM ROI Calculator to model total cost of ownership.
A key pricing difference: Keycloak (self-hosted or Skycloak) has no per-MAU charges. SuperTokens Cloud scales linearly with MAUs. At high user counts, this difference is substantial.
Decision Framework
Choose Keycloak When
- You need standard protocols. OIDC and SAML integration with third-party services, enterprise customers, or external identity providers.
- Enterprise features are required. LDAP/AD federation, SCIM provisioning, SAML IdP, fine-grained authorization, token exchange.
- Your stack is diverse. Multiple applications in different languages need SSO through a central identity provider.
- Compliance matters. SOC 2, HIPAA, or regulatory requirements that need audit trails, session management controls, and configurable security policies.
- You want to avoid per-MAU pricing. Fixed infrastructure costs regardless of user count.
- You want managed hosting. Skycloak provides fully managed Keycloak without operational overhead.
Choose SuperTokens When
- You are building a single application (not a multi-app ecosystem) and want auth embedded in your backend.
- Your stack is Node.js, Python, or Go and you want deep SDK integration.
- You want lightweight session management with built-in token rotation and theft detection.
- OIDC/SAML compliance is not required. Your applications are all internal and talk to each other via your own API.
- You are under 5,000 MAUs and want free managed hosting.
- Enterprise features (LDAP, SCIM, SAML IdP) are not needed.
Choose Neither When
- You need a full backend-as-a-service. Consider Supabase (includes auth, database, storage) or Firebase.
- You want drop-in UI components. Consider Clerk (React/Next.js-focused with pre-built components).
- You are a large enterprise already using Okta/Azure AD. Adding another identity system may not be the right move.
Migration Path: SuperTokens to Keycloak
If you start with SuperTokens and later need Keycloak’s capabilities:
- Export users from SuperTokens via its API.
- Import users into Keycloak via the Admin REST API.
- Handle passwords: SuperTokens stores bcrypt hashes. Keycloak can be configured to accept bcrypt-hashed passwords via a custom credential provider, or you can use a lazy migration approach.
- Update client-side code: Replace SuperTokens SDK calls with OIDC library calls.
- Update backend code: Replace SuperTokens middleware with OIDC token validation.
The migration is medium-difficulty because it requires changing the authentication integration pattern (SDK-based to protocol-based).
Summary Table
| Category | Keycloak | SuperTokens |
|---|---|---|
| Architecture | Standalone identity server | Embedded auth library + Core |
| Maturity | 10+ years, CNCF incubating | 5+ years, startup-backed |
| Protocols | OIDC, SAML, OAuth 2.0 | Proprietary |
| Enterprise | Full (LDAP, SCIM, SAML, UMA) | Basic (roles, multi-tenancy) |
| Languages | Any (via OIDC/SAML) | Node.js, Python, Go |
| SSO | Built-in | Limited |
| Admin UI | Comprehensive | Basic dashboard |
| Community | Very large | Growing |
| Pricing | No per-MAU cost | $0.02/MAU (cloud) |
| Managed option | Skycloak | SuperTokens Cloud |
Both are legitimate choices for their target use cases. Keycloak is the more capable and mature platform. SuperTokens is the lighter-weight option for teams with straightforward auth needs. If there is any chance you will need enterprise features in the future, starting with Keycloak avoids a later migration.
Ready to evaluate Keycloak for your project? Skycloak provides managed Keycloak with all enterprise features, SOC 2 compliance, and an SLA guarantee. Check our pricing or explore the documentation to get started.
Ready to simplify your authentication?
Deploy production-ready Keycloak in minutes. Unlimited users, flat pricing, no SSO tax.