This is not a fair fight in either direction, so let us be precise about the shape of it. Clerk does one thing and does it very well. Pithy does auth as one capability of a kit, and the question is not which is better at identity — it is whether identity should be a separate service you integrate, or a part of the backend you already deploy.
Choose Clerk
When identity is the thing you want to stop thinking about.
Their components are genuinely the best in the category, their organizations and B2B primitives are ahead of anything here, and their dashboard is a product rather than a page. If your app is otherwise simple and you want sign-in solved this afternoon by someone else, buy theirs.
Choose Pithy
When auth is one of six things your backend has to do.
The point is not that Pithy's auth beats Clerk's. It is that it is already inside the Worker you deploy, against the D1 you already own, sharing a session with your payments, your storage quotas and your audit trail — so there is no user table to reconcile, no webhook to keep in sync, and no second bill.
On this capability alone
| Feature | Clerk | Pithy |
|---|---|---|
Identity | ||
| Passwordless sign-in Clerk: email links, codes, passkeys and social Pithy: magic link, email OTP, Google and Apple | Yes | Yes |
| Password sign-in Clerk: supported, with breach detection Pithy: never, and that is a stance rather than a gap — there is no password database to leak or phish | Yes | No |
| Drop-in UI components Clerk: polished, themeable, genuinely excellent Pithy: React screens scaffolded into your app, which you then own and edit | Yes | Partial |
| Organizations, roles and invitations Clerk: a mature B2B feature set Pithy: not in the kit; the dashboard has its own, for itself | Yes | No |
| Enterprise SSO and SAML Clerk: a core part of their enterprise offering Pithy: not offered | Yes | No |
| Mobile-first bearer tokens Pithy: a short-lived JWT verified locally against published JWKS, so no request costs a database hit | Yes | Yes |
| Your users live in your database Clerk: in Clerk, synchronized to yours by webhook Pithy: in the D1 your Worker already queries — a join, not an integration | No | Yes |
| Sessions shared with payments and storage Clerk: you wire the identity into each other service yourself Pithy: one verified caller reaches entitlements, quotas and the audit trail without a lookup | No | Yes |
| No per-active-user pricing Clerk: the standard model for the category Pithy: Cloudflare bills what your Worker runs; there is no per-user line | No | Yes |
The saffron tick marks where Pithy leads — not that the other column is absent. Every claim about Clerk was checked against their own documentation on 2026-08-25; both products change, and this page is a snapshot rather than a maintained contract.
Where Clerk wins
Clerk's sign-in, user profile and organization switcher are polished in a way scaffolded React is not, and they stay polished as they add to them. If your product's identity surface is a real part of its design, that is worth paying for.
Organizations, roles, invitations and domain-based joins are a category of work Pithy does not attempt. If you sell to teams, you would be building all of it.
SAML and OIDC connections per customer, with a UI for the customer's own admin. Pithy has no answer here, and pretending a passwordless-only kit does would be dishonest.
A hosted identity provider has a status page, a security team and an audit history. Yours is a Worker you deployed — which is the trade, and it is a real one.
If auth is the only backend problem you have, buy Clerk. If it is one of several — and you were going to deploy a Worker with a database anyway — then adding a second vendor to hold your user table is a cost with no matching benefit, and that is the whole argument.