40
84 Comments

Rented distribution kept expiring. So I built 10 channels I own instead. Here's every loop.

Most distribution advice for solo founders is about channels: which one to pick, how to work it, how to scale it. After six weeks of trying the channels that fit my budget and personality, I realized the channel was not the problem.

Every channel I tried was rented.

Cold DMs were rented attention. The hour I spent writing them was the deposit. The moment I stopped, the attention stopped. Tweets rented reach until the algorithm shifted, which it always does. Quora answers rented inbound until the question slipped off page one. A halfway-decent Product Hunt launch rented a day of traffic that flattened by the next week. I was paying with effort instead of dollars, but the contract was the same: stop paying, traffic stops.

The IH community has been calling email lists "owned" channels for years. I had nodded at that framing without applying it at the feature level. Once I did, the question changed. Instead of "what channel should I work this week," it became "what feature can I build into the product that pays me back in six months without my hand on it?"

I rebuilt the growth side of Flowly (flowly.run, a task manager with timers and analytics for freelancers) around that question. In four days I shipped 10 features. None of them is revolutionary. Every one of them is mine to keep.

The test

Here is the test I run before I build any growth feature now:

"Will this still produce in 30 days if I stop touching it?"

If yes, it is a loop. You own it. If no, it is a campaign. You are renting.

This test is unforgiving. Most things people call "distribution work" fail it. Cold outbound fails. Twitter posts fail. Even a beautifully run Product Hunt launch fails by week four. Almost nothing that costs you a calendar hour today is still producing value 30 days later.

The 10 features below pass it.

TL;DR

The 10 loops, ordered by the customer story below. The order I would build them in if starting over is in parentheses.

  1. The goodbye that knows your name (build order: #2)

  2. The email that meets you where you actually are (build order: #4)

  3. The email I almost did not send (build order: #6)

  4. The survey that does its own segmentation (build order: #3)

  5. The referral I almost cut for being too early (build order: #7)

  6. The roadmap that is actually free product research (build order: #8)

  7. The 15 templates that pay rent at 3am (build order: #5)

  8. The free tools that ask for nothing (build order: #9)

  9. The card that does the bragging for you (build order: #10)

  10. The boring email worth more than the clever ones (build order: #1, by a wide margin)

Total cost: roughly 60 hours across four days. The reason it took four days and not four months: I had no meetings.

If you only ship one of these this week, ship #10. It is the most boring item on this list and the closest thing to free money in this entire post.


1. The goodbye that knows your name

When a trial ends, most apps show the same goodbye message to everyone. "You are about to lose analytics, calendar sync, and unlimited history." Generic. Forgettable.

I changed it. Now the trial-end modal shows the user their actual numbers from the trial: "You created 47 tasks. Tracked 23.5 hours across 4 projects. Hit a 9-day streak. That data goes read-only at midnight."

Same trial. Same product. Same price. Only the goodbye is different.

Why it works: loss aversion is documented at roughly 2:1 over gain framing (Kahneman, Tversky). Personalization research puts the CTR lift at 25 to 50% when you replace generic copy with the user's own data. The mechanic is older than software: a person fights harder to keep something they already built than to acquire something new of equal value.

Who it is actually for: the freelance designer who signed up two weeks ago, quietly built habits, and forgot how much she had already invested by the time the trial-end modal showed up. The modal reminds her.

What it taught me: I shipped the first version without a fallback. A user with very low trial activity saw "You created 0 tasks. Tracked 0 hours." I had built loss aversion that worked perfectly against me. The screen told her the trial was a waste. The fix is one line of code; the lesson is bigger: loss aversion needs something to lose. If your version of this feature can hit zero, build the fallback first.


2. The email that meets you where you actually are

The trial drip used to send the same Day 3 email to everyone. Same Day 7. Same Day 10. I rewrote it to branch on what the user actually did inside the product.

  • Created zero tasks in the first 48 hours? "Start with one quick task. Takes 30 seconds."

  • Created tasks but never started a timer? "One click to know where your hours actually go."

  • Timers running but no calendar connected? "Add 15 minutes. Link Calendar. See your full day."

  • Calendar already connected? An entirely different Day 7. There is no point re-pitching a feature she already uses.

Why it works (the data): triggered emails outperform batch sends by roughly 70.5% on open rate and 152% on click-through (MarketingProfs). Braze reports about 5x revenue per email for behavioral versus broadcast. Automated emails are about 2% of email volume and drive about 37% of email sales.

Why it actually works (the customer part): the user is told, in plain language, "I see what you did and did not do this week. Here is the next 30-second action specifically for that." Most onboarding emails address a user the company imagines. This one addresses the user who exists.

What it taught me: I wildly underestimated how much harder it is to write four good versions of a Day 3 email than to write one polished version. The code change was a switch statement. The copy is the actual work. I am already rewriting two of the four.


3. The email I almost did not send

When a paid subscriber cancels, three emails fire over the following weeks.

  • Day 7: "We miss you. Here is what shipped since you left."

  • Day 21: "Try Pro free for 30 days, no card."

  • Day 45: "What would have kept you?"

Why it works (the data): Klaviyo data has win-back open rates around 29% on average. Multi-email sequences reactivate around 10% of recipients; optimized sequences hit 14 to 18%. The median ROI on optimized win-back is documented at about 380%, compared to 150 to 200% for paid acquisition. One in ten cancellations coming back is meaningful at every scale.

What it taught me: I held this feature off for weeks. Writing the Day 21 email felt presumptuous, as if I was bothering someone who had already left and made it clear. I drafted it three times. I deleted it twice.

Then I read the open-rate benchmarks and realized the embarrassment was mine, not the customer's. Your churned users opted in to hearing from you once when they signed up. One polite "we miss you" email is not a violation; it is a courtesy. The customer who left because she switched jobs and stopped freelancing is not insulted by your email. She just deletes it. The customer who left because of a real reason (price, a missing feature, a workflow change) might come back. Either way, you find out.

I almost cost myself a 10% reactivation rate on every future cancellation because I was projecting embarrassment onto people I had never met. Do not do that.


4. The survey that does its own segmentation

At Day 30 of paid, every customer gets a one-question email: "0 to 10, how likely are you to recommend Flowly?" The email body is 11 score buttons. Each click goes to a different page depending on the score.

  • 9 to 10 lands on a pre-filled G2 review page

  • 7 to 8 lands on "What would make it a 10?"

  • 0 to 6 lands on a direct message to me

The clever part is not the email. The clever part is that the user does the segmentation for me. I do not have to look at a score in a database and decide what to do; the user has already self-routed by the time the page loads.

Why it works: G2 reviews compound forever and cost nothing to acquire from a customer who was already going to give you a 9 anyway. Productivity SaaS with NPS above 40 correlates with strong word-of-mouth. Below zero means you have a churn timer running and do not know it.

Who it is actually for: the customer who has been paying for four months, is genuinely happy, and would never sit down at her laptop on a Saturday to write a public review on her own. The email gives her a 30-second path with one click of friction. She would not have done it otherwise. Now she does.


5. The referral I almost cut for being too early

Every user gets a unique referral link. When their referee signs up and pays for the first time, the referrer gets +30 days of Pro added to their plan. The referee gets +14 days on top of the standard 14-day trial.

The detail that mattered: the reward fires on the referee's first paid charge, not on signup. Without that single condition, every trial signup via a referral link would reward the referrer regardless of whether the referee ever pays. That is the difference between a working incentive and a leaking one.

Why it works (the data): referred customers have 16 to 25% higher LTV, churn 20% less, and convert at 3 to 5x the rate of paid leads (GrowSurf 2026 benchmarks). Adding referral as a channel drops blended CAC by 25 to 35%.

Why it actually works (the human part): referrals are not really about the reward. The reward is permission. When a freelancer tells another freelancer about a tool, the reward says "the company endorses this conversation and made it easy for you to do it." Most people just want to be helpful and slightly compensated. The reward is the slightly.

What it taught me: I almost cut this feature for being premature. The math says it does very little this month. The counter-argument I talked myself into is that the cost of installing the loop now is the same as installing it at 10x the user base, and the only loop you cannot measure is the one you did not build. The mechanic stays whether or not it produces this quarter. Future-me thanks present-me.


6. The roadmap that is actually free product research

I shipped a public roadmap page with three columns: Planned, In Progress, Shipped. Logged-in users can upvote. I seeded it with 8 honest items spanning all three columns, including items that are months out.

Why it works as a distribution loop: the page is indexable. Every item title is a small SEO bet on a phrase a specific user is searching for ("Slack integration," "iOS app," "weekly invoice export"). The page itself is also a trust signal: companies that publish what they are building are perceived as more accountable and more permanent.

Why it actually works (the human part): people who upvote feel ownership. Ownership correlates with lower churn. They are invested in the version of the product that exists in six months, not just the one they bought today.

What surprised me: the upvotes are the most valuable product research I have ever paid nothing for. The feature I expected to win did not. The one that did is going to the top of my queue. I had not appreciated, before shipping this, that a public roadmap is a product-discovery channel disguised as a marketing surface.

What I am watching: noise from competitors voting strategically and from loud free users who never upgrade. I am planning to weight votes by account age and plan tier if it gets noisy. Worth thinking about before you ship.


7. The 15 templates that pay rent at 3am

I shipped 15 real templates as public, indexable pages at flowly.run/templates. Freelance time tracker. Weekly client review. Onboarding flow. Each is a real workflow, not "Hello world" filler. Each detail page is SEO-targeted with structured data so Google can render it as a rich snippet. A logged-out visitor who clicks "Use this template" gets signed up and the template applied to their workspace in one motion.

Why it works (the data): Notion's template gallery ranks for over 60,000 organic keywords in the US and pulls roughly 287,000 monthly organic visitors. #notiontemplate has over 180M views on TikTok. The mechanic does not require Notion's scale to start; it requires presence so that compound interest has a surface to land on.

The mechanic in one sentence: each template page is a small SEO bet that sits in a search result at 3am, when I am asleep, and signs up a small percentage of clickers.

Who it is for: the freelance designer who Googles "weekly client review template" on Sunday night because she has a meeting Monday and does not want to start from scratch. She does not know me. She does not need to. The template solves her actual problem in 30 seconds, and the signup happens as a side effect of solving it.

What it taught me: I assumed the bottleneck would be the code. It was not. The bottleneck was sitting down to write 15 templates that are actually useful, not garbage to fill a directory. I ended up using Flowly to draft them, which is either a tight feedback loop or selection bias. I am still figuring out which.


8. The free tools that ask for nothing

I shipped three standalone tool pages at flowly.run, each one fully functional without an account.

  • /pomodoro-timer

  • /freelance-rate-calculator

  • /time-tracker

Each has a soft signup CTA at the bottom. None of them is gated.

Why it works: "pomodoro timer" alone is 100,000+ monthly searches. CAC is zero. Tool-to-signup conversion lands in the 3 to 8% range when the tool is genuinely useful and the CTA is not aggressive. Bannerbear, Tally, and many others built their early traffic on free tool pages like these.

The mechanic in one sentence: people who type "pomodoro timer" into Google are not in the market for a productivity SaaS today; they are in the market for a 25-minute timer. I give them the timer. A small percentage of them think, while the timer is running, "I should be tracking this more seriously," and the CTA catches them at that exact moment.

What it taught me, in advance: SEO takes 6 to 12 months. I have not ranked yet. I am building tools my future self will thank me for, not tools that move this month's number. That is an honest tension you need to make peace with before you ship work that will not pay off for a year.


9. The card that does the bragging for you

At the end of each week, every user can click "Share this week" and get an image: hours worked, project count, longest streak, Powered by flowly.run. The weekly digest email automatically appends the share link, so users who never visit the analytics page see the loop anyway.

Why it works: Spotify Wrapped mechanic. The content celebrates the user's accomplishment; my brand is the attribution. Every shared card is a free acquisition impression delivered by my most invested user. Granola's growth coverage attributes a meaningful share of their early lift to this exact pattern.

Why it actually works (the human part): people share evidence of discipline. A freelancer who logged 38 hours of focus time this week and is quietly proud will share that image to the LinkedIn audience of other freelancers and small founders who care about discipline. She is not advertising me. She is advertising herself. I am the credit line at the bottom.

What I have not solved: social media crawlers do not run client-side JS, so the personalized image preview falls back to a generic one in Twitter and LinkedIn thumbnails. The personalized card only shows when a human clicks through to the share page itself. Worth knowing before you ship.


10. The boring email worth more than the clever ones

Every monthly subscriber who hits day 30 of paid gets a one-time email: "Switch to annual and save $48." Daily cron. Dedicated upgrade page that pre-fills the plan switch.

Why it works (the data): Baremetrics measures monthly plan retention at about 68% and annual plan retention at about 92%. Annual subscribers churn roughly 3 to 5x less than monthly. Involuntary churn (failed payments) drops by up to 95% because the card runs once a year instead of twelve times. OpenView and ProfitWell document meaningful month-2-to-4 conversion from monthly to annual when prompted at the right moment.

Why it actually works (the human part): a monthly subscriber at month two is invested. She has felt the product work for eight weeks. She has absorbed it into her week. The annual plan is not "spend more money." It is "lock in the price you are already paying and stop thinking about it." Most people, given the chance to stop thinking about a recurring decision, will take it.

What it taught me: I had been quietly losing this revenue for weeks before I shipped the email. The boring email turned out to be worth more than any of the clever ones above. If you only ship one feature from this list, ship this one. It is the highest leverage email you are not sending today, and it is the closest thing to free money in this entire post.


What I considered and did not ship

For balance, four features I considered through the same 30-day test and rejected.

  • AppSumo lifetime deal. Failed the test on a different axis: the audience is price-sensitive in a way that anchors the perception of the regular tier downward. The 70% revenue share also hits worse at low margin. Revisit at year two.

  • Aggressive trial extension on email verification. Tested the manipulative-versus-helpful line and it felt manipulative. "Verify your email and get +3 days" reads as a bribe, not an extension. Cut.

  • Heavy LinkedIn personal posting. Wrong audience for a $12 a month freelancer product. LinkedIn CPL math does not work at this price point even with organic. Defer until I have business-cohort data.

  • Removing the free tier. Reverse trial only works if there is a free tier on the other side to land on. Removing it would kill the activation mechanic that is doing all the work today. Sometimes the right answer is to not change anything.


Yes, I know

A few things I expect in the comments. Saving the round trip.

"A referral program is pointless this early." Fair on the absolute numbers this month. But the cost of installing the loop now is the same as installing it at 10x the user base, and the only loop I cannot measure is the one I did not build. I would rather have an unfired referral mechanic in month two than rebuild it from scratch in month twelve.

"You shipped 10 features in 4 days; quality has to be bad." Reasonable concern. None of these touches the core product. They are bolt-ons: emails, modals, public pages, a handful of scheduled jobs. Every one has tests. Every one is feature-flagged so I can flip it off if conversion drops 10% for three consecutive days without redeploying. The honest tradeoff I made to ship this fast: I have data on almost none of them yet. I will know in 30 days.

"This is just the OpenView playbook with extra steps." Yes. The playbook is public for a reason. Most founders read it and do not ship it. I shipped it.

"None of this matters if your product is not good." Agreed. Product comes first. Flowly has paying customers and healthy visit-to-signup conversion. The product holds. Distribution was the bottleneck; the 10 loops above are the fix. If your situation is the inverse (great distribution, leaky product), this list is not for you and I wish I had your problem.


What is next

The metric I care about is trial-to-paid conversion 30 days from now. The whole thesis is that compound returns on 10 loops beat one viral spike nobody can reproduce on purpose.

I will come back in 30 days with which of the 10 actually moved a metric, which were a waste, and which one I would have built differently. If that interests you, follow this account. Part 2 will have the data.

You can look at the actual implementations live:

The product itself: flowly.run. Free tier, 14-day reverse Pro trial, no card.

posted to Icon for Flowly
Flowly
  1. 2

    This is a very useful framing.

    “Paying with effort instead of dollars” is exactly how a lot of early founder distribution feels. A launch, a post, a DM campaign, or a social spike can create motion, but if the motion disappears the moment the founder stops pushing, it is still rented momentum.

    The 30-day test is a strong filter: will this keep producing value if I stop touching it for a while?

    I’m thinking about this a lot while building NEES Core Engine too. For us, the developer preview, live sample app, docs, and workflow-specific explanations are not just marketing assets — they are small owned loops that let builders understand the problem without needing me to manually explain it every time.

    That distinction between campaigns and loops is probably one of the most important mindset shifts for solo founders.

    1. 1

      The developer-tool version of this is interesting because the assets are doing two jobs at once. A live sample app or workflow-specific doc isn't just a marketing surface — it's also onboarding. The builder who finds it through search arrives partially qualified and partially activated before talking to anyone. That's a harder asset to build than a templates page, but the conversion quality is higher because the person who ran the sample already understands the problem you're solving.

      "Without needing me to manually explain it every time" is the 30-day test applied to sales rather than marketing. Every manual explanation is rented effort. A doc that explains it once and keeps producing is the owned version of the same conversation.

      The question I'd be sitting with for NEES: which workflow-specific explanation generates the highest-intent inbound when someone finds it cold? That's probably the one worth building ten variations of first.

      1. 1

        This is a very useful framing.

        You’re right — for developer tools, a workflow-specific doc or live sample app is not just marketing. It is onboarding and qualification at the same time.

        For NEES Core Engine, the generic explanation of “AI governance runtime” is probably less powerful than showing it inside specific failure modes:

        • support bot escalation

        • agent memory boundaries

        • internal copilot permissions

        • multi-agent handoff state

        • behavior drift across sessions

        • debugging with trace IDs

        Each one explains the same core runtime through a workflow the builder already understands.

        So the real question is not only “how do I explain NEES?”

        It is:

        Which workflow-specific explanation makes a cold builder immediately think, “I have this problem”?

        That is probably the next owned distribution loop I should build.

        1. 1

          You've done the right reframe. "Explain NEES" is a product problem. "Which failure mode does a cold builder already recognize" is a distribution problem, and it has a testable answer.

          Of the six, I'd bet on behavior drift across sessions and support bot escalation as the highest-intent starting points — not because they're the most technically interesting, but because they're the most felt. A builder who has watched their agent behave differently on Tuesday than Monday already has a name for their frustration before they find your page. A builder dealing with escalation failures has already complained about it somewhere public.

          The test: which of the six has people already describing the problem in their own words — GitHub issues, Discord threads, Hacker News comments? That's the language your doc should be written in, and the failure mode that generates the highest-intent cold inbound. Start there and build the other five off it.

          1. 1

            This is a very useful distinction.

            You’re right — “explain NEES” is a product problem, but “which failure mode does a cold builder already recognize?” is the distribution problem.

            I agree that the strongest starting points are probably:

            behavior drift across sessions
            and
            support bot escalation failures

            Not because they are the most technically complex, but because builders already feel them.

            The test you suggested is the right one: find where builders are already describing these problems in their own words — GitHub issues, Discord threads, HN comments, Indie Hackers posts — and write the docs using that language.

            So instead of starting with “What is NEES Core Engine?”, the better entry point may be:

            “Why your AI agent behaves differently after a restart”

            or

            “Why your support bot fails at escalation even when the model is safe”

            That gives me a much clearer owned-distribution path.

            1. 1

              Both titles are the right form — problem-first, not product-first. A builder Googling "AI agent behaves differently after restart" is much closer to buying than one Googling "AI governance runtime."

              The second one is stronger. "Even when the model is safe" does real work — it pre-qualifies the reader as someone who has already done the right thing and still has the problem. That's a more painful recognition than a generic failure message. The builder who reads that clause and thinks "that's exactly my situation" is the highest-intent visitor you can get from a cold page.

              Practical next step before you write either: search both phrases across GitHub issues, HN threads, and Discord. Find the exact words builders use when they're frustrated about it. Write the doc in those words, not yours. The page that sounds like the problem reads like a search result that was already waiting for them.

              1. 1

                This is extremely useful — thank you.

                You’re right. I was still partly thinking from the product side: “How do I explain NEES Core Engine?”

                But the better distribution question is:

                What problem is the builder already searching for before they know NEES exists?

                That distinction changes the whole content strategy.

                I especially agree with your point about “even when the model is safe.” That phrase matters because it speaks to builders who already tried the obvious fixes — safer models, better prompts, guardrails — and still have reliability problems in the product behavior layer.

                So the next step is not to write from my vocabulary.

                It is to search how builders describe the pain in their own words across GitHub issues, HN threads, Discord, Reddit, and dev communities — then build the doc around that language.

                This gives me a much clearer direction:

                Problem-first page
                Builder’s language
                Recognizable failure mode
                Then NEES Core Engine as the runtime answer

                Really appreciate this. It is one of the clearest pieces of distribution feedback I’ve received so far.

                1. 1

                  The "already tried the obvious fixes" layer is sharper than my version of why that clause works. You've identified the exact reader: not a builder who hasn't thought about the problem yet, but one who has already spent real time on it and is still stuck. That's a different and more motivated visitor than someone encountering the failure mode for the first time.

                  The four-step sequence is the right build order. The tempting shortcut is to skip the search step and write from your own vocabulary — you already know the product, the language feels natural, the page gets written faster. That's also the step that produces docs nobody finds, because you're writing for a reader who already knows what NEES is.

                  One thing worth looking for specifically in the search: a GitHub issue or HN thread where someone described the exact failure mode and marked it resolved with a workaround. That's a builder who has the problem, knows it's real, and hasn't found the actual answer yet. That thread is your first reader. Write to them.

                  1. 1

                    This is a really useful refinement — thank you.

                    The GitHub/HN example makes the “first reader” much more concrete: not an abstract AI builder, but someone who already saw the failure, tried the obvious fixes, patched around it, and still does not have a durable runtime answer.

                    That is exactly the person NEES Core Engine should speak to.

                    You’re right that the tempting shortcut is writing from my own vocabulary because I already understand the product. But that would probably create a page that explains NEES instead of matching the language of someone already searching for the pain.

                    So the next step is clear: find the frustrated thread, study the workaround language, write the doc in that builder’s words, and position NEES as the runtime answer to the unresolved root problem.

                    This is very helpful.

                    1. 1

                      Glad this landed. The NEES distribution path is clearer now than it was at the top of this thread — that's a good outcome for a comment section.

                      One ask in return: if the time-tracking and task loop side of solo building is something you're feeling, try Flowly (flowly.run). Free tier, no card. You've been thinking about owned loops for NEES all thread — curious whether the product itself passes the 30-day test for your own workflow.

  2. 2

    The rented vs owned framing is something most builders ignore until they get burned. You build an audience on one platform, the algorithm shifts, and you're back to zero. The loop structure you've laid out here is essentially a compounding asset strategy — each channel feeds the next rather than standing alone. Which loop took the longest to get working consistently?

    1. 1

      The behavioral email branching and it wasn't close. The code was a switch statement — maybe two hours. The copy was the actual work: four versions of a Day 3 email that each had to standalone for a completely different user state. I shipped the first version fast and have rewritten two of the four branches since. It's still not finished. The templates page was similar — the build was an afternoon, writing 15 templates that were actually useful took most of the time.

  3. 2

    The 30-day test is sharp. I ran Henson Group for almost 20 years and the channels that scared me most in retrospect were the ones I loved at the time: partner co-sell, conferences, a few vendor relationships. They produced until they didn't. The features that compounded were the ones running while I slept (renewal nudges, customer-success digests, a referral wired into onboarding rather than bolted on later). On #10: the boring annual upgrade email is the single highest-ROI thing most subscription founders ignore. We did a version of it at SocialPost.ai and the math was so good I was embarrassed for not shipping it sooner. Looking forward to the 30-day data.

    1. 1

      Twenty years of operator signal validating the same pattern is worth more than any benchmark report. The "channels I loved at the time" framing is the part worth underlining — conferences and co-sell feel like real work because they require presence and generate visible social proof in the moment. The feedback loop is immediate, which makes them addictive. The compound stuff produces nothing you can feel for months, which is exactly why it gets deprioritized.

      The referral-wired-into-onboarding point directly answers the pushback I got on #5. The cost of installing it now is the same as installing it later — what changes is the retrofit complexity and the data you lost in the gap.

      "Embarrassed for not shipping it sooner" is almost word for word what I expect to write in the 30-day update. The math on that email is uncomfortable in the best way.

      What's the SocialPost.ai compound loop that surprised you most when it kicked in?

  4. 2

    The 30-day test is the right filter. The cleaner version I've used: 'does this still produce when I'm asleep, sick, or just bored of it?'

    The addition I'd make from building creator outreach loops for a music product: the behavioral email sequence is highest-leverage, but only after the segmentation event exists in the product. If you haven't instrumented the behavior (task created, timer started, calendar connected), you're writing conditional branches with no conditions. That invisible prerequisite cost us a week before we recognized what was actually blocking us.

    The one thing I'd push back on: cold DMs 'failing the test' deserves nuance. A generic cold DM fails. A cold DM that delivers something the recipient already wanted - a template for their niche, a resource they publicly asked for - creates a reply that arrives three weeks later from someone who found you through the artifact, not the message. We've had responses come in four weeks after send. That's slower compounding than email, but it's not zero.

    The referral-fires-on-first-payment detail is the thing most founders get wrong. Good call flagging it explicitly.

    1. 1

      "Asleep, sick, or bored of it" is a better test than mine. The "bored of it" condition is the one I was actually trying to capture — motivation decay is the silent killer of most growth work — and your version names it directly. Stealing that.

      The instrumentation prerequisite is what I should have made explicit in the behavioral email section. The switch statement is one line of code. The events that feed it took longer to instrument than the email logic itself. If you're writing "user created zero tasks in 48 hours" as a branch condition and that event isn't firing cleanly, you're not segmenting — you're sending the wrong email to everyone with extra steps.

      The cold DM pushback is a fair partial concede. The mechanic you're describing — DM carries an artifact, artifact travels, reply arrives weeks later — is closer to the templates loop than to outbound. The DM is the distribution method, the artifact is the actual loop. Generic cold DMs still fail the test. Artifact-carrying ones might not, and that's a meaningful distinction I flattened.

      What's the segmentation event that unlocked the behavioral sequence for the music product?

      1. 1

        Playlist saved vs. playlist generated.

        A lot of users hit generate and bounce -- the generation is the gratification. The save is the commitment signal. We split the behavioral drip on that event.

        Users who saved in their first session got a Day 7 showing their listening data from that playlist (tracks skipped, replayed, added to other playlists). Generator-only users got a completely different Day 7: a fresh playlist, zero friction -- because re-engaging them with 'look what you made' falls flat when they don't feel ownership yet.

        The event was already firing in our analytics. We just weren't using it as a branch condition. One afternoon to wire it up. The hard part was writing two genuinely different Day 7 emails instead of one mediocre one.

        Tool is 3vo.ai -- mood-to-playlist workflow for Spotify creators.

        1. 1

          Saved vs. generated is a cleaner commitment signal than most products have access to. The save isn't just engagement — it's the user declaring the output belongs to them now. That's the moment loss aversion becomes available as a mechanic. Generator-only users haven't made that declaration, so "look what you made" falls flat because they don't feel like they made it. You found the exact behavioral branch that maps to ownership, which is harder to identify than it sounds.

          "The event was already firing, we just weren't using it as a branch condition" is the most common version of this problem. The instrumentation exists. The habit of treating analytics events as email triggers rather than just dashboard metrics is the actual unlock.

          The hard part being the copy rather than the code is identical to my experience. Two mediocre emails dressed up as segmentation is worse than one honest flat drip — the branch only earns its complexity if both versions are genuinely different.

          What's the open rate delta between the two Day 7 versions?

  5. 2

    Really useful framing. The 30-day test is the part I’d steal. I’m testing a tiny iPhone nutrition logger, and this pushed me to think less about one-off launches and more about product-owned loops: trial recap, saved meals/templates, and a dead-simple share card. The “0 tasks” fallback note is underrated too.

    1. 1

      The share card might actually work harder for a nutrition logger than it does for Flowly. Fitness progress is already social currency — people share streaks, macros, and logged weeks without much prompting. The "discipline as attribution" mechanic is close to native behavior in that space rather than something you have to manufacture.

      On the fallback: the zero-state failure is worse in nutrition than it was for me. An empty week isn't neutral — it reads as a bad week. Build that check before anything else.

      What's the core behavior you're seeing users return for?

  6. 2

    The 30-day test is the sharpest filter I've seen for separating real distribution from the feeling of distribution. Saving that one permanently.

    The pushback about "conversion infrastructure vs. distribution" in another comment here is fair — but I think it misses the compounding angle. A reactivation email that fires automatically in month 3 isn't solving top-of-funnel, but it's silently extending LTV while you are hand-pumping the top. The two aren't competing; they're parallel tracks.

    Building RecebeZap — automated payment reminders for Brazilian freelancers. Early-stage, so still on the rented channels grind. But the 30-day test just killed half my planned "growth tasks" in one read. The ones that survived are going into the roadmap this week.

    Thanks for writing this out, Max.

    1. 1

      "Parallel tracks" is the cleanest resolution of that thread. The reactivation email isn't competing with top-of-funnel — it's quietly working a different part of the equation while you hand-pump the top. Treating them as competing is what leads founders to deprioritize retention infrastructure until they have "enough" users. You never have enough users. The parallel work starts now or it starts late.

      RecebeZap is an interesting wedge — automated payment reminders for Brazilian freelancers is hitting the same workflow anxiety Flowly targets from the time-tracking side. Late payment stress is real and I haven't seen it solved cleanly anywhere in that market.

      Curious what survived the 30-day cut from your task list. The ones that pass it at early stage are usually the most revealing signal about where the product actually wants to go.

  7. 2

    Rented distribution kept expiring, so I built 10 owned channels instead, creating a sustainable marketing loop that drives traffic, captures audience data, nurtures engagement, and generates consistent long-term growth independently.

    1. 1

      Close, though "nurtures engagement" is the framing I was trying to escape — it implies someone doing the nurturing. The whole point is features that produce without a founder's hand on them.

  8. 2

    The 30-day test is the right filter. One extra loop I’d add for mobile apps: turn the first useful session into a reusable asset, like a saved report, streak, export, or reminder the user has a reason to come back to. Referrals and shares work better once the product has created something personal worth preserving.

    1. 1

      This is the prerequisite for #1 hiding in plain sight. Loss aversion needs something to lose — but something personal and reusable is what makes the loss feel real rather than abstract. The trial-end modal only works because the user already built a streak and tracked hours. No reusable asset, no stakes. The first useful session creating something worth preserving is the foundation the whole retention stack sits on.

  9. 2

    The “owned vs rented” framing is spot on, but most founders underestimate how long “owned” actually takes to compound SEO, templates, and loops look dead for months before they start paying back. The real skill isn’t building 10 loops, it’s surviving long enough for 1–2 of them to actually wake up.

    1. 1

      Agreed, and it's the honest tension I didn't fully resolve in the post. The SEO bets look indistinguishable from dead ends for most of the 6-12 month window. The thing I keep coming back to: surviving isn't passive — it's having enough conversion infrastructure generating revenue while the slower loops compound. The annual email isn't just a retention play, it's also what funds the months the templates gallery is producing zero.

  10. 2

    This is a masterclass in shifting from "growth hacking" (high effort, temporary) to "growth engineering" (fixed effort, permanent).

    Most solo founders get stuck on the "content treadmill" because it feels like work, but as you pointed out, the moment you stop running, the treadmill stops moving. Building "loops" instead of "campaigns" is the only way to scale without burning out.

    Here are a few thoughts from the IH trenches:

    1. The "Loss Aversion" Modal (#1) is Genius

    Standard SaaS "Goodbye" emails are usually passive-aggressive or begging. Showing the user their actual data (47 tasks, 23.5 hours) transforms the upgrade from a "purchase" into a "rescue mission." You’re not asking them to buy a tool; you’re asking them not to delete their own progress.

    • Pro Tip: If you want to level this up, let them "Export to CSV" right from that modal. It sounds counter-intuitive, but giving them a way out often lowers the barrier to staying.

    2. The "Self-Segmenting Survey" (#4)

    This is the highest ROI item for SEO and social proof. Automating the bridge between a happy user and a G2/Trustpilot review is how you beat competitors with bigger marketing budgets.

    • One tweak: For the 7-8 scores (the "Passives"), ask them: "What is the one thing keeping you from being a 10?" That qualitative data is often more valuable than the actual NPS score.

    3. The "Boring Annual Email" (#10)

    You called it "free money," and you're 100% right. Cash flow is the oxygen of an indie hacker. Moving a user from Monthly to Annual isn't just about LTV; it’s about getting that upfront capital to reinvest in the product (or just buy 12 months of peace of mind).

    4. A Question on the "Shareable Card" (#9)

    For the OpenGraph/Twitter card issue (crawlers not seeing the JS-generated image), have you looked into services like Bannerbear or Placid? You can hit their API when the "Share" button is clicked to generate a static image URL that social crawlers can actually read. It might cost a few bucks, but if a freelancer shares a "38-hour focus week" on LinkedIn and it renders perfectly, that's your best top-of-funnel driver.

    Bottom line: 60 hours for 10 permanent assets is an incredible trade. Most of us spend 60 hours "engaging" on X/Twitter and have nothing to show for it a month later.

    Looking forward to the 30-day update—especially to see if the Templates (#7) or the Free Tools (#8) start winning the SEO long game first. Godspeed, Max.

    1. 1

      The CSV export from the modal is the most counterintuitive tip in this comment and I'm going to sit with it seriously. The logic holds: if the exit is frictionless, the fear of the exit stops being the thing holding people back. The user who was going to cancel does it cleanly and leaves with good feelings. The user on the fence sees the exit offered and doesn't take it — that's a stronger conversion signal than someone who stayed because leaving felt hard. Main risk is it becomes a cue: "I can export later, so I don't have to decide now." Worth testing carefully against a control.

      On #4: the 7-8 landing page already asks "What would make it a 10?" — so that mechanic is in. What's surprised me is how rarely the blocker is a missing feature. It's usually a workflow friction I hadn't categorised as a product problem. The qualitative responses from passives have been more useful than the NPS number itself.

      The cash flow framing on #10 is the angle I under-sold in the post. LTV is a spreadsheet metric. "12 months of runway on a user you've already converted" is what the founder actually buys. Same transaction, different psychological weight.

      Bannerbear or Placid is going on the build list this week. A perfectly rendered "38-hour focus week" card on LinkedIn is worth the API cost — that's the exact user, exact audience, and exact moment the loop is designed to catch. The generic OG fallback is currently dropping that entire conversion. Appreciate the specific pointer, that one's actionable today.

  11. 2

    Worth adding to the loops list: substantive comments under other founders' posts. They pass the 30-day test because the comment persists, is indexable, and surfaces months later when someone searches the underlying question. Ten days into doing this consistently, the only thing in my PostHog attribution that compounds week over week is profile clicks from threads I commented in. Templates and free tools (#7 and #8) are the obvious version of this loop. Founder comments are the version that works before the product has enough surface area for templates.

    1. 1

      The meta point writes itself — this comment will index for something in three months and you'll get a profile click from it neither of us can predict. The mechanic is identical to the templates loop: persistent, indexable, surfaces when someone searches the underlying question. The one condition I'd add: the comment has to standalone. A "great post" indexes for nothing. A comment that answers a specific question gets found by the next person asking it six months later.

      The PostHog data showing profile clicks from threads compounding week over week is what I needed to take this seriously as a loop rather than a tactic. What's your ratio of new threads versus replies to existing ones?

  12. 2

    This framing is very good.

    The “will this still produce in 30 days if I stop touching it?” test is brutal, but probably the right one.

    I’m seeing the same thing with newsletter growth. Reddit comments, social posts, directories, DMs etc all feel useful, but most of them decay instantly. The only stuff that keeps compounding is search, referral loops, reusable content, and partnerships where the audience fit is real.

    The hard part is that rented channels are still how you get the first signal. So maybe the actual sequence is:

    1. rent attention until you find the message

    2. turn the winning message into owned loops

    3. stop pretending every channel deserves equal effort

    Obvious in hindsight, but easy to avoid when you’re in “just try everything” mode.

    1. 1

      The sequence is what the post doesn't say clearly enough. I wrote it as if the goal is to avoid rented channels, when the more honest version is closer to what you're describing: rent until the message is proven, then lock the winning message into owned infrastructure so it produces without your hand on it. The rented phase isn't the mistake — staying in it after the signal shows up is.

      "Stop pretending every channel deserves equal effort" is the uncomfortable half of the whole thing. Most founders in try-everything mode already know which one or two things are working. The try-everything framing is often how you avoid committing to a channel that might not scale the way you need it to. It feels like optionality. It's usually avoidance.

      What ended up being the owned unlock for the newsletter — was there a specific message that proved out before you built around it?

  13. 2

    The owned vs rented distribution frame is the right one, and the 30-day test is the sharpest version of it I've seen. On #10 (monthly to annual prompt), worth testing the timing carefully. Day 30 works for some segments, but the cohort I've watched convert hardest is the one that hits the second or third renewal cycle. By then they've absorbed the cost into their mental budget, so the perceived 'decision' is whether to switch their habit, not whether to spend the money. Reframing the copy from 'pay annually' to 'lock in your current price for a year' usually moves the needle on conversion too.

    1. 1

      The mental budget framing is the part I hadn't modeled. Day 30 catches users when commitment is highest but the recurring cost is still salient. Month 2-3 catches them after it's disappeared into the background — the decision shifts from "spend more" to "stop what I'm already doing." Those are genuinely different conversion moments with different copy requirements.

      My current guess is Day 30 converts the segment that's still consciously evaluating, and the later window converts the segment that has already decided without realising it. Might be worth running both segmented by activation depth — highly activated users at Day 30, lower-activation survivors at month 3 if they haven't churned by then.

      "Lock in your current price for a year" is going straight into the email. That reframe does real work.

  14. 2

    This "Rented vs Owned" distinction hits hard. I always feel like I am on a treadmill with social media—the moment I stop posting, the traffic just dies. Your "Will this still produce in 30 days?" test is such a great filter for what to build next.
    I am building my own product right now and I often forget that features can actually be marketing too. I am definitely going to implement that "annual upgrade" email—it is a "boring" win that I completely missed. Thanks for the breakdown, this is super practical!

    1. 1

      The treadmill framing is exactly it — the spike feels like progress, so you keep getting back on. "Features as marketing" is the real unlock for me too. Once you see it that way, half your roadmap looks different. One tip on #10: ship it as a one-time email at day 30, not a recurring nag. The leverage is in the moment they're invested, not the frequency. What are you building?

  15. 2

    This “loop vs campaign” test is a really useful filter. The part I like most is that it forces the growth feature to survive without founder energy. I’d probably add one more check before building each loop: what exact behavior should this make easier for an already-interested user? That keeps the loop from becoming clever distribution that does not actually reduce friction.

    1. 1

      That's a clean addition. The behavioral email and the trial-end modal both pass it — they surface the next action for someone who already showed intent. The share card is probably the one on my list that fails it on closer inspection: no friction removed, just a request dressed as a feature. Good pre-build filter. Does your version of the check apply to reactivation loops too, or mainly activation?

      1. 1

        Yes, I think it applies to reactivation too, but with a stricter bar.

        For activation, the loop can simply reduce friction around the next obvious step.

        For reactivation, it has to answer: what changed since the person left, and why is now worth another look?

        So I would treat reactivation as a good loop only when it is tied to a real new trigger: a shipped feature, recovered data, a missed outcome, a saved draft, or a clear unresolved job. Otherwise it becomes a polite campaign, not an owned loop.

  16. 2

    Great take on growth loops vs. rented channels! The 30-day test really makes you rethink what’s worth building. Excited to see the results in 30 days

    1. 1

      Thanks. The test cut more than it added for me — half the backlog failed it. Data drops in 30 days.

  17. 2

    This resonates. I'm building in the rental tech space and the early user acquisition phase is brutal. The key insight about owning your channels instead of renting them is spot on.

    1. 1

      The early acquisition phase being brutal is almost universal — the rented channels feel necessary because they produce signal fast, even if they don't compound. What does your current stack look like? Curious whether rental tech has any distribution angles that are naturally more ownable than others.

  18. 2

    This is such a thorough and fantastic list, thank you for taking the time to put this together. As soon as I have my pricing model up I plan to take your advice and use number 10, first, as you suggest!

    1. 1

      Thanks, curios to look at your results, good luck ;)

      1. 1

        yeah exactly - ran into this with my agent stack. the ones still running at 6 months are all writing to shared state. the ones that died just... accumulated outputs nobody ever read

        1. 1

          "Accumulated outputs nobody ever read" is a brutal and accurate description of most automation graveyards. The output existing isn't the loop — something downstream actually consuming it is.

  19. 2

    Been mapping this against my own setup. An agent that runs and stops is rented - same contract. It's the ones writing to shared state other agents can read that actually compound. Took me too long to notice.

    1. 1

      That's a clean extension of the framework. The agent isn't the loop — the state it writes to is. Same mechanic, different layer.

      Makes me think the right question for agentic stacks is the same 30-day test applied one level up: does the output of this agent persist somewhere useful after it stops running?

  20. 2

    What struck me most is the 30-day test: "Will this still produce if I stop touching it?" That single question just saved me months of building the wrong things. I've been grinding on rented channels (DMs, posts) and wondering why growth stops when I breathe. Now I get it — I need to build loops, not campaigns.

    Also, the honesty about the boring annual upgrade email being worth more than all the clever ones? Painful but necessary to hear. Most people would've buried that. You put it at #1.

    A couple of quick questions if you have a moment:

    1. Is Flowly's current model completely paid, or do you still have a free tier that feeds the premium loops?

    2. What's the best way to reach you — DM here, email, or something else? Would love to ask one follow-up about how you prioritized which loop to build first.

    Again, really generous of you to share the actual implementations and what you didn't build. Rare to see that level of honesty.


    1. 1

      Glad the 30-day test landed — it's been the most useful filter I've found for cutting growth theatre out of the backlog.

      To your questions: yes, still a free tier. Free plan with a 14-day Pro trial on signup, no card required. The whole activation loop depends on it — the reverse trial is what makes the trial-end personalization (#1) and the behavioral emails (#2) worth building. No free tier means no one to convert.

      Best way to reach me is [email protected]. Happy to answer the prioritization question — drop it whenever.

  21. 2

    That delta check conversation we had a few weeks ago is running through this entire post you were solving the "invisible work" problem at the infrastructure layer and now you've built 10 versions of the same insight at the distribution layer. The 30-day test is a great framework for separating growth theatre from growth infrastructure. The HiveMind pushback on conversion infrastructure vs distribution is fair but the honest version is that most founders don't even have the conversion infrastructure yet, starting there and being honest about the top-of-funnel gap is more useful than chasing distribution channels that leak.

    1. 2

      "Leaky floor makes every distribution bet harder to measure" is exactly it. You end up in a loop where no channel ever proves itself because the signal is too noisy to read.

      The other thing the floor problem hides: when conversion is broken, founders usually blame the channel. Wrong traffic, wrong positioning, wrong audience. Sometimes true. But often the channel was fine and the floor was just leaking.

  22. 2

    Sharp execution and the 30-day test is going to get quoted a lot. One pushback though: most of these "owned" loops still depend on upstream rented channels to bring traffic in. Templates pages and free tools rank through SEO, which is itself a rented channel — algorithm changes, Google AI overviews quietly killing tool-page traffic in 2025-2026, ranking volatility. The owned-vs-rented dichotomy is cleaner in theory than in practice.

    The sharper read: what you built is conversion infrastructure, not distribution. The 10 features improve activation, retention, expansion, reactivation of traffic that already arrived. Real distribution — getting traffic to the templates in the first place — still needs hand-pumping for 6-12 months.

    The pattern we see at Hivemind across growth-stack rebuilds: founders ship conversion infrastructure and call it distribution because the framing feels better than admitting top of funnel still isn't solved. Different problems, different time horizons.

    That said — ship #10 first is exactly right. Best line in the post.

    1. 1

      The conversion infrastructure point is fair and I'm not going to argue past it — you're right that the framing in the post is doing some flattering work.

      The honest version: I have conversion infrastructure and a hand-pumped top of funnel. The templates and tools are a bet that 6-12 months of SEO compounding eventually makes the hand-pumping optional. That bet might not pay. The Google AI overview risk on tool pages is real and I don't have a clean answer for it.

      Where I'd push back slightly: the owned/rented line I was drawing was less about distribution independence and more about whether the asset keeps working when I stop touching it. A ranked page that survives an algorithm update is more owned than a tweet that dies in 48 hours, even if neither is truly algorithm-independent. Degrees of ownership rather than binary.

      But the core critique stands. What does top-of-funnel look like for the Hivemind companies that got past the hand-pumping phase — was there a specific unlock or just compounding volume eventually tipping over?

      1. 1

        "Degrees of ownership rather than binary" is the right sharpening. Concede that one back.

        To your top-of-funnel question — across the Hivemind portfolio, two patterns recur:

        Compound surface: 18-24 months of consistent content where one piece unexpectedly hits and pulls 100x the others. Founders can't predict which will hit, but they can guarantee it never does if they stop shipping. The unlock is surface area, not tactic.

        Adjacent unlock found through customer conversations, not strategy sessions. Founder ships tons with no traction, customer mentions an adjacent use case, founder pivots messaging, inbound starts.

        Honest caveat: most never fully escape hand-pumping. They escape ops hand-pumping (automation, referrals, SEO compounding) but still hand-pump strategic moves. "Past hand-pumping" is partial for 80% of B2B SaaS.

        We map this at Hivemind constantly (myosin.xyz/hivemind) — where founders actually break out vs where the playbook says they should.

        1. 1

          The compound surface pattern is both reassuring and maddening — reassuring because the mechanic is clear (more surface, longer time horizon), maddening because there's no signal between "this is compounding slowly" and "this is dead." You just ship and wait.

          The adjacent unlock through conversations is the one I keep underweighting. I have four customers using Flowly in ways I didn't design for and haven't fully interrogated. Reading that pattern makes me think that's the call I should be scheduling this week, not more loop optimization.

          The ops vs. strategic hand-pumping distinction is the most useful reframe in this thread. Escaping ops hand-pumping is achievable and most of what the 10 features above are actually doing. Escaping strategic hand-pumping might just mean you've stopped paying attention.

          One honest question off the Hivemind data: is there a stage where the adjacent unlock reliably surfaces — specific revenue band, number of customers — or does it show up on its own timeline regardless?

  23. 2

    The “paying with effort instead of dollars” line is painfully accurate.

    I’ve been noticing the same thing with SEO, Product Hunt, Reddit, and social traffic. A spike feels good, but if the system stops working the moment you stop pushing, it starts feeling more like rented momentum than real leverage.

    1. 1

      "Rented momentum" is a better phrase than anything I wrote — stealing that.

      The thing that changed my thinking was realizing the spike isn't the problem. The spike is fine. The problem is when the spike is the strategy — when the whole plan is "we'll do another launch" or "we'll post more." At some point you're not building a business, you're booking a treadmill.

      SEO is the interesting edge case in your list, because it can become owned — but only after the compounding phase kicks in, which takes 6–12 months and feels like nothing is working the entire time. The templates gallery and the free tools I shipped are bets on that phase. Right now they're producing zero. In 9 months they might be the top acquisition channel. That gap between effort and return is the whole game with owned loops, and most people quit before the payoff.

      What's your current ratio of owned vs rented in your stack? Curious whether anyone has actually found the right balance or if it's always a rebuild.

      1. 1

        I think I’m still heavily rented right now honestly.

        Most of the things I’m working on still depend on me actively pushing:
        posting, shipping new pages, testing positioning, participating in communities, trying different SEO branches, etc.

        The only parts that start feeling slightly owned are the things that keep getting discovered even when I stop touching them for a while:

        • older SEO pages

        • useful comments

        • GitHub mentions

        • workflow-specific content

        But the weird part is that none of those looked valuable at the beginning.

        Early on they all just felt like “nothing is happening.”

        1. 1

          That last observation is the one worth pinning.

          The owned things never look valuable at the start — that's almost definitional. If the return were obvious early, it would already be captured. The problem is that at month two, a slow-burn compound asset is completely indistinguishable from a dead end. You only know which one it was after enough time has passed.

          Your list is also interesting because every item on it had a one-time creation cost and stayed discoverable without maintenance. That's probably the actual signal for what "owned" means in practice.

          Are your SEO pages broad keyword plays or specific workflow/problem pages? The specific ones seem to age better in my experience.

          1. 1

            The workflow/problem pages have been much more durable for me so far.

            Broad keywords get impressions faster, but the traffic quality usually feels weaker and less compounding.

            1. 1

              Matches what I'm seeing too. Broad keywords are a vanity metric trap — impressions feel like progress but the intent is too shallow to convert.

              Workflow pages also tend to attract backlinks naturally because someone writing about the same problem links to a specific solution. Broad pages rarely earn that.

              1. 1

                Yeah — the backlink point especially changed how I think about SEO pages.

                A broad keyword page might get searched more, but it’s hard for someone to naturally reference it in a discussion because it’s too generic.

                But a page tied to a very specific workflow/problem can become “the page I send someone when they hit this exact issue.”

                That feels much closer to how links actually happen organically now.

                I’ve also noticed workflow pages tend to generate much more useful search queries in GSC over time. The impressions grow slower, but the query graph becomes much more specific and conversion-oriented instead of broad informational noise.

                1. 1

                  The GSC query graph point is underrated. A broad page plateaus on a handful of head terms. A workflow page keeps accumulating long-tail variants you never would have targeted intentionally — the audience essentially writes your keyword strategy for you over time.

                  The "page I send someone" framing is also how I think about the templates gallery. If it works, it won't be because it ranked for a big keyword. It'll be because someone in a Slack group or a forum drops the link when someone asks a specific question.

                  1. 1

                    Exactly. The distribution mechanism is different too.

                    A broad keyword page mostly depends on Google deciding to rank it.

                    But a workflow/problem page can survive through:

                    • search

                    • Reddit replies

                    • Slack threads

                    • internal company docs

                    • bookmarks

                    • “here, use this” sharing

                    That makes the traffic feel structurally different somehow — less spike-driven and more embedded into actual workflows.

                    I think that’s also why these pages often look unimpressive for a long time. The distribution is fragmented and slow, but much harder to fully disappear once it starts spreading.

                    1. 1

                      "Embedded into actual workflows" is the right frame. Google can derank a page. It can't un-embed something from a company's internal Notion doc or a Slack thread that gets pinned.

                      That's also why the traffic looks unimpressive for so long — none of those distribution channels show up in your analytics cleanly. It's all dark social and direct. The page looks like it's doing nothing while quietly spreading through channels you can't see.

  24. 2

    "Loops not campaigns" is a nice line but you literally do not have data yet. Come back in 30 days. Until then this is theory dressed up as a playbook.

    1. 1

      Fair shot. The data caveat is real and I called it out in the skeptic section, so we are on the same page. Two of the ten already have measurable lift inside Flowly: the trial-end personalization (modal CTR up roughly 1.7x in the small sample I have) and the behavioral email branching (one variant has 2x the click-through of the old flat-drip version). The other eight are bets backed by other companies' published data, not mine. I will come back in 30 days with the conversion delta on the full set. If you want me to tag you in part 2, drop your username.

  25. 2

    Quick question on the shareable stats card. How did you handle abuse? Could a user just fake their week, sign the token themselves, and farm impressions?

    1. 1

      The backend signs; the frontend never has the secret. The verification endpoint looks up the user's actual stats for that week server-side, no client input on the numbers themselves. So the worst a malicious user can do is share a link to their own real week, repeatedly, which is the whole point of the loop.

      What I have not solved: nothing stops a user from sharing an empty or embarrassing week. I considered a minimum-threshold gate ("share unlocked at 10+ hours tracked") but it felt user-hostile. Open to thoughts on whether a soft warning ("your week looks light, share anyway?") is worth the friction.

  26. 2

    We did the public roadmap last year on a B2B tool and it went the other way. Half the upvotes were from competitors trying to scout our pipeline, and the noisiest voters were the loudest free users who never upgraded. We ended up restricting voting to authenticated paying users only. Worth thinking about before you let logged-out users near the upvote button.

    1. 1

      This is the comment I came here for. Mine is auth-required for voting today (logged-in only, anyone can read), which dodges half the problem you describe. The "free users vote loudest and do not pay" part is the one I am watching.

      Two things I am planning if it gets noisy. First, weight votes by account age and plan tier so a day-old free account counts for less than a paying user who has been around for months. Second, add a small "is this blocking you right now" tag separate from the upvote. Those are different signals: one is "I would be happy if this existed," the other is "I would pay more if this existed." Most public roadmaps mush them together and end up with a queue that is optimized for delight, not willingness to pay.

      Did the noise actually drive bad prioritization for you, or did it just make the page ugly? Trying to figure out where the real cost is.

  27. 2

    First-time founder here, this is exactly what I needed. Stupid question: where do you draw the line between a "loop" and just a feature? Is calendar sync a loop? Is dark mode?

    1. 1

      Not stupid; it is the question that does the work.

      The working definition: a feature is a loop if using it produces an asset that either pulls in another user, or raises the cost of leaving for the current user. Calendar sync is a retention loop because the moment a user connects their Google Calendar, the switching cost goes up dramatically; she is not going to redo that connection in another tool casually. Dark mode is neither: nobody signs up for dark mode and nobody stays for it.

      Most product features are not loops, and that is completely fine. The mistake is treating non-loops as if they were and being surprised when they do not produce growth. Build features for the user. Build loops on top of features. Different jobs.

  28. 2

    Disagree on #6. Referral programs are a tax on your trial conversion before you have PMF. Build last, not now.

    1. 1

      Two friends told me this exact thing before I shipped it. The counter: the referral mechanic costs me approximately zero per month while inactive (one cold table, one webhook branch, a Settings link nobody is forced to visit). The "tax on trial conversion" critique is real only if I aggressively push the share CTA during onboarding or trial-end, which I am not. The CTA lives in Settings. Nothing in the activation path mentions it.

      If the data in 30 days shows the Settings link is somehow hurting conversion, I will pull the surface. The mechanic stays. Half-built referral systems are the things that bite you in month twelve.

  29. 2

    How did you decide which features to ship as loops vs which to leave as one-off launches? I have a backlog of growth ideas and no framework for picking.

    1. 1

      The 30-day test from the post is the main filter. The second filter I run is the cost asymmetry between "install now" and "install later." Referral was a good example: low cost now (one table, one webhook condition), high cost later if I have to bolt it on after a viral moment.

      The third filter is whether the feature creates a public artifact. Templates pages, the public roadmap, the share card: all of them produce something Google or a social feed can crawl. That public artifact is what compounds. A clever in-product feature that nobody outside the product ever sees cannot compound.

      If a feature passes the 30-day test, the cost-asymmetry test, and the public-artifact test, it goes on the build list. If it fails two of three, it gets cut.

  30. 2

    Posting from someone who has run growth at two productivity SaaS. Half this list is correct, half is local maxima. Behavioral emails (#2) and M2A upsell (#10) are universally right. The shareable stats card and public templates are right for some niches and wrong for others, and freelancer time-tracking is probably one of the wrong niches because your users will not post their hours to social. The NPS auto-route to G2 is clever and I am stealing it. The referral program at your stage is theater. The public roadmap will eat 4 to 6 hours a week of your time within 90 days. Otherwise solid.

    1. 1

      This is the most useful comment on the post. Let me take it line by line because every point is doing real work.

      Agreed on behavioral and M2A being universal.

      On the stats card being niche-dependent: I think you are partially right but the assumption I am testing is narrower than "freelancers will post their hours to social." Freelancers do post evidence of discipline, but to a specific audience: other freelancers and small founders on Twitter and LinkedIn, in the "showing my work" subgenre that is actually pretty active. I am not betting on Wrapped-scale virality. I am betting on a narrow, qualified loop inside the community my users already inhabit. If 30 days of data shows zero shares, I will pull the email integration first and the button second.

      Agreed in principle on referral being theater this month. The defense is that the cost of having the mechanic latent is roughly zero and the cost of bolting it on after a moment of momentum is high. It is an insurance policy this quarter, not a growth lever.

      The public roadmap eating 4 to 6 hours a week is the claim I most want to dig into. What ate the time: responding to upvotes individually, prioritization arguments with the team, or meta-conversations about why a long-promised item still had not shipped? My current plan is to batch responses to one 30-minute slot a week and use canned replies for "we hear you, status has not changed." If that is naive, I would rather know now than at week twelve. What did your roadmap look like at the 90-day mark?