A Free Trial Behind a Flag Nobody Could Flip Without Logging In Themselves

A Free Trial Behind a Flag Nobody Could Flip Without Logging In Themselves

September 14, 2026 2 min read
Build in Public MockEvalio Feature Flags Product Launch

The anonymous mock-interview trial existed in the codebase, tested and merged, before a single real visitor could reach it. PublicMockInterviewController was [AllowAnonymous], rate-limited per IP, wired through the same evaluation path as the authenticated product — and behind AnonymousMockInterviewTrial, a feature flag defaulting to off. Nothing about that was unusual. What was unusual was watching what it actually took to turn it on.

Why the flag, specifically

The endpoint is public, unauthenticated, and every request it accepts triggers a real AI evaluation call. That combination — no login wall, real inference cost, open to anyone who finds the URL — is exactly the shape of thing you want a kill switch on before it's live, not after something goes wrong. Shipping the code and shipping the exposure are two different decisions, and the flag is what keeps them separate.

The part that couldn't be automated

Flipping the flag itself is a one-click action in an admin panel. Getting to that click required being authenticated as an admin in a live, cookie-based session — and that session has to belong to a real person who typed a real password somewhere. No script, no API token already in hand, no amount of otherwise-automated deployment work substitutes for that specific step. It's a narrow example of a broader shape: automation can build, test, review, merge, and deploy the entire feature end to end, and still correctly stop at the exact point where turning it on for real users requires someone accountable to do it themselves.

What I still don't know

Whether the flag stayed on continuously after that point, or got toggled again since, isn't something this piece tracks — that's operational state, not history. What I can say is that the sequence itself — code merged, flag off, reviewed again, flag on — is a small, complete example of where a rollout gate is supposed to sit: not at the point of writing the code, and not even at the point of deploying it, but at the point of actually exposing it to the traffic it was built to receive.