The BuilderStack channel has published 48 videos. Median views across all of them: 30. The top video has 374. Six subscribers. I'm not going to pretend those are impressive numbers.
Inside those 48 videos, performance splits along archetype lines in a gap too large to attribute to noise. Product-framed shorts — videos that compare two tools or highlight a specific data point about one tool — land a median of 184 views. Build-in-public shorts — "I implemented X in my pipeline" — land a median of 13. That's 14x. The gap has widened as the sample grew, not narrowed.
This article covers what the split means, why I think it happens, what I changed after I saw the pattern, and what I'd do differently starting over. I'm explicit about the data's limits throughout, because 48 videos is a small sample and I don't want to claim more than it proves.
The numbers
The analytics system tracks three archetype categories:
| Archetype | Videos | Median views | Notes |
|---|---|---|---|
| product_findindiegame | 11 | 184 | Indie game vs AAA data comparison |
| unknown | 16 | 26 | Everything not in the other two |
| build_in_public | 3 | 13 | Pipeline updates, CI fixes |
product_findindiegame videos feature a specific Steam game's data point — review count, price, studio size — compared against a better-known title. The format is almost algorithmic: find an indie game with more Steam reviews than a major title, state the numbers in the first five seconds, add one piece of context. No opinion required.
The unknown category is everything else: ETL observations, architecture notes, analytics findings, one-off shorts that didn't fit the other templates. The 26 median is being pulled up by a few outliers — most of these land in the 5-15 view range.
The build_in_public category is me talking about my pipeline: "I fixed the Bluesky QC gate," "I upgraded the thumbnail generator." Three videos, median 13 views.
Hook pattern data lines up with the archetype split. HIGH-performing videos (≥45 views, which is 1.5× the 30-view median) break down as: 9 with "other" hooks, 4 with numeric hooks. LOW-performing videos (≤18 views, held for 72+ hours) break down as: 3 "other," 2 first-person, 2 numeric. First-person hooks — "I built," "I'm running," "I noticed" — show up disproportionately in the low performers.
Why the gap exists, as far as I can tell
I don't have certainty here, and the sample is too small for certainty. The explanation that holds up is this: YouTube's recommendation algorithm surfaces content to viewers who don't know the channel at all. It needs a strong, immediate signal about what value a viewer gets before it shows them the video. "This game costs $10 and has more Steam reviews than Elden Ring" is a concrete, searchable, immediately legible value proposition. "I fixed a bug in my Bluesky pipeline" is not.
The two-host AI dialogue format generates the product content. It was designed for information density — compare two things, state numbers, give a verdict — and that density transfers well to the cold-start problem on Shorts. A viewer who has never heard of BuilderStack can understand the value in three seconds or less.
Build-in-public content requires context. You need to know what the pipeline is, why the QC gate matters, why the fix was non-trivial. At six subscribers, essentially no viewer has that context. The content that works without it is the content that gets found.
The analytics-driven directive auto-tuner I built earlier updates archetype weights based on exactly this kind of data. After the 14x gap became clear, the system shifted heavily toward product_findindiegame. The build_in_public archetype is now a small fraction of the generation queue. That's a direct mechanical response to the signal rather than a subjective judgment call.
Where the data breaks
Three things would change my read:
Sample size on build_in_public. Three videos is a very small sample. If it grew to 20 videos and the median stayed at 13, I'd be more confident. If the median moved to 60 after more videos, I'd revise. Right now I'm treating 13 as real signal primarily because the 14x gap is so large — even if the true median is 2-3x off in either direction, the gap would still be substantial.
Channel scale changes the math. Everything here is early-channel, zero-subscriber, cold-start data. If BuilderStack reached a few thousand subscribers, the dynamics shift — subscribers become a real distribution channel, and build-in-public content gets seen by people who already care about the pipeline. The current pattern may not hold at a different scale. I'm aware that I'm drawing conclusions about audience behavior from a channel the algorithm hasn't invested in yet.
The yt-analytics classifier assigns archetypes heuristically. The unknown bucket has 16 videos because I couldn't cleanly classify them. Some of those might be product-framed content that got misclassified. If so, the product median might be lower than 184. Or the gap might be larger if some unknown high-performers are actually product content.
What I changed
The most direct change: the analytics-driven directive now weights product_findindiegame at roughly 70% of daily generation. Before this analysis, the split was more even.
I also changed the hook framing for the remaining build-in-public shorts. Instead of "I built X," the hook is now "Here's what I found when I built X" — leading with the finding rather than the authorship. Whether that framing change helps, I don't know yet. No data on it.
The CI branch drift work — different pipeline branches generating different archetype distributions — came out of this analysis. I needed to test new archetype framings without contaminating the main channel's performance signal. The branch approach lets me run controlled experiments without polluting the primary data.
I also updated the YouTube slide renderer to add a numeric-hook slide type specifically for the product content. HIGH performers use numeric hooks more than LOW performers in the data. The new slide type leads with the number in large text before transitioning to the comparison context. It's a small formatting change, but the data suggested the number-first structure was working.
What I'd do differently
If I were starting the BuilderStack channel with what I know now, I would not have published the build-in-public content in the first 50 videos.
Not because it's bad content — I think it's genuinely useful for people watching a developer experiment with this kind of pipeline. But at zero-subscriber scale, build-in-public content doesn't reach the audience that would find it useful, and it doesn't build the audience that would make the channel worth following. It's content made for an audience I don't have yet.
The sequencing matters. Get discovery working first by publishing content the algorithm can surface to cold audiences. Once there's a subscriber base that opted in to "I'm watching this channel about AI tools and OSS alternatives," the build-in-public content finds its readers because they already understand the context and care about the outcome.
The three-site content pipeline was designed with both the SEO articles and the YouTube channel in mind. The article format that works on Dev.to — first-person, technical, "here's what I learned" — is not the same format that works for YouTube Shorts at cold-start. I conflated those two audiences early. The 14x number is the clearest signal I have that the conflation was wrong.
The pipeline health monitor and content quality gate apply equally to both content streams. What they don't arbitrate is whether the audience wants to watch what I want to make. That judgment belongs outside the automation layer — and the data I have makes it easier to make.
FAQ
Is 48 videos enough to draw conclusions?
No, but the gap passes a rough sanity check. If the true median for build_in_public is 40 views (3x off from the observed 13) and the true median for product is 120 (well below the observed 184), the gap is still 3x. A 14x observed gap with a real underlying gap anywhere from 3x to 20x is still a real difference worth acting on — especially when the cost of acting (generating more product content) is low.
Does this mean build-in-public YouTube content doesn't work?
Not generally. Channel-and-audience specific. For channels with large existing followings, build-in-public content works well because subscribers are already invested in the creator's work. At zero-subscriber scale with no algorithmic momentum, cold-start viewers don't have the context to make the content land. The same content format is targeting the wrong audience at the wrong channel stage.
How does the auto-tuner use this data mechanically?
The yt-analytics script computes HIGH and LOW thresholds (1.5× median and 0.6× median, respectively) per archetype across videos old enough to have stabilized. It updates a directive YAML with the weighted archetype pool. The generation scripts read that YAML on each run to select which archetype to produce next. The analytics-driven directive article has the full implementation detail.
What would change your conclusion?
If the build_in_public sample reached 15+ videos with a median above 60, I'd call the pattern inconclusive. If I found those 13-view build-in-public videos were converting to subscriptions at a meaningfully higher rate than the 184-view product videos, I'd treat them as a different kind of success even with lower raw view counts. I don't have subscription conversion data at the per-video level yet.
Related: How the analytics directive selects archetype weights · CI branch drift system for archetype experiments
Part of an ongoing 6-month experiment running three AI-curated directory sites. The technical claims here are real; this article was AI-assisted.
Top comments (0)