hanko is a free, open source miscellaneous project written in Go and released under a custom open-source licence. It has 9,029 GitHub stars, 1,016 forks and 64 open issues, and was last pushed 8 hours ago. On this registry it ranks #9 of 25 tracked projects in Miscellaneous, with 5 head-to-head comparisons available. It gained 6 stars over the last 6 tracked days.

What is hanko?

Hanko is an open-source authentication and user management backend, written in Go, that gives teams a self-hostable or fully managed alternative to Auth0, Clerk, WorkOS and Stytch for adding passwords, passkeys, MFA, social login and enterprise SSO to an application.

What it is

Hanko is an authentication and user management solution built around a Go backend API that handles login, onboarding flow states, user and session management, and JWT issuing. It describes itself as framework-agnostic and API-first, and it is built on privacy-first principles such as data minimalism and phishing resistance. The project ships as three main building blocks: the backend authentication API, the Hanko Elements web components for onboarding, login and user profile, and the hanko-frontend-sdk client package. A quickstart reference app and a set of framework example implementations live in the same repository.

The concrete problem it solves is replacing a paid identity vendor in the CIAM (customer identity and access management) layer of an application. Instead of wiring an application to a commercial auth service, a team can run the Hanko backend itself, or use Hanko Cloud as a managed backend, and connect its own frontend through the provided web components or SDK. It sits in the Go ecosystem on the server side, with npm-distributed frontend packages, and covers the authentication methods that would otherwise require several separate integrations: passwords and passcodes, passkeys and FIDO2, TOTP and security-key MFA, OAuth social sign-in, SAML enterprise SSO, and custom OIDC/OAuth connections.

Key capabilities

  • Passwordless and password-based sign-in, including passkeys, passcodes, passwords, and passkey-only configurations.
  • Multi-factor authentication through TOTP and security keys, with 2FA listed as a core topic.
  • OAuth SSO with providers such as Apple, Google and GitHub, plus custom OIDC/OAuth connections.
  • SAML Enterprise SSO for business customers.
  • Hanko Elements, published as @teamhanko/hanko-elements, providing web components for onboarding, login and user profile that are customizable with CSS.
  • A JavaScript client package, @teamhanko/hanko-frontend-sdk, for calling the API directly.
  • Server-side sessions with remote session revocation, JWT issuing, webhooks, and i18n with custom translations.
  • Configurable flexibility such as passkey-only, OAuth-only, and user-deletable passwords.

Who uses it and how

  • Product teams replacing a hosted identity provider with an open-source backend they can run themselves, using the backend directory in the repository as the deployment entry point.
  • Teams that prefer not to operate infrastructure, using Hanko Cloud as the managed backend while keeping the same API and web components.
  • Frontend developers who want a drop-in login and profile experience, integrating @teamhanko/hanko-elements web components rather than building custom authentication UI.
  • Teams building custom frontends against the API directly, relying on the documented onboarding and authentication flow states via @teamhanko/hanko-frontend-sdk.
  • Evaluators and integrators who want to see the experience first, using the quickstart app, the framework examples in frontend/examples, the live example at example.hanko.io, or passkeys.io.

Getting started

The README points to two paths: run the project locally either bare metal, following the backend README to get it running for your own project, or with Docker. A hosted backend is available through Hanko Cloud at cloud.hanko.io, and the quickstart app provides a reference implementation of the full login experience.

How it compares

Hanko positions itself directly as an open-source alternative to Auth0, Clerk, WorkOS and Stytch, which are proprietary, vendor-hosted identity services. The difference the facts support is deployment and control: Hanko is available for self-hosting as well as as a fully managed service on Hanko Cloud, so a team can keep authentication data in its own infrastructure instead of a vendor's. Its privacy-first principles, including data minimalism, are stated as design goals rather than add-ons, and the cost model of self-hosting is therefore a matter of running the backend rather than paying per-user identity pricing.

When to use it — and when not to

Choose Hanko when the goal is a self-hostable or managed authentication backend for web applications that need passkeys, MFA, OAuth and SAML SSO behind one API and a reusable web component layer; a self-hoster must be prepared to operate the Go backend themselves, which is the trade-off for keeping authentication data in-house. It is a poor fit today for teams that need Organizations, Roles and Permissions, which are marked as in progress rather than shipped, or that need iOS, Android, React Native or Flutter SDKs, which are listed as planned. Two further caveats are visible in the facts: the licence is reported as NOASSERTION rather than a clear named licence, and the README excerpt provided is truncated, so the getting-started detail is thinner than the feature set implies.

project readme (upstream, from github) — read inline


Test Status Build Status Go Report Card GoDoc npm (scoped) npm (scoped)

About Hanko

Hanko is an open source authentication and user management solution that is easy to integrate, framework-agnostic, and built on privacy-first principles like data minimalism and phishing resistance.

  • Supports all modern authentication methods: passwords, MFA, passkeys, social logins, and SAML SSO
  • Flexible configuration options, including passkey-only, OAuth-only, and user-deletable passwords
  • Easy integration with Hanko Elements web components
  • A robust API that handles all authentication and onboarding flow states, enabling fast, reliable custom frontend implementations
  • API-first, lightweight, cloud-native

Available for self-hosting and as a fully managed service on Hanko Cloud.

Features

To follow the development of this project, watch our releases, leave a star, sign up to our Product News or join our Discord Community. Here's a brief overview of Hanko's current and upcoming features:

Status Feature
Email / username identifiers
Passwords, passcodes, passkeys
Hanko Elements web components
OAuth SSO (Sign in with Apple/Google/GitHub and more)
i18n & custom translations
SAML Enterprise SSO
Webhooks
Server-side sessions & remote session revocation
MFA (TOTP, security keys)
Custom OIDC/OAuth connections
JS SDK
⚙️ Organizations, Roles, Permissions
`` web component
iOS, Android, React Native, Flutter SDKs

Visit our Roadmap for more information on upcoming features.

Contact us

Schedule a demo with the team. Learn how you can built state-of-the-art authentication for your apps effortlessly with Hanko.

Book us with Cal.com

Architecture

The main building blocks of the Hanko project are

  • backend - Scalable, robust, and lightweight authentication API for passwords, passkeys, email passcodes, OAuth SSO, user and session management, and JWT issuing
  • hanko-elements - Web components made for the Hanko API that provide onboarding, login, and user profile functionality and are customizable with CSS
  • hanko-frontend-sdk - A client package for using the Hanko API

The remainder of the repository consists of:

Getting started

  1. Try our hosted live example and our companion page passkeys.io or use the quickstart app to get a feel for the user experience provided by an application that leverages the Hanko backend API and our custom web component
  2. To run the project locally, there are two options available:
    • Bare metal:
      • Head over to the backend section to learn how to get it up and running for your own project. Use Hanko Cloud for a hosted backend.
    • Docker:
      • If you prefer to use Docker to run the project locally, please visit the Run the quickstart for information on how to run the project. This will create everything, including frontend and backend components.
        • If you wish to keep only the backend components, you can modify the quickstart.yaml to remove the unnecessary services. To make changes to the configuration to meet your needs, modify config.yaml.
  3. Then, integrate hanko-elements – we provide example applications and guides for your favourite frontend framework in the official documentation

If you want to use the Hanko backend API but prefer to build your own UI, you can still make use of the hanko-frontend-sdk. It forms the basis of our web components, and the client it provides handles communication with the Hanko backend API and saves you the time of rolling your own.

Community

Questions, bugs, ideas

If you have any questions or issues, please check this project's Q&A section in discussions and the open issues. Feel free to comment on existing issues or create a new issue if you encounter any bugs or have a feature request. For yet unanswered questions, feedback, or new ideas, please open a new discussion.

Discord community & X

We invite you to join our growing Discord Community if you want to get the latest updates on passkeys, WebAuthn, and this project or if you just want to chat with us. You can also follow us on X.

Licenses

hanko-elements and hanko-frontend-sdk are licensed under the MIT License. Everything else in this repository, including hanko backend, is licensed under the AGPL-3.0. Non-Copyleft commercial licensing is available on request.

Frequently asked questions

Is hanko free to use?

hanko is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does hanko do?

Modern authentication, on your terms. Open source alternative to Auth0, Clerk, WorkOS, Stytch.

What is hanko written in?

hanko is primarily written in Go. Its source is publicly available at https://github.com/teamhanko/hanko, and it has 9,029 GitHub stars.