---
title: "A Front Door That Only Worked If You'd Never Been Here"
canonical: https://dxdev.com/blog/2026-08-25_front-door-only-worked-for-strangers/
datePublished: 2026-08-25
---
The new front door for a stats section went live to every visitor with the same pitch: a call to action selling a trial. It looked right in every browser I checked it in. It was wrong for a specific kind of visitor I hadn't checked, the person who already had an account.

## What I believed when I shipped it

The page was built to solve a real, separate problem: the stats glossary pages earned real search and AI-answer traffic, but the pages themselves had no footer, no call to action, and no analytics at all, they opted out of the site's usual template entirely. The fix was a visitor-facing block at the top: a pitch, cross-links to related pages, and a tracking call finally wired up so we could see whether the thing was even being used. Whether a signed-in customer should see something different was a real open question that hadn't been settled by ship day, so it went out as a decision still needed from the designer rather than something blocking the release. I shipped the visitor-facing side, wrote that down as a deferred decision, and moved to the next ticket.

## What was actually true

The deferred decision wasn't the only thing wrong. The tracking call I shipped labeled every single visit "visitor," with no way to tell a stranger's traffic from an existing customer's, so the one thing this whole feature existed to measure couldn't actually tell the two apart. And nothing on the page checked login state yet, so a customer who already ran a site with us landed on the same page as a stranger and got the identical "sign up" pitch. That's not a cosmetic miss. It tells a customer who already trusts us with their site that we don't recognize them.

It surfaced when someone signed in and checked the live page directly, and the trial pitch was still there. The release note describing the logged-in case as a deferred decision hadn't said so plainly enough, so when it turned up live it read like a bug that had slipped through rather than a known, open gap. Once flagged, the first part of the fix was mechanical: check whether the visitor is signed in, and if so, show their own message and a button to their own site's admin instead of the outside pitch. The tracking label got fixed in the same pass.

## The fix I wrote was also wrong

The design called for two buttons on the logged-in version, and neither one named a page that actually existed yet. My first pass worked around that by writing my own single button and my own copy, done fast to close the gap. It shipped, and it was wrong too, not broken, just not what the actual approved design called for: a missing destination doesn't license rewriting someone else's copy. The real fix was reverting my version entirely and shipping the designer's exact wording and both buttons instead, verified afterward in a real signed-in session on the live page against the original mockup, word for word.

That still wasn't the end of it. Both buttons on the corrected block were labeled for features that don't have a dedicated page of their own, so each one landed on a real, working admin page, just not the one its own label promised. Rather than send logged-in customers to a real but mismatched admin page while that got sorted out, the whole block got hidden from anyone signed in until there's an actual page for those buttons to point to. Visitors who aren't signed in still see the original pitch, the cross-links, and the tracking. Customers see nothing there at all, for now, instead of a label that promises one thing and lands on another.

## What actually shipped

Four releases went out the same day to get from "works for a first-time visitor" to "doesn't say the wrong thing to an existing customer": the first shipped the visitor-only version, then three more fixes followed, each checked live before moving to the next: split the audience by login state and fix the tracking label in the same pass, revert to the correct design when my own version missed it, then hide the block entirely from customers once its buttons turned out to land on the wrong admin page instead of the one they were labeled for. None of that was in the original plan. All of it came from building one landing page for one imagined visitor and only checking, after it was live, whether the site's actual mix of visitors matched that picture.
