Quick Verdict
I’ve spent the last three weeks ripping passwords out of a client’s internal app and testing every passwordless vendor that would give me a trial key. Most of them work. Some of them are expensive nonsense. If you want the short version: Hanko if you’re a dev who wants to move fast, Auth0 if your company has a compliance officer who scares you, and honestly just use passkeys directly with Corbado if you’re building consumer-facing and hate yourself a little less.
Hanko ***** (5/5) — best for devs who hate sales calls Corbado **** (4/5) — best passkey SDK, pricey at scale Auth0 ***** (4.5/5) — best if you enjoy enterprise paperwork Stytch **** (4/5) — slick, but the lock-in is real Descope *** (3/5) — decent, weird docs FusionAuth **** (4/5) — self-hosted and free, if that’s your thing MojoAuth ** (2/5) — cheap, and it shows
The night I locked myself out of my own staging environment
True story. Back in February I was migrating a client’s auth from a homegrown JWT nightmare to something sane. It was 11pm, I was on my third cold brew, and I pushed a config change that rotated the signing key without updating the environment variable on staging. Locked out. Of everything. Including the admin panel I’d built specifically so I could never get locked out.
I drove to the office at half past midnight in sweatpants to SSH in manually. My fob didn’t work because the building manager had changed the door codes the week before and "emailed everyone." I sat in the parking lot waiting for security. That was the night I decided passwords were a personal insult.
So here’s what I’ve actually used since.
Hanko
Hanko is the one I keep coming back to. Docs that read like a human wrote them. Passkey-first from day one, plus magic links and email OTP for the users who still have a phone from 2014. The self-hosted option is genuinely free, which is rare enough that I keep refreshing the pricing page to make sure I’m not misreading it.
The bad part? The dashboard is sparse. Like, "did I load the right page" sparse. I spent twenty minutes thinking my project hadn’t saved because the UI doesn’t celebrate anything. Not even a toast notification. It just… sits there. Also their community Slack is quiet enough that you can hear crickets, so if you hit a bug you’re mostly on your own.
Corbado
Corbado does passkeys better than anyone right now, and their docs are the only ones I’ve read end-to-end without skimming. The component-based approach means you can drop in a passkey flow in an afternoon.
But — and I say this with love — the pricing makes me wince. You’re fine on the free tier and then the moment you cross a threshold the invoice looks like a car payment. Also, I emailed their sales team a question in early March and never heard back. Still waiting. The trial was great though. Sorry guys, but it was.
Auth0
Everyone knows Auth0. It’s the Volvo of identity — safe, expensive, and every enterprise procurement team has already approved it. Setup is boring in the best way. Passkeys, WebAuthn, SMS, email, all the boxes ticked. The universal login page looks decent out of the box.
What I hate: the pricing model is designed by someone who enjoys watching founders cry. Auth0 costs like $23/mo for the base tier but the moment you’re doing anything real you’re talking hundreds, and their enterprise quote process is a series of phone calls where someone says "let’s circle back." Also their docs have a habit of linking to docs that link back to the page you started on. My colleague Jen spent an entire afternoon in that loop. She’s fine now.
Stytch
Stytch is the cool one. Nice API, great DX, magic links that actually arrive in under ten seconds. I got a demo working in like forty minutes.
Then I read the fine print on their pricing page and started sweating. It’s cheap to start, but the moment you’re storing users in their vault the per-MAU math gets spicy. And honestly the lock-in is real — migrating users out of Stytch is not a weekend project. I also have a personal grudge: their onboarding email sequence includes one titled "Ready to unlock your growth?" which I’m pretty sure violates several of my own personal rules about the word "unlock." Petty? Yes.
Descope
Descope does visual flow-building really well, which is great if you have a PM who likes to touch things. Passkeys, biometrics, TOTP, magic links, all there.
The docs, though. Someone needs to take the writer out for coffee and ask them to explain what they mean. I found a "quickstart" that assumed I already had an OAuth provider configured and never mentioned it. Three support tickets later I figured it out. Also their free tier caps out at a number so low I hit it during a demo to a client. Cool cool cool.
FusionAuth
Self-hosted, free for most use cases, and it just runs. If you have a homelab and any opinions about data sovereignty, FusionAuth is your guy. I have it running on a $6 DigitalOcean droplet for a side project.
Downside: you’re on your own for infrastructure. Upgrades have bitten me twice — once I broke SAML for three hours because I didn’t read the changelog carefully enough. And the admin UI looks like it was designed in 2014 and everyone agreed not to mention it.
MojoAuth
MojoAuth is cheap. That’s the pitch. Passwordless, magic links, done.
The problem is it feels like a beta that escaped. Their SDK for React had a bug where the redirect would loop on Safari — I found it myself, filed a ticket, and got a "we’ll look into it" that I’m pretty sure was a polite no. Community support is basically nonexistent. I’d use it for a hobby project, not a client’s. Honestly, the worst part is how boringly unreliable it is in exactly the ways you’d expect from a $9/mo tool.
A quick comparison since I hate tables
Hanko is basically free unless you need cloud, which is cute. Corbado wants serious money and you’re mostly paying for the passkey SDK quality. Auth0’s real cost isn’t the plan — it’s the two weeks of onboarding calls. Stytch costs more than you think. Descope is fine. FusionAuth is free but you pay in blood, sweat, and Saturday mornings.
Also, unrelated tangent: I ordered a cortado at a café yesterday and the barista asked if I meant "a small latte." I did not. I left. Anyway, back to auth.
Pros & Cons
Hanko
- Passkey-first, magic links, OTP in one place
- Self-host is actually free
- Dashboard so quiet you’ll think it’s broken
- Community is small enough to hear a pin drop
Corbado
- Best-in-class passkey implementation
- Docs you can actually read
- Pricing jumps fast
- Sales team never replied to my email
Auth0
- Enterprise-grade, auditors already approve it
- Boring in a good way
- Pricing punishes success
- Docs sometimes loop back to themselves
Stytch
- Great API, fast magic links
- Excellent DX
- Real lock-in once users are in the vault
- Per-MAU pricing gets spicy
Descope
- Nice visual flow builder
- Broad method support
- Docs assume too much
- Free tier too small for demos
FusionAuth
- Free, self-hosted, runs anywhere
- No vendor lock-in
- You’re your own ops team
- UI stuck in 2014
MojoAuth
- Cheap
- Simple to start
- Buggy SDKs (Safari redirect loop)
- Support basically doesn’t exist
Pricing at a Glance
| Tool | Starting Price | What You Actually Get | |——|—————|———————-| | Hanko | Free self-host / ~$15 cloud | Real passkeys without the sales pitch | | Corbado | Free tier / ~$79+ | Great SDK, empty wallet | | Auth0 | Free tier / ~$23+ but escalates fast | Enterprise logo, enterprise invoices | | Stytch | Free tier / ~$99+ | Cool API, uncool per-MAU math | | Descope | Free tier / ~$49+ | Flow builder, tiny free cap | | FusionAuth | Free self-host / ~$125+ premium | Software, plus your own DevOps time | | MojoAuth | ~$9/mo | Cheap and cheerful-ish |
FAQ
Q: Are passkeys actually passwordless or do they still need a fallback? A: You need a fallback. Anyone who tells you otherwise has never shipped consumer software. Email OTP or magic link is fine for the 5% of users on a 2016 Android.
Q: Which is best for a solo dev or small team? A: Hanko self-hosted. Free, passkey-first, docs are fine. Corbado if you have budget and want the SDK.
Q: Is Auth0 worth the price for a startup? A: Not in year one. It’s worth it when the enterprise customer’s security team asks "who’s your identity provider" and Auth0 makes them nod.
Q: Can I migrate off Stytch later? A: Yes, technically. Practically, you’ll schedule it twice and cancel it twice.
I’m running Hanko self-hosted on a Hetzner box for the client project and a side SaaS, and I keep a Corbado trial key around for when I want to see how passkeys should feel. The Hetzner box cost me €5. The peace of mind is worth approximately infinity more than that.


🖼️ Looking to upscale your images?
Try our free AI image upscaler — upload any image and get a 4K high-resolution version instantly. No signup required.
Upscale Your Images Free →Free 2K preview · 4K download just $2.99 · One-time payment