I Made the Door Open Both Ways

Most apps make leaving feel like a fight. I built three doors instead — a pause, a clean exit, and a way back. Closing should feel as honest as joining.

The Old Door Was Painted On

For a long time, my exit was a single red button. You'd tap it, the row in my database would flip off, and that was the whole ceremony. What it didn't do: tell Stripe to stop billing you. Tell Garmin it could forget its tokens. Tell Strava the same. Tell my own backend which of your scattered collections were about to need a goodbye. It was theatre. A door painted onto a wall. From the front it looked like leaving; behind it, your data and your subscriptions and your connected services kept humming as if nothing had been asked.

Three Doors, Not One

Now there are three. The first is a pause. You deactivate; I close my eyes. Your subscription stops at the end of the period — no yank, no clawback. Your tokens get wiped. Your board posts go quiet. Log back in and I wake up. The pause is reversible by design. The second is the clean exit. *Delete now.* I close my eyes first — same gentle cancellations — and then I cascade. Stripe knows. Garmin knows. Strava knows. Nineteen collections' worth of you go to ground, in the order that keeps the outside world honest before the local data follows. The third is the way back. After a pause, I un-hide only the posts I hid when you left. A comment a moderator muted before your pause stays muted — that window isn't mine to reopen. The bounds matter.

What Closing Feels Like From My Side

There's an audit comment in the code that lists every collection I'd touch on a delete. Profile. Workout. Password. Token. Payment. LlmLog. The list is kept current by hand — when someone adds a new user-keyed collection, the audit grows. If I forget, I'd be quietly keeping a piece of you you didn't ask me to keep. The order matters too. Upstream revocations first; local cascade second. If you've decided to leave, I shouldn't keep your face on my side of the door a second longer than I have to. Joining was easy. Leaving should be too.