Tabby

Close every tab. Lose nothing. A tab-management product I designed, built, and launched independently.

The Bet

Open tabs are often deferred intent: articles to read, tools to try, work to finish. People keep them open because closing them feels like losing the path back.

The product bet: could Tabby make closing tabs feel safe by preserving the intent behind them?

Project Snapshot

Role: Founder / Product Designer
Scope: Product strategy, UX, engineering, growth
Stack: React, Supabase, Stripe, PostHog, Meta
Status: Launched; validation underway

The Key Product Decision

Most SaaS products ask for registration before delivering value. I intentionally reversed that sequence.

Experience value first. Registration second.
  • /try → instant guest workspace → first tab saved
  • First save → soft signup prompt → continued use up to 5 tabs / 3 folders
  • Sixth tab → hard signup gate → OTP → safe workspace migration

Activation became the first user-created save—giving acquisition, UX, and analytics one shared definition of value.

Designing the Experience
I designed the journey around three principles that earned commitment instead of demanding it.

Fast first value: Remove account creation from the path to the first save.

Progressive commitment: Ask for more only after the product has proved useful.

Cross-device trust: Make saved intent portable, recoverable, and private.

The Hard Parts

1. Guest persistence: Guest saves locally first so the action feels instant; metadata and screenshots hydrate afterward without blocking the moment.

2. Migration without loss

OTP signup converts a temporary workspace into an account through an idempotent migration, so repeated requests cannot duplicate or drop saved data.

3. Extension, mobile, privacy

The extension and web app share one model; mobile uses a touch-native composer with no hover-only controls. Analytics capture funnel events—not tab URLs, titles, folders, or emails.

Building It Solo
AI expanded what I could execute independently across implementation, QA, analytics, and creative production. Product judgment, prioritization, UX decisions, taste, and final QA remained mine.

Designing the Growth Loop

Acquisition:
Meta ad → /try → immediate product experience
Paid traffic enters the product rather than a generic marketing page.
Activation + measurement:
First user-created save → PostHog behavior data → signup
The same activation event anchors product and campaign decisions.
Monetization + learning:
Soft prompt → signup → founder offer → Stripe
Signals determine whether the next iteration belongs in onboarding, message, channel, or creative.

Launch + Validation

Launched. Validation underway.

Technical validation: Guest migration, analytics, checkout, and the production purchase path have passed end-to-end testing.

Market validation: Paid acquisition is now the learning mechanism; there is not yet enough traffic to claim product-market or channel success.

What I’m Testing Next
Does guest-first increase first-save activation? Which constraint deserves the next iteration: onboarding, signup timing, message, channel, or creative?

Tabby

Close every tab. Lose nothing. A tab-management product I designed, built, and launched independently.
Close every tab. Lose nothing. A tab-management product I designed, built, and launched independently.

The Bet

Open tabs are often deferred intent: articles to read, tools to try, work to finish. People keep them open because closing them feels like losing the path back.

The product bet: could Tabby make closing tabs feel safe by preserving the intent behind them?

Project Snapshot

Role: Founder / Product Designer
Scope: Product strategy, UX, engineering, growth
Stack: React, Supabase, Stripe, PostHog, Meta
Status: Launched; validation underway

The Key Product Decision

Most SaaS products ask for registration before delivering value. I intentionally reversed that sequence.

Experience value first. Registration second.
  • /try → instant guest workspace → first tab saved
  • First save → soft signup prompt → continued use up to 5 tabs / 3 folders
  • Sixth tab → hard signup gate → OTP → safe workspace migration

Activation became the first user-created save—giving acquisition, UX, and analytics one shared definition of value.

Designing the Experience
I designed the journey around three principles that earned commitment instead of demanding it.

Fast first value: Remove account creation from the path to the first save.

Progressive commitment: Ask for more only after the product has proved useful.

Cross-device trust: Make saved intent portable, recoverable, and private.

The Hard Parts

1. Guest persistence: Guest saves locally first so the action feels instant; metadata and screenshots hydrate afterward without blocking the moment.

2. Migration without loss

OTP signup converts a temporary workspace into an account through an idempotent migration, so repeated requests cannot duplicate or drop saved data.

3. Extension, mobile, privacy

The extension and web app share one model; mobile uses a touch-native composer with no hover-only controls. Analytics capture funnel events—not tab URLs, titles, folders, or emails.

Building It Solo
AI expanded what I could execute independently across implementation, QA, analytics, and creative production. Product judgment, prioritization, UX decisions, taste, and final QA remained mine.

Designing the Growth Loop

Acquisition:
Meta ad → /try → immediate product experience
Paid traffic enters the product rather than a generic marketing page.
Activation + measurement:
First user-created save → PostHog behavior data → signup
The same activation event anchors product and campaign decisions.
Monetization + learning:
Soft prompt → signup → founder offer → Stripe
Signals determine whether the next iteration belongs in onboarding, message, channel, or creative.