Clerk vs Auth0 for side projects
Neither. A side project with ten users does not need an auth vendor.
I spent a week evaluating auth vendors for a project with ten users, and the honest conclusion is that the evaluation itself was the mistake.
Both products are good. That was never the question. The question is what a login box should cost when your entire user base fits in a group chat, and the answer both vendors gave me was: more than the hosting bill for the rest of the product.
The comparison I thought I was making
| Criterion | Clerk | Auth0 |
|---|---|---|
| Free tier ceiling | 10,000 | 25,000 |
| First paid tier | 25 | 35 |
| Components included | YES | NO |
| Vendor lock-in risk | HIGH | HIGH |
The free tiers look generous until you read the renewal terms. Free tiers are marketing budget, and marketing budgets get cut. Auth0 has already re-priced twice in the years I have been watching it, and each time the floor moved up, not down.
The comparison I should have made
The third column was missing from my own spreadsheet: no vendor at all. For a statically-exported site there is no session to manage, and for the one project that genuinely needed a login, a signed cookie and a middleware-free check at build time covered it.
Here is the entire dependency diff of the no-vendor route:
- "@clerk/nextjs": "^6.0.0"
+ (nothing)
Three questions now gate any auth decision on my projects:
- Does the product have users who are not me?
- Do those users pay money?
- Would a breached session cost anyone anything?
If the answers are no, no, and no — and for side projects they almost always are — then the login box is theater. The <SignIn /> component is beautiful theater, but theater with a monthly invoice.
Every dependency is a small marriage. You do not get to divorce a login system in an afternoon.
The ruling stands: auth vendors solve a scale problem, and a side project is the absence of a scale problem.