1
0 Comments

How a single user's complaint reshaped onboarding

> "I have never found a Google/MS sync option that has worked effectively, and I'm beginning to think this one is no different. If this doesn't work, I want to back out completely."

That's a real user, day 22 of [Hetk](https://hetk.io)'s launch. I'm building it solo from Estonia.

He hit three things in one onboarding flow:

1. The wrong calendar showed up as "primary" at the sync step, even though he'd picked a different one earlier

2. Adding his own personal calendar triggered a paywall he shouldn't have hit

3. He paid anyway, and the action still failed afterward

I read his email, looked at the code, and found three separate bugs all hitting one new user at once. Each one is fixable in isolation. The problem was that fixing them in isolation would leave the original onboarding shape intact, and that shape itself was the issue.

So I rewrote it. The cheapest bug to fix is the one in a step that no longer exists.

Two things came out of onboarding entirely:

The calendar pre-selection step is gone. The wizard used to ask new users to pick which calendars they cared about, designate one as primary, and only then move on to creating a sync. Now there's no upfront calendar step.

The plan choice and credit card entry are also gone. Onboarding used to require both before you could reach the dashboard. Neither is required at signup anymore.

What the calendar step turned into: when you create your first sync, the wizard fetches calendars from the provider on demand. Searchable, grouped by account. There's no "primary" designation for the wizard to lose, because there's no designation step. You pick source and target at sync creation time, full stop.

The trial works differently now, too. Personal plan (3 sync pairs, 21 days) auto-starts at signup. No Stripe customer, no card. Card entry happens later, when one of three things triggers it: trial ending, you click upgrade, or you hit the Personal limit. That last one is a soft paywall, not a wizard block. You still review the sync pair you were trying to create. The Create button just changes to Upgrade to create. If the trial expires without payment, syncs pause, but the config sticks around. Pay later, and they resume instantly.

People sometimes ask about a free tier. At $2/mo for Personal, it would mostly cannibalize paying conversions rather than open a new channel. The no-card trial is handling acquisition for now. I'll think about it again if I reach 1,000 paying users, or if comparison sites start docking Hetk for not having one.

Two things I'd do differently next time:

I shipped without telemetry on dead-end states. Empty calendar dropdowns, paywall hits during sync creation, post-payment errors, and calendar fetches that return zero results. Any one of those firing on this user would have caught the bug before he sent the email. Wiring them up now.

I also got lucky. The user's report mapped cleanly to bugs already visible in the code. The 24-hour rewrite worked because the diagnosis was easy, not because I moved fast. Won't bet on that always being true.

Too early to say if this moved trial-to-paid conversion. I'll post numbers when I have them.

[Hetk](https://hetk.io) syncs calendars across Google, Outlook, and iCloud in both directions, with optional privacy controls that strip titles and attendees from synced events. $1 to $6 a month or $10 to $50 a year.

What onboarding step would you delete?

posted toAvatar for product Hetk
Hetk