Elhadi.
← All posts
6 min readAI-written · in Suhaib Elhadi's voice

Activation is the only funnel step a solo builder needs to watch

This update was drafted on a schedule by the AI I build with, from real project notes — part of the vibecoding experiment this blog documents.

A couple of weeks ago I wrote out the whole analytics stack I actually use, and one line in it has been bugging me since. I said the number I care about is whether someone got to the first real outcome, and then I moved on to the next bullet like that was a finished thought.

It isn't. Because "did they get the thing" sounds obvious right up until you have to say, in code, what the thing is. And I'd never actually done that for most of my projects. I had a vague feeling about it per product, which is not a metric. It's a vibe.

So I sat down and wrote the definition out for all nine. That turned out to be a much more uncomfortable exercise than I expected, and I think the discomfort was the useful part.

Why activation and not the rest of it

Quick version of the argument, because I don't want to re-run the whole analytics post.

Signups measure your landing page. Someone read a promise and believed it enough to type an email. That's a marketing result, and it's genuinely useful feedback about your copy — but it tells you nothing about whether the product works.

Retention measures something real, but it's slow and it needs volume. Asking "did they come back in week four" when eleven people have ever used the thing isn't analysis, it's reading tea leaves.

Revenue is the honest one, and I'm not dismissing it. But it's downstream of everything else, so when it's zero it doesn't tell you where the problem is.

Activation sits right in the gap. It's the first moment the product does the job it exists for. And it's the one step that is unambiguously about your product rather than your marketing — which, when you're a solo builder with a pile of built things, is the only thing you can actually do something about this week.

The hard part: picking the moment

Here's where I kept catching myself cheating. The temptation is to pick a moment that's easy to hit, because then the number looks good. "Created an account." "Opened the app twice." Those are easy to instrument and they feel like progress and they mean nothing.

The test I settled on: activation is the moment the user has received value, not the moment they've done work. If they'd be annoyed to lose it, it counts. If it was just a step on the way, it doesn't.

That rules out most of the things that are convenient to measure. Connecting an account isn't activation — that's effort the user spent, with nothing back yet. Uploading a file isn't activation. Filling in a profile definitely isn't. Those are all costs the user is paying in the hope of a payoff, and the payoff is the thing to measure.

The second test is: could the user describe what they got, to a friend, in one sentence? If not, they didn't get anything.

What it is for each of mine

Writing these out side by side was the whole exercise. These are definitions, not results — I'm not going to put numbers next to them, because I don't have honest ones for most of these and a made-up rate would be worse than a blank.

tab. — a tab exists between two real people and the other person has seen it. Not "filed a tab." The ledger is social; a tab nobody's been notified about is a note to self. This is the only one of the nine that's actually live on the App Store, so it's the only one where this is a live question rather than a design question.

CreatorLens — connected their Instagram and got a recommendation back that references their own posts. Connecting alone is the cost, not the value. The payoff is seeing it say something specific about their content.

Confluence — saw a scored setup with the factors that made it high-confluence broken out. Not "received an alert." The entire pitch is that the score is a composite of independent factors, so the activation moment is the one where the user sees the reasoning, not just the ping.

Maison — pointed the camera at a bottle, had it correctly identified, and kept it in the collection. All three parts. An identification they rejected is a failure that looks like usage.

Fundability — got a specific, named reason they're not fundable yet. The product's whole premise is that people get denied and never told why. The moment it tells them why is the moment it has done its job, and everything after that is the plan.

CommunityHQ — generated a blueprint the operator actually used in their community. Generated-and-discarded is not activation, and that distinction matters more here than anywhere else, because the output looks finished whether or not it's any good.

ClipForge — a clip the engine cut went live on a real account without a human touching it. That's the claim the product makes. Anything short of that is a demo.

App Marketing OS — shipped one of the five modules' outputs for real. Posted the Reddit post, pushed the ASO metadata, ran the launch plan. Reading the suggestions isn't it.

Cadence Studios — delivered a reel or a site to a business that said yes. And given the hard approval gate on outreach, the pitch going out isn't activation either; a human still has to send it and a business still has to respond.

What I noticed writing those down

Three things, and the first two stung a bit.

Most of my activation moments require something outside the product. Another person has to see the tab. A business has to say yes. An operator has to use the blueprint in a real community. I can't engineer my way to any of those from inside the codebase, which is an uncomfortable thing to realize about a portfolio built by someone who is very comfortable inside a codebase.

The gap between "built" and "activated" is where everything is stuck. Eight of the nine are built. Every single one can produce its output. Almost none of them have had that output received by someone who needed it. That's not a product problem. That's the shelf problem again, with a sharper name on it.

Defining it is most of the value, honestly. I haven't instrumented all of these. But having written them down, I now know what each product is for in one checkable sentence, and a couple of those sentences made me reconsider what the next build task should be. That's more than any dashboard has done for me.

How I'd instrument it, when I do

Small, because the stack should stay small. One event per product, fired at the activation moment, with a user id and a timestamp. That's it. No funnel builder, no session replay, no tooling I'd have to re-decide the tier on later.

Then one number per product: of the people who signed up, how many hit the event. At my scale that's not a percentage, it's a list of names short enough to read. Which is better — a percentage hides the individual story, and when you have eleven users the individual story is the data.

And the thing I'd actually watch isn't the rate. It's the people who signed up and didn't activate. That list is the whole roadmap. Every name on it is someone who believed the promise enough to show up and then didn't get the thing, and they'll tell you why if you ask.

The honest ending

No results in this post. I defined activation for nine products and instrumented none of them yet, and I'm not going to dress that up as a milestone.

But I'd rather have nine sentences I can check than nine dashboards I can't act on. Next useful step is picking the one product where activation is a live question — which right now is tab., since it's the only one with real users — and actually firing the event.

This one's auto-drafted from my notes on a schedule. If a number isn't in the notes, it doesn't show up here — I'd rather leave a blank than make something up.