Skip to content
Work / Uniswap Hook Incubator Re-engagement Playbook
Applied to lifecycle · Uniswap Hook Incubator · 2026

Uniswap Hook Incubator
Re-engagement Playbook.

Uniswap Hook Incubator Re-engagement Playbook

Lifted Uniswap Hook Incubator enrollment from a projected 77 to a final 135 (75% lift), by designing a four-segment behavioral re-engagement campaign tailored to each lapsed-cohort segment's actual blocker.

Audience

Lapsed cohort applicants

Segments

Four behavioral cuts

Shipped

8 emails, 2 per segment

Result

77 projected → 135 enrolled

Problem

Uniswap Hook Incubator 9 was a technical program for Solidity developers building on Uniswap v4 hooks. Enrollment had a hard deadline, the curriculum was demanding, and the audience was narrow.

Prior cohort outreach had been broad. Same email blast to anyone who had ever interacted with the program. The result: open rates that read as healthy and conversion that read as flat, because the message landed for nobody specifically.

The opportunity was a population that had been ignored entirely: people who had engaged with prior cohorts but had been rejected, accepted-but-not-enrolled, started-but-not-finished, or only completed the async course. That group already knew what Hook Incubator was. They needed a different reason to come back, not the same general invitation.

Approach

The prior-cohort audience was split into four segments based on what they had actually done.

  • Rejected applicants. Applied to a prior cohort but were not accepted. The implicit blocker was that their previous application had not cleared the bar at the time. The message acknowledged this directly, framed the rejection as cohort-fit rather than capability, and noted that returning applicants are reviewed seriously when their experience or DeFi project portfolio has developed.
  • Accepted non-enrollees. Accepted but did not confirm. Their blocker was usually timing, workload, or life events, not capability. The message led with "you already cleared the bar," kept reapplication low-friction, and asked openly what had held them back.
  • Non-graduates. Started and did not finish. Their blocker was capacity. The message acknowledged the difficulty of the program, kept the tone non-judgmental, and emphasized that returning students are reviewed favorably and have context most new applicants do not.
  • Async participants. Completed the self-paced version of the v4 hooks course. Their blocker was perceived redundancy. The message focused on what the live cohort offered that async did not: live workshops, office hours with Uniswap Foundation engineers, peer cohort, and a 3-week capstone hookathon.

Each segment got two emails, sent one week apart, both landing before the March 29 application deadline. Subject lines, preview text, opening hooks, and CTAs were segment-specific. The two-email cadence let the first send land the differentiated value proposition and the second create deadline urgency without repeating content.

The subject lines made the segment-specific framing immediate from inbox view.

  • Rejected applicants: "UHI9 applications are open. You should apply again."
  • Accepted non-enrollees: "We held a spot for you before. UHI9 is now open."
  • Non-graduates: "Your path back to UHI."
  • Async participants: "You finished the async course. Here's what the live program adds."

Deliverable

The campaign shipped as four segment-specific email sequences (8 emails total, 2 per segment), sent one week apart and landing before the March 29 application deadline.

  • Rejected applicants: 2 emails framing rejection as cohort-fit, naming what had changed in the program since their last application, and inviting return when their portfolio had grown.
  • Accepted non-enrollees: 2 emails opening with "you already cleared the bar," low-friction reapplication, and an open invitation to share what had held them back.
  • Non-graduates: 2 emails acknowledging the difficulty of the program, framed for returning students with the context most new applicants do not have.
  • Async participants: 2 emails leading with "what the live program adds that async can't" (live workshops, office hours, peer cohort, hookathon).

Other variables remained in play (curriculum updates, market timing, partner amplification), but the inflection was visible and concurrent with the campaign launch.

Stop generating leads. Start routing the ones you already have. The cohort already existed. The work was naming the blocker before the message.

What I would do differently

The lapsed-cohort audience (rejected applicants, accepted non-enrollees, non-graduates, async participants) is a recurring asset, but I treated it as a one-shot campaign target. Every cohort produces more of each segment, and the segment definitions stay stable across cohorts. If I built this again, I would set it up as an evergreen lifecycle program: continuous audience tagging from the moment someone applies, drops, or completes the async path, and segment sequences that update based on what worked, so each new cohort launch starts from the system, not from scratch.

The segment work compounds across cohorts. A one-shot campaign captures that value once.

Want to talk?

If you have a dormant cohort that is bigger than you think, I have built this program before.

LinkedIn is fastest. A line about your current lifecycle motion and where the falloff is gets a faster reply than a generic intro.