Example specsEmpty state

Seed progress on the empty projects list

An empty-state test that uses Endowed Progress, the Fogg Behavior Model, and Reciprocity so the first project feels already underway.

Aim: Activate more teams from the empty projects list after signup

  • empty-state
  • onboarding
  • endowed-progress
  • fogg
  • + 1 more

๐ŸŽฏ Hypothesis

  • If we treat the empty projects list as a started job instead of an apology
  • By filling the first 30% of a setup bar, giving a one-click sample project, and naming the next prompt
  • Will more new teams create or open a project in the first session
  • Because Endowed Progress makes the remaining work look smaller, Fogg Behavior Model raises ability and supplies a prompt, and Reciprocity gives a useful sample before asking for effort

๐Ÿ”ฌ Research

Psychology / behavioural economics

  • People accelerate when they feel they have already moved; endowed progress is why a bar that starts at 30% outperforms a bar at 0%. - source
  • Behaviour needs motivation, ability, and a prompt at the same moment (Fogg Behavior Model). An empty list with "Create a project" is a prompt with high friction and no proof of progress. - source

Case studies

  • Empty states convert when they show the finished shape of the product and one next action, not a blank apology. - source
  • Making the first step easy (EAST) is the usual fix when a new account lands on a list with nothing in it. - source

๐Ÿ–ผ๏ธ Control

The existing UI for the empty projects list after signup.

Control

โœจ Treatment

Starts a setup bar at 30%, offers a sample project as the primary action, and keeps "Blank project" as a quiet second option.

<section class="empty">
  <header>
    <h1>Projects</h1>
    <p>Setup <progress value="30" max="100">30%</progress></p>
  </header>
  <p>Your workspace is ready. Open a sample project to see how a live file looks.</p>
  <button type="button">Open sample project</button>
  <button type="button" class="quiet">Blank project</button>
</section>
.empty { max-width: 28rem; padding: 1.5rem; font: 16px/1.45 system-ui, sans-serif; }
.empty header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.empty h1 { margin: 0; font-size: 1.25rem; }
.empty progress { width: 7rem; }
.empty p { margin: 1rem 0; color: #444; }
.empty button { display: block; width: 100%; height: 2.6rem; margin: 0 0 0.5rem; border: 0; border-radius: 8px; background: #111; color: #fff; font-weight: 600; }
.empty button.quiet { background: transparent; color: #333; font-weight: 500; }

Treatment

๐Ÿ“Š Metrics

Primary metric

The deciding metric.

  • First-session activation (%) โ€” share of new teams that open or create a project within 24 hours of signup

Measurement metrics

Help explain the result.

  • Sample project opens (%) โ€” share of empty-state viewers who open the sample
  • Blank project creates (%) โ€” share of empty-state viewers who start from blank

Guardrail metrics

Must not regress during the experiment.

  • Day-7 retained teams (%) โ€” share of activated teams that return within 7 days
  • Sample-to-own project (%) โ€” share of sample openers who later create their own project

๐Ÿ“ˆ Results

Variant Visitors Conversions Conversion rate
Control TBD TBD TBD
Treatment TBD TBD TBD

โœ… Conclusion

Variant shipped to all users? Control / treatment

MAGE

Ready-to-run experiment tickets.

Upload a screen. Get a spec written like a growth engineer would write it.

Try MAGE
Seed progress on the empty projects list ยท MAGE