{
    "componentChunkName": "component---src-pages-blog-markdown-remark-fields-slug-js",
    "path": "/blog/supertokens-vs-hanko",
    "result": {"data":{"markdownRemark":{"html":"<p>Teams that rule out Keycloak still have open-source authentication options worth a serious look, and two names come up repeatedly: SuperTokens and Hanko. Both are open source, both can be self-hosted, and both offer a managed cloud for teams that would rather not run the backend themselves. The similarity mostly stops there. <a href=\"https://www.hanko.io/\" target=\"_blank\" rel=\"nofollow\"><strong>Hanko</strong></a> is passkey-first, designed from the ground up around WebAuthn and FIDO2. <a href=\"https://supertokens.com/\" target=\"_blank\" rel=\"nofollow\"><strong>SuperTokens</strong></a> is a full-stack authentication platform where passkeys are one capability among many, sitting alongside multi-tenancy, session security, and enterprise SSO.</p>\n<p>This comparison covers where each one fits, what the licensing actually obligates, and roughly what the bill looks like at scale.</p>\n<h2 id=\"at-a-glance\" style=\"position:relative;\"><a href=\"#at-a-glance\" aria-label=\"at a glance permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>At a Glance</h2>\n<table>\n<thead>\n<tr>\n<th></th>\n<th><strong>SuperTokens</strong></th>\n<th><strong>Hanko</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>License</td>\n<td>Apache 2.0</td>\n<td>Backend API AGPL v3; Elements + SDKs MIT</td>\n</tr>\n<tr>\n<td>Self-hosting</td>\n<td>Free, unlimited users</td>\n<td>Free, unlimited users (AGPL v3 applies to backend)</td>\n</tr>\n<tr>\n<td>Free tier (cloud)</td>\n<td>5,000 MAU</td>\n<td>10,000 MAU</td>\n</tr>\n<tr>\n<td>Paid tier (cloud)</td>\n<td>~$0.02/MAU above free tier</td>\n<td>~$0.01/MAU above free tier</td>\n</tr>\n<tr>\n<td>Passkeys / WebAuthn</td>\n<td>Supported</td>\n<td>Primary focus, FIDO2-certified</td>\n</tr>\n<tr>\n<td>Multi-tenancy</td>\n<td>First-class, API-driven</td>\n<td>Basic, developing</td>\n</tr>\n<tr>\n<td>SAML SSO</td>\n<td>Native (SAML recipe, paid feature)</td>\n<td>Native</td>\n</tr>\n<tr>\n<td>SCIM</td>\n<td>Not native (build on top)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>Session security</td>\n<td>Rotating refresh tokens, theft detection</td>\n<td>Standard sessions</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"passkeys-hankos-edge\" style=\"position:relative;\"><a href=\"#passkeys-hankos-edge\" aria-label=\"passkeys hankos edge permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Passkeys: Hanko’s Edge</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/d75f407d0e191795655d9862fa6b252a/a878e/Hanko.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 47.46835443037975%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsTAAALEwEAmpwYAAABdElEQVQoz22RT0sCURTF/Rg1znvz5q/zfGMKoZgzjmOTIxlqUppSmKJTaSFpBP1ZVG5aBNEniDAoIqhN2xYV+rlaiDqCcDb33PODe7guBBgwEsOwiBUAZIHDHK+GQoiDEHG85A+pLtqRoGnodgOnaBoO/bHGSWqecg0HCBFF0T5fIGaYqqprmqGqejgcwVgBgBUlwnEiywqQmRwFIZqCCVEMIxaP63EjquuaZVleL6Hm5zySIPAsz7GApgGAY97lLOZfXNZWDhPZbiJzo5pND4mQhSXVPEhkrq31rm4dKwETQjQThuZap9r+27I/inuflfZvNNEMG7vl1vd246tQf6t2+mb6kkE8GDWfglO5s6OLQbnxUm6+Ns/7sWRLM2v1k5/S/nu+8mifDpK5KwYJM2FGjW1u7NwX7eei3UsX7wLBVDC8mi7c5qtPhVovW3oIaQXoeOQULHm8MiYyVgRRFkSZ40VRkjFWMCYY+2SZCKIMwKTzP7OHbBVssjB7AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Hanko\"\n        title=\"Hanko\"\n        src=\"/static/d75f407d0e191795655d9862fa6b252a/f058b/Hanko.png\"\n        srcset=\"/static/d75f407d0e191795655d9862fa6b252a/c26ae/Hanko.png 158w,\n/static/d75f407d0e191795655d9862fa6b252a/6bdcf/Hanko.png 315w,\n/static/d75f407d0e191795655d9862fa6b252a/f058b/Hanko.png 630w,\n/static/d75f407d0e191795655d9862fa6b252a/40601/Hanko.png 945w,\n/static/d75f407d0e191795655d9862fa6b252a/78612/Hanko.png 1260w,\n/static/d75f407d0e191795655d9862fa6b252a/a878e/Hanko.png 2048w\"\n        sizes=\"(max-width: 630px) 100vw, 630px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>Hanko treats passkeys as the default enrollment path, not an add-on. Its WebAuthn implementation covers platform authenticators (Touch ID, Windows Hello) and roaming authenticators (hardware security keys), supports cross-device flows, and falls back to email one-time codes when a passkey is not available. The underlying passkey infrastructure is FIDO2-certified, which is the credential that matters most when a security review asks who actually built the WebAuthn layer.</p>\n<p>The sharper differentiator is the <strong>Hanko Passkey API</strong>, a standalone product. It exposes a lightweight HTTP API and an SDK for adding passkeys to an authentication stack that already exists, whether that stack is Firebase, Auth0, or something custom. It handles both first-factor passkeys and second-factor WebAuthn, including hardware keys, without forcing a full migration off the current provider. SuperTokens has no equivalent bolt-on passkey product.</p>\n<p>SuperTokens does support passkeys through standard WebAuthn, and for a team already on SuperTokens that is usually enough. The distinction is one of focus rather than capability: passwordless UX is Hanko’s core product, whereas for SuperTokens it is one recipe inside a broader platform. Full docs for the standalone product live on the <a href=\"https://www.hanko.io/passkey-api\" target=\"_blank\" rel=\"nofollow\">Hanko Passkey API page</a>.</p>\n<h2 id=\"licensing-apache-20-vs-agpl-v3\" style=\"position:relative;\"><a href=\"#licensing-apache-20-vs-agpl-v3\" aria-label=\"licensing apache 20 vs agpl v3 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Licensing: Apache 2.0 vs. AGPL v3</h2>\n<p>Licensing is where the two projects diverge most, and it deserves more than a one-line table entry.</p>\n<p>SuperTokens ships under <strong>Apache 2.0</strong>, a permissive license. Building on top of it, modifying it, and deploying it as a closed-source service carries no obligation to release source code.</p>\n<p>Hanko splits its licensing, and the split is the important part. The <strong>backend API is AGPL v3</strong>, while <strong>Hanko Elements and the JavaScript SDKs are MIT-licensed</strong>. The MIT components are the pieces that get embedded in the frontend, so those carry no copyleft at all. The AGPL v3 obligation attaches only to the self-hosted backend: modifying that backend and running it as a network service triggers the network copyleft clause, which requires publishing the modifications. A team that self-hosts Hanko unmodified is unaffected. A team that forks and alters the backend for a networked service takes on the AGPL obligation. Hanko Cloud sidesteps the question entirely, at the cost of the infrastructure dependency that self-hosting was meant to avoid.</p>\n<p>For organizations with a strict policy against copyleft anywhere in the stack, Apache 2.0 is the safer default and removes the analysis entirely. For everyone else, the practical exposure comes down to a single question: does the backend get modified or not.</p>\n<h2 id=\"b2b-features-gap\" style=\"position:relative;\"><a href=\"#b2b-features-gap\" aria-label=\"b2b features gap permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>B2B Features Gap</h2>\n<p>For B2B SaaS, the balance tips toward SuperTokens.</p>\n<p><strong>Multi-tenancy</strong> is first-class in SuperTokens: isolated user pools per tenant, per-tenant login methods and SSO, data isolation between tenants, all driven through the API. Role-based access control is built in through its user-roles recipe. Session security is the standout feature, with rotating refresh tokens and token theft detection modeled on the OAuth 2.0 specification, an area where most authentication providers stop at basic session handling.</p>\n<p>Hanko’s multi-tenancy is still developing and is not yet comparable for a platform that needs to onboard many isolated business customers. Both products support SAML natively. SuperTokens has a <a href=\"https://supertokens.com/docs/authentication/enterprise/saml\" target=\"_blank\" rel=\"nofollow\">first-party SAML recipe</a> (Core 12.0+, Node.js and Python SDKs, listed as a paid feature in its docs), and its older SAML Jackson (BoxyHQ) route is now documented as legacy. Hanko supports SAML on its Pro plan as a $49/month per-connection add-on. Neither product ships native SCIM. SuperTokens’ own guidance is to build SCIM endpoints on top of it, and Hanko has no SCIM story at present.</p>\n<p>SuperTokens is also highly customizable. Its override system lets you modify any backend or frontend function, such as sign-up, sign-in, or session creation, directly in your own code, without routing logic through webhooks. Hanko typically extends behavior via webhooks, which adds a network hop and an external endpoint to maintain, and on Hanko Cloud webhooks are only available on the paid Pro plan, not the free Starter tier.</p>\n<p>The takeaway is clean: SuperTokens is the stronger fit for multi-tenant B2B SaaS, and Hanko is aimed squarely at B2C passwordless-first consumer apps.</p>\n<h2 id=\"pricing\" style=\"position:relative;\"><a href=\"#pricing\" aria-label=\"pricing permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Pricing</h2>\n<p>The figures below are estimates for illustration, not vendor quotes. Both providers price the managed cloud per monthly active user above a free tier, and both may layer add-ons or a base subscription fee on top, so treat these as directional.</p>\n<table>\n<thead>\n<tr>\n<th><strong>MAU scale</strong></th>\n<th><strong>SuperTokens Cloud</strong></th>\n<th><strong>Hanko Cloud</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>5,000</td>\n<td>Free</td>\n<td>Free</td>\n</tr>\n<tr>\n<td>10,000</td>\n<td>~$100/mo</td>\n<td>Free</td>\n</tr>\n<tr>\n<td>50,000</td>\n<td>~$900/mo</td>\n<td>~$400/mo</td>\n</tr>\n<tr>\n<td>100,000</td>\n<td>~$1,900/mo</td>\n<td>~$900/mo</td>\n</tr>\n<tr>\n<td>500,000</td>\n<td>~$9,900/mo</td>\n<td>~$4,900/mo</td>\n</tr>\n</tbody>\n</table>\n<p>SuperTokens cloud is free under 5,000 MAU, then roughly $0.02 per MAU beyond that. Hanko cloud is free under 10,000 MAU, then roughly $0.01 per MAU, half the per-user rate at every paid tier. SuperTokens prices some capabilities, notably MFA and account linking, as paid add-ons, so a realistic invoice can sit above the raw per-MAU line. Hanko’s Pro plan may carry a base subscription fee on top of the per-MAU rate, which matters most at low volumes where the fixed cost dominates.</p>\n<p>The number that reshapes the comparison for early-stage teams is Hanko’s <strong>Startup Program</strong>: up to 1 million MAU free for qualifying startups, in place until the company reaches roughly $500k in ARR or raises more than $1 million in funding. For a pre-revenue consumer app, that keeps the authentication cost line at zero well past the point where most providers begin charging. It is worth putting on the table early rather than treating it as fine print, because it changes the total cost picture materially for the exact stage of company Hanko targets. Details sit on the <a href=\"https://www.hanko.io/startup-plan\" target=\"_blank\" rel=\"nofollow\">Hanko Startup Program page</a>.</p>\n<p>Self-hosting is free on both sides. There, cost is not the differentiator at all; licensing is.</p>\n<h2 id=\"pre-built-ui\" style=\"position:relative;\"><a href=\"#pre-built-ui\" aria-label=\"pre built ui permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Pre-Built UI</h2>\n<p>SuperTokens ships pre-built UI components that are React-first and tightly coupled to its backend SDK, which handles the full authentication flow with minimal wiring. SDKs exist for other frontends, but the drop-in component experience is strongest in React and Next.js, where a working login flow comes together in minutes.</p>\n<p>Hanko takes a framework-agnostic route. <strong>Hanko Elements</strong> are native custom elements (Web Components), so they drop into Vue, Svelte, plain HTML, or React without a framework-specific adapter. For any frontend that is not React, that difference removes a genuine integration hurdle rather than a cosmetic one.</p>\n<h2 id=\"when-to-choose-supertokens\" style=\"position:relative;\"><a href=\"#when-to-choose-supertokens\" aria-label=\"when to choose supertokens permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>When to Choose SuperTokens</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/a878e/Supertokens.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 47.46835443037975%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAACBklEQVQozyXQSW/TQABAYQsJGtvjscez2eM1aZq0NF3pvlBU6KGtQBTEcuFY/v8/eAg4PH33F+1MHW8WNQerTYa+R1uPsoHctOgww7ZzfL/EhHVcO8fWI77uqOoW62qs85Ra8/z8m/v7e6KNRjF4ReMMzjoKUyN0R2oGZLWBm+3Tj68ZF4fMlgeEekbtWipbo5Ulk5pUFLx8NWFtEhO1VhJsgTeGUluE8kyk50ViWd8+4fDijsXqlMPjG06Or9nf3icUhlY7gq0xuiFTAVFUpFITOSUwSqJUSZZr1kSJqads7Z1yfPmep2+/uHv4wuPjEz+//uD7x898OLtkZ5zT2QbvRgo7I9UDaRGIpEjJRIbIcmJRsCYUynXsHl6wvXfCau+Yq6t3vD2/5PbsnIfLKz5d33A032R0PbVfp6yWCLdgojqiOI5JkpRUSJJUkmQlE1GSZJqqaujbjlnXsTl0rIaOnTaw5RwLF5hWI5WfofwmstrCNAuiJInJ0hQlJUrmFLmiUOafNkvpm8DYBNb7liHU2DRmqkvmPtDYBmN6hJ5iuhUHR7dEMk2xuaDVkqbMCVrhyxL3N5UTjGLR1yz7mtGVdDqnN4pQanRhyHJPUgQKN9IOCyItU3qdsXQ5Gy5n7goGo2hMSesN02DYmXfszls2WsPgS7zKyYUgSQRx8n9TIkrWYskf7I3uCELTsPwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Supertokens\"\n        title=\"Supertokens\"\n        src=\"/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/f058b/Supertokens.png\"\n        srcset=\"/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/c26ae/Supertokens.png 158w,\n/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/6bdcf/Supertokens.png 315w,\n/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/f058b/Supertokens.png 630w,\n/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/40601/Supertokens.png 945w,\n/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/78612/Supertokens.png 1260w,\n/static/b64c3fc142f6f8393f4a5fab8ebb9eb3/a878e/Supertokens.png 2048w\"\n        sizes=\"(max-width: 630px) 100vw, 630px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>SuperTokens is the better choice for a B2B SaaS that needs multi-tenancy, SSO, and role-based access control under one platform. It fits teams that want a full authentication stack rather than passkeys alone, teams that need rotating refresh tokens and token theft detection, and organizations where Apache 2.0 licensing is a hard requirement.</p>\n<h2 id=\"when-to-choose-hanko\" style=\"position:relative;\"><a href=\"#when-to-choose-hanko\" aria-label=\"when to choose hanko permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>When to Choose Hanko</h2>\n<p>Hanko is the better choice when passkey-first is the core product experience, when the goal is adding passkeys to an existing authentication stack through the standalone Passkey API, and when the frontend is not React. It also fits B2C consumer apps that are cost-sensitive or early-stage, particularly any team that can qualify for the Startup Program.</p>\n<h2 id=\"bottom-line\" style=\"position:relative;\"><a href=\"#bottom-line\" aria-label=\"bottom line permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Bottom Line</h2>\n<p>The decision tracks the product, not a feature checklist. B2B with full-platform needs points to SuperTokens. A consumer app built around passwordless UX points to Hanko.</p>\n<p>The two are also not strictly either-or. A team can run SuperTokens as its core authentication platform and layer the Hanko Passkey API on top, gaining leading passkey infrastructure without leaving SuperTokens for sessions, tenants, and everything else. That combination pairs SuperTokens’ session security and B2B depth with Hanko’s passkey specialization.</p>\n<p>For teams leaning toward SuperTokens, the fastest way to evaluate it is to stand up the quickstart and wire in a session. Start with the <a href=\"https://supertokens.com/docs\" target=\"_blank\" rel=\"nofollow\">SuperTokens docs</a>.</p>","frontmatter":{"date":"August 10, 2026","updated":null,"title":"SuperTokens vs. Hanko: Full-Stack Authentication vs. Passkey-First Open Source","cover":"supertokens-vs-hanko.png","author":"Mostafa Ibrahim","description":"SuperTokens vs. Hanko: full-stack B2B authentication compared to passkey-first passwordless. Licensing, pricing, and features."},"fields":{"slug":"/supertokens-vs-hanko/"}},"site":{"siteMetadata":{"title":"SuperTokens Blog"}}},"pageContext":{"id":"438e7428-8949-5556-ad9d-fb545747fb2d","fields__slug":"/supertokens-vs-hanko/","__params":{"fields__slug":"supertokens-vs-hanko"}}},
    "staticQueryHashes": []}