Clerk's Free MAU Wall: Detecting It and Pricing the Way Out (2026)
Clerk moved its free wall to 50,000 retained users at $0.02 overage. How to detect the wall approaching, and what leaving actually costs.
If you run a hobby project on Clerk, the number that keeps you up at night is 10,000 — the free MAU limit everyone quotes in blog posts. Except that number is stale. Sometime in 2026, Clerk restructured its pricing: the billing unit is no longer "Monthly Active User" but Monthly Retained User (MRU), and the free Hobby tier now includes 50,000 MRUs per app [verified on clerk.com/pricing, Nov 2026]. That changes the whole calculus: the 2,500–10,000 MAU project most indie devs worry about is nowhere near the wall. The wall moved — but it still exists, the tier above it is metered per user, and crossing it costs real money fast. This article is about finding the wall before it finds you, and what the exits cost.
TL;DR
- Clerk's free Hobby tier is now 50,000 MRUs per app, not 10,000 MAUs. An MRU only counts users who return 24+ hours after signup ("First Day Free"), so MRU is typically lower than raw MAU.
- The first bill is not small: exceeding 50,000 MRUs forces you to Pro ($25/mo, or $20/mo annual), and from there every MRU in the 50,001–100,000 band costs $0.02/mo each — that's $1,000/mo on top of the base at 100K MRUs.
- The Hobby tier has a hidden cost side-channel: fixed 7-day session lifetime, no MFA, no passkeys, and "Secured by Clerk" branding. Many apps hit feature walls long before the user wall.
- Detection: track MRU in the Clerk Dashboard usage view; crossing 50K comes with a one-month grace period before hard enforcement. There is no published per-MRU billing API — the dashboard and grace-period email are the signals.
- Clerk has no self-hosting option. It is closed-source SaaS. The escape hatch is data export (full export is offered on all plans) plus a rewrite onto Auth.js, Better Auth, Supabase Auth, or Firebase Auth.
- At 50K MAU, alternatives range from $0 (Firebase Auth, Supabase Auth free tier, Auth.js + own DB) to Clerk Pro's $25 — but headline price is not migration cost. Budget 1–4 weeks of rewrite depending on the target.
The wall, redefined: MRU vs MAU
First, what actually changed. Clerk's pricing page now bills on Monthly Retained Users: a user counts if they visit your app in a given month at least one day after signing up. The first 24 hours are free — a signup that never returns never bills. This is deliberately different from MAU, which counts anyone who authenticates in the month.
The practical consequence: raw MAU overstates your exposed bill. An app with 60,000 MAUs, half of them one-time signups who never came back, might expose only ~30,000 MRUs — still free. If your dashboard shows MAU-like growth of 2,500–10,000, your MRU exposure is smaller still. The viral-spike scenario is softened by the same mechanism: drive-by signups from a producthunt moment don't bill unless they return.
But the wall itself is real, and it's strict in one direction only: the 50,000-MRU ceiling on Hobby is a hard line, not a soft meter. Exceed it and you enter a one-month grace period, after which you must be on Pro [verified: clerk.com/pricing FAQ]. There is no pay-per-event option below Pro.
How the pricing cascades (users and seats are two different ladders)
Clerk's per-user cascade only starts on Pro, and it's banded, not flat:
MRU bands (Pro and above, per app) [verified: clerk.com/pricing]
first 50,000 -> included
50,001-100,000 -> $0.02 per MRU / mo
100,001-1,000,000 -> $0.018 per MRU / mo
1,000,001-10M -> $0.015 per MRU / mo
10,000,001+ -> $0.012 per MRU / mo
Note the bands are marginal — the $0.02 rate applies only to MRUs 50,001–100,000, not to your whole base. That's the standard tiered-utility model, and it softens most escalations people fear.
There is a second, weaker ladder: dashboard seats (your team, not your users). Hobby allows up to 3 seats, Pro also caps at 3, Business includes 10 and charges $20/mo for each additional. Seat cost is trivial compared to MRU overage, and it's the only "per-seat" element in Clerk's pricing — the user axis is entirely MRU-based.
Worked arithmetic at three checkpoints (Pro base $25/mo, monthly billing; annual billing drops the base to $20/mo):
| MRU/month | Math | Monthly bill |
|---|---|---|
| 10,000 | Hobby (free tier covers 50K) | $0 |
| 25,000 | Hobby (free tier covers 50K) | $0 |
| 50,000 | Hobby ceiling exactly reached | $0 (one MRU more triggers upgrade) |
| 65,000 | $25 + 15,000 × $0.02 | $25 + $300 = $325 |
| 100,000 | $25 + 50,000 × $0.02 | $25 + $1,000 = $1,025 |
| 250,000 | $25 + $1,000 + 150,000 × $0.018 | $25 + $1,000 + $2,700 = $3,725 |
| 500,000 | $25 + $1,000 + 400,000 × $0.018 | $25 + $1,000 + $7,200 = $8,225 |
The steepest cliff is not the $25 — it's the first MRU past 50,000. At 50,001 MRUs your bill jumps from $0 to $25 plus a meter that reads $0.02 per user. Going from 50K to 65K MRUs costs $325/mo — a 13× jump for a 30% user increase. For an ad-supported or free consumer app with no per-user revenue, that's the moment Clerk's model stops matching your economics. Clerk's own pricing FAQ concedes exactly this: B2C low-ARPU apps should "run the unit economics first" [verified: clerk.com/pricing].
Add-on ladders stack on top and bite earlier than you'd expect: Directory Sync connections beyond the first will bill $75/mo each starting January 1, 2027; B2B Authentication beyond 100 retained organizations is $1/MRO/mo with a $100/mo add-on floor; SMS verification is $0.01/SMS in US/CA; Protect abuse checks past 10,000/mo are $0.002 each. None of these apply to a hobby B2C app, but a side project that added "sign in with SSO" or orgs for one customer can wake up in a paid lane without ever crossing 50K MRUs.
Detecting you're approaching the wall
Three signals, in order of lead time:
-
Dashboard MRU tracking. The Clerk Dashboard tracks your user base and activity per application; MRU is the number that maps to billing. Watch the retained trend, not total signups — total users can be 5× your billable MRU. [unverified: exact dashboard menu labels; Clerk's docs navigation changes frequently.]
-
The grace period email. Crossing 50,000 MRUs does not hard-stop your app: you get a one-month grace period while you upgrade [verified: clerk.com/pricing FAQ]. So worst case, the wall announces itself — but at $0.02/MRU, a single month of drift before you notice is a budget line you didn't plan.
-
Feature walls fire first. This is the underrated early warning. On Hobby you get a fixed 7-day session lifetime — every single user is force-logged-out weekly [verified: clerk.com/pricing; widely reported by users since 2024]. Passkeys and MFA are Pro-only. "Secured by Clerk" branding stays. If you're feeling pressure to upgrade for MFA or sessions, you're already evaluating the wall — price the∛ exit at the same time.
How not to detect it: there is no published MRU billing endpoint you can poll from your own scripts [unverified — no billing-usage API appears in pricing/docs as of Nov 2026]. Your options are dashboard readings, the grace-period notification, and (if you want your own early-warning system) counting returning logins on your side — but that duplicates Clerk's MRU definition, and close enough is good enough here.
Self-hosting: the door that isn't there
The obvious "just self-host Clerk" move does not exist. Clerk is closed-source SaaS only — there is no self-hostable Backend API, no downloadable stack, no BYO-database mode [verified: no self-hosting option on clerk.com or in its docs; cited "No" for self-hosting in third-party auth comparisons, Nov 2026]. An older self-hosted-backend initiative does not appear as a current offering [unverified: may have been enterprise-scoped or discontinued].
What Clerk does offer is a clean exit: full data exports on every plan ("no questions asked"), available self-serve from the dashboard [verified: clerk.com/pricing]. This is unusually developer-friendly for a closed SaaS, and it means migration is a code problem, not a data-hostage problem. Password hash portability still needs checking per target — Clerk exports user records, but whether your target stack can ingest its hash format for zero-password-reset migration is the make-or-break detail. If not, the fallback is email-based re-verification on first login, which loses some users with dead mailboxes.
What the exits cost at 50K MAU
Assume you're at the wall: ~50,000 monthly users. Here's the landscape, with migration effort as its own column because that's the real cost:
| Option | Cost at ~50K MAU/mo | What you get / give up | Migration effort |
|---|---|---|---|
| Stay: Clerk Hobby | $0 | 50K MRU ceiling; 7-day sessions, no MFA/passkeys, branding | None — but you've outgrown it |
| Stay: Clerk Pro | $25 + $0.02/MRU past 50K → ~$25–1,025 as you grow | Full features; bill scales linearly with users | None |
| Supabase Auth | $0 — Free plan includes 50,000 MAU [verified: supabase.com/pricing]; above that, Pro $25/mo includes 100K, then $0.00325/MAU | Auth lives in your Postgres; passwordless/MFA included | Low–medium: migrate user rows to Supabase Postgres; rewrite provider wiring and session handling; email templates set up manually |
| Firebase Auth | $0 — Tier-1 auth free to 50K MAU on both plans; past that ~$0.0055/MAU (50K→100K) [verified: firebase.google.com/pricing] | Battle-tested, generous free tier; Google lock-in; weaker SSR story for Next.js | Medium: user export/import incl. hash import; new session/token model; your UI or Firebase UI |
| Auth.js / Better Auth (self-hosted) | $0 license + your DB (~$0–25/mo small Postgres) | No meter, no ceiling, MIT/Apache-style; you own uptime, patches, security | High: full rebuild of sign-up/in UI, email flows, social OAuth config; password-hash import if format matches |
| WorkOS AuthKit | $0 — AuthKit free up to 1M MAU (2026 policy) [unverified: third-party-cited policy, not checked on workos.com] | Hosted UI, generous ceiling while it lasts | Medium: new provider wiring; enterprise SSO story strong |
Two honest footnotes on that table. First, the $0 options are only $0 while you're small: Supabase's Free plan can pause after a week of inactivity, and Firebase starts metering hard at exactly the same 50K mark Clerk does — the difference is rate ($0.0055 vs $0.02) more than structure. Second, the self-hosted rows hide the biggest line item: with Auth.js or Better Auth you become the auth team — password resets, session revocation, OAuth app renewals, security patches. For a solo hobby project that's evenings you currently spend on the actual product. As a rough rule of thumb often used in auth TCO comparisons, self-hosted auth costs an学会 equivalent of 0.1–0.3 FTE of engineering time at scale — invisible on an invoice, very visible on a calendar.
The decision in one line
For a profitable per-user product, Clerk Pro's $0.02/MRU is roughly $240/user/year at the worst band — if your user pays you more than that, staying costs nothing to think about. For a free/ad-funded project (blogs, communities, tools — the typical hobby trajectory past 50K), the same growth that should be your victory is Clerk's invoice trigger, and the meters alternate between $0.02 and $0.018 all the way up. Supabase Auth or Firebase at the same MAU reads ~free to ~$275/mo at 100K. The math, not the developer experience, picks the winner at this size.
Wrap-up
- The wall moved and redefined itself: 10,000 MAU → 50,000 MRU (retained users only), with a one-month grace period — but the tier above it meters at $0.02/MRU, so 65K MRUs already costs $325/mo. Check your Dashboard's retained-user trend; your raw MAU overstates the billable number.
- There is no self-host escape hatch — Clerk is closed-source SaaS — but full data export on all plans keeps the exit real. Budget 1–4 weeks for a rewrite onto Supabase Auth (lowest effort per dollar), Firebase (best free ceiling above 50K), or Auth.js/Better Auth (free forever, you become the auth team).
- Price the exit while you're at 30K, not 55K: portability of password hashes and your email-flow dependencies are the two things to verify before you need them, and the Hobby tier's 7-day session / no-MFA limits are themselves reasons to plan the move early.
Sources
- Clerk Pricing — plans, MRU definition, volume pricing table (verified Nov 2026)
- Supabase Pricing — 50K MAU free, $0.00325/MAU on Pro
- Firebase Pricing — Identity Platform MAU tiers
- Logto: Firebase Authentication pricing breakdown (2026)
- Auth Provider Shootout 2026 — hosting models incl. Clerk "No" self-hosting, scenario bills
- Reddit: Clerk free tier 7-day session lifetime (user report)
- SaaSPrices: Clerk pricing change to 50K free tier