From ea8943ec1c3c176699a4d5ebf0a2e380ba8acce6 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:30:14 -0400 Subject: [PATCH 01/14] =?UTF-8?q?feat(course):=203.1=20Product=20Brief=20v?= =?UTF-8?q?2=20template=20+=20course-wide=202.1=E2=86=922.5=20mislabel=20a?= =?UTF-8?q?nd=20Maven=20price=20sweep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3.1: v2 lesson header (Module 3 · Lesson 3.1 · CORE) + Progress chain, hook tightened to 3 sentences, Done/You-have-now/Next/If-blocked footer (hardcoded 'Artifact #4 of 6' index retired), Ch 2.5 synthesis attribution fixed (2 body leftovers), Maven cohort de-hardcoded (price + review score -> capability language). Sweep: same defect classes fixed in 5.1, 4.1, 4.3a, build-path-decision-worksheet, vibe-prd-template (incl. doubled-word typo). 6 ratchet signatures added in this commit; 8/8 validators green. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../build-path-decision-worksheet/index.md | 2 +- .../must-have-segment-pmf-test/index.md | 2 +- .../one-page-product-brief-vibe-prd/index.md | 30 +++++++++++-------- .../index.md | 2 +- .../index.md | 2 +- .../vibe-prd-template/index.md | 6 ++-- data/course_banned_strings.yaml | 13 ++++++++ 7 files changed, 37 insertions(+), 20 deletions(-) diff --git a/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md b/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md index 2ed3e8257..784806bfd 100644 --- a/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md +++ b/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md @@ -38,7 +38,7 @@ She showed us the contract on a Tuesday. By Friday we had walked her through the ## How to use this -Friday afternoon, alone, 30 minutes, before coffee runs out. Bring three documents: your filled-in [Validated Problem Statement](/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/) from Chapter 2.1, your filled-in [one-page brief](/course/tech-for-non-technical-founders-2026/vibe-prd-template/) from Chapter 3.1, and a current bank statement showing months of runway. Pen on paper. Phone in another room. +Friday afternoon, alone, 30 minutes, before coffee runs out. Bring three documents: your filled-in [Validated Problem Statement](/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/) from Chapter 2.5, your filled-in [one-page brief](/course/tech-for-non-technical-founders-2026/vibe-prd-template/) from Chapter 3.1, and a current bank statement showing months of runway. Pen on paper. Phone in another room. Answer the five questions in order. Each one is factual, not aspirational. "Number of paying pre-orders" is a count from your Stripe dashboard, not a vibe. "Months of runway" is cash on hand divided by monthly burn, not a guess. The matrix at the bottom routes you to Path 1, 2, 3, or 4 based on the five answers. diff --git a/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md b/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md index 450144716..3371d5e36 100644 --- a/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md +++ b/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md @@ -171,7 +171,7 @@ Under 40% means you have a product problem, not a marketing problem, and the Q2- |---|---|---|---| | **You built for the wrong segment** | The product works, but the people you onboarded do not have the pain. Your Q5 slice shows: one segment is at 55%, the rest are at 5%. | Stop selling to the audience and start selling to the segment. | [Chapter 5.3a](/course/tech-for-non-technical-founders-2026/first-ten-customers-network-list/) personal-network outreach to the right segment. | | **You built the right thing, but it is not finished** | The Q3 verbatims are hedged ("it is nice to have," "I would use it if it had X"). The main benefit answers lack conviction. | Go back into the build and finish the thing. | Schedule a [Friday demo](/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/) with the next release. | -| **The pain is real, but your product is not the relief** | The Q4 verbatims name a workaround that is already 80% of the job (a spreadsheet, an existing tool, a person they pay). | Either niche into the 20% the workaround does not cover, or pivot. | [Chapter 2.1](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/) validated-problem statement. | +| **The pain is real, but your product is not the relief** | The Q4 verbatims name a workaround that is already 80% of the job (a spreadsheet, an existing tool, a person they pay). | Either niche into the 20% the workaround does not cover, or pivot. | [Chapter 2.5](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/) validated-problem statement. | | **The product solves the pain, but the workflow is too long** | Users say "very disappointed" but session logs show they bailed before the payoff. Funnel collapses between signup and the "30-minute save" moment. | UX cut, not a strategy pivot. Shorten the path to the first win. | Retest after shortening the funnel; re-run the 40% test after the next UX release. | ## When founders should skip the test diff --git a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md index 5fc8ed6ad..482ffc171 100644 --- a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md +++ b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md @@ -29,17 +29,19 @@ canonical_url: "https://jetthoughts.com/course/tech-for-non-technical-founders-2 related_posts: false --- -> **Module 3 · Step 1 of 2** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> **Module 3 · Lesson 3.1 · [CORE]** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) > > **Input:** a one-page validated problem statement (from [Ch 2.5 · Mom Test Synthesis](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/), after running interviews in Ch 2.3 + 2.4) + verbatim "describe in one sentence" vocabulary (from your [Ch 2.6 prototype sessions](/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/) - Section 3 of the brief uses these exact words) > > **Output:** a one-page Product Brief (Vibe PRD) you can hand to Lovable or a hired team +> +> **Progress:** M3 · 1 of 2 · Results so far: a validated problem statement (2.5) + a prototype pass/fail with user vocabulary (2.6) - this page turns them into the one page Module 4 builds from > **TL;DR:** One page, five sections. The problem (verbatim from interviews), the user's 60-second context, the one workflow, the one metric, and what you're NOT building. Hand it to Lovable or a contractor tomorrow morning. -Sarah, an EdTech founder we audited in Q2 2026, had 17 settings toggles in her admin UI. In a one-day spec review we found 12 had no backend code and 2 crashed on toggle. The Vibe PRD she wrote next listed 5 settings she actually needed. Everything else came out. That is what a one-page brief does to a build that has drifted - it forces every line to earn its place tomorrow morning. +Sarah, an EdTech founder we audited in Q2 2026, had 17 settings toggles in her admin UI - 12 had no backend code and 2 crashed on toggle. The Vibe PRD she wrote next listed the 5 settings she actually needed, and everything else came out. That is what a one-page brief does to a build that has drifted: it forces every line to earn its place. -This chapter walks you through the **Product Brief** - some founders call it a **Vibe PRD** (PRD stands for Product Requirements Document). It is a single page that names the user, the problem, the one workflow you are building, the one metric you will measure, and what you are explicitly NOT building. The five sections below are the same ones Drew Falkman teaches in a 4-week Maven cohort for $1,000; this chapter walks you through the template so you can fill yours in tonight. +This chapter walks you through the **Product Brief** - some founders call it a **Vibe PRD** (PRD stands for Product Requirements Document). It is a single page that names the user, the problem, the one workflow you are building, the one metric you will measure, and what you are explicitly NOT building. The five sections below are the same ones Drew Falkman teaches in a paid multi-week Maven cohort; this chapter walks you through the template so you can fill yours in tonight. ![One-page Vibe PRD template with five labeled sections: the problem, the user and their context, what you're building, success metric, what you're NOT building.](vibe-prd-template-visual.svg) @@ -60,7 +62,7 @@ The simplest reliable order is *problem → user → build → metric → no-go* > **How long is each section?** Each of the 5 sections is 2-4 sentences in plain English. Section 5 (no-go list) is 5-8 bullet lines. Total brief ≤ 250 words on one side of A4 at 11pt. If you spill past 250 words, the persona is too broad or the pain is too vague - revise the section that ran longest first. -### Section 1 - The problem (lifted from Chapter 2.1 synthesis) +### Section 1 - The problem (lifted from your Chapter 2.5 synthesis) What goes in it: one paragraph copied directly from your [validated problem statement](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/). Named persona, named industry, dated 10-call sample, one verbatim quote, one quantified cost. @@ -137,11 +139,11 @@ flowchart TD **Traditional PRD if** the next stop is a senior engineering team, an in-house product committee, or a board that needs a budget number attached. Senior engineers read briefs to find load-bearing assumptions you haven't named, and they expect a data model, an API outline, and an integration list. Product committees expect a roadmap, a phasing plan, and a go-to-market section. Both audiences will write the missing parts themselves if you don't include them, which is rarely what you want. -The trap most founders fall into is writing a traditional PRD for a junior or an AI agent. The 5-page document buries the one paragraph the builder needed. By page 3, the agent has skimmed past the no-go list and started building a settings page. +The classic trap is writing a traditional PRD for a junior or an AI agent. The 5-page document buries the one paragraph the builder needed. By page 3, the agent has skimmed past the no-go list and started building a settings page. -## When the $1,000 Maven course is worth it +## When a paid cohort course is worth it -Drew Falkman runs ["Vibe Coding Data-Enabled AI Apps" on Maven](https://maven.com/), a 4-week cohort priced at $1,000. The course teaches the same five-section Vibe PRD template, plus the Lovable + Supabase + Stripe + GitHub stack, plus live community and 1:1 instructor feedback. The Maven [course reviews](https://maven.com/p/about) hover around 4.8/5. +Drew Falkman runs ["Vibe Coding Data-Enabled AI Apps" on Maven](https://maven.com/), a multi-week live cohort (paid - check the course page for current pricing and format). The course teaches the same five-section Vibe PRD template, plus the Lovable + Supabase + Stripe + GitHub stack, plus live community and 1:1 instructor feedback. | Scenario | Maven cohort is worth it | This template is enough to start | |---|---|---| @@ -150,7 +152,7 @@ Drew Falkman runs ["Vibe Coding Data-Enabled AI Apps" on Maven](https://maven.co | You want to go deeper on Lovable + Supabase + Stripe stack mechanics. | Yes. The cohort spends 2 of 4 weeks on this. | No. You'll need the stack tutorials anyway; the template is concept-only. | | You can sit alone for 2 hours and finish the brief from the page above. | No. | Yes. The cohort buys peer review + deadline + deeper stack work, but you'll ship either way. | -**Rule of thumb:** If you can sit alone for two hours and finish the brief, start here. The cohort buys structure, deadline, and stack depth. If you can't sit alone, $1,000 buys the accountability that gets the brief out of you. +**Rule of thumb:** If you can sit alone for two hours and finish the brief, start here. The cohort buys structure, deadline, and stack depth. If you can't sit alone, the cohort fee buys the accountability that gets the brief out of you. ## What to do tomorrow @@ -166,7 +168,7 @@ Skipping the brief and going straight into prompting is the most common way a no ## What comes next (Chapter 3.2, then Chapter 4.1) -You now have two validated artifacts: a one-page problem statement (from Chapter 2.1 synthesis) and a one-page Vibe PRD (from this chapter). Two more steps before Lovable touches your brief: +You now have two validated artifacts: a one-page problem statement (from your Chapter 2.5 synthesis) and a one-page Vibe PRD (from this chapter). Two more steps before Lovable touches your brief: 1. **[Chapter 3.2 - Quality-check your brief: features to outcomes](/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/)** - stress-test Section 3 ("what you're building") by rewriting feature nouns as outcome-shaped job stories. This is the quality gate on the brief you just wrote, not a separate writing exercise. 2. **[Chapter 4.1 - Should You Hire? The 2026 Decision Tree](/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/)** - a 5-question decision tree that routes you to one of 4 build paths (validate without code / self-serve / fractional CTO / hire). The default for a non-technical founder is self-serve ([Chapter 4.3a · Stack](/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/) + [4.3b · Build Phases](/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/)), but only after the decision gate confirms it's right for YOUR runway and YOUR problem. Chapter 4.1 explicitly requires the outcome-shaped brief from Chapter 3.2 as its input. @@ -175,7 +177,7 @@ A Vibe PRD is what's left when you remove everything an AI agent or a hired juni ## Further reading -- Drew Falkman, [Vibe Coding Data-Enabled AI Apps on Maven](https://maven.com/) - the $1,000, 4-week cohort that teaches the Vibe PRD with live feedback. Recommended if accountability is your blocker. +- Drew Falkman, [Vibe Coding Data-Enabled AI Apps on Maven](https://maven.com/) - the paid live cohort that teaches the Vibe PRD with instructor feedback. Recommended if accountability is your blocker. - Marty Cagan, [Good Product Manager / Bad Product Manager](https://www.svpg.com/good-product-manager-bad-product-manager/) - the canonical essay on what a PRD is for. The Vibe PRD is the AI-era compression of the same shape. - Marty Cagan, [Product vs Feature Teams](https://www.svpg.com/product-vs-feature-teams/) - why the brief shapes what gets built. The no-go list is the part feature teams ignore. - Jake Knapp and John Zeratsky, [Foundation Sprint (Click, April 2025)](https://www.thesprintbook.com/foundation-sprint) - the 2-day version of the same artifact for teams that have 2 days. The Foundation Sprint workbook is freely sampled from the book site. @@ -183,9 +185,11 @@ A Vibe PRD is what's left when you remove everything an AI agent or a hired juni - Veracode, [GenAI Code Security Report 2025](https://www.veracode.com/blog/genai-code-security-report/) - the 45% LLM-generated-code-flaw stat. Context for why the no-go list matters. - Y Combinator, [How to Write a PRD (Startup Library)](https://www.ycombinator.com/library/) - YC's distilled version of the same compression. -> **Done when:** All 5 sections of your one-page brief are filled in, Section 1 is copied verbatim from your validated problem statement, and you have read the brief aloud to one peer. -> **Founder OS · Artifact #4 of 6:** The one-page Product Brief (Vibe PRD). Save as `Product Brief - [date]` in your `Founder OS` folder. Module 4.1 reads the brief to decide your build path; Module 4.3 reads it to prompt Lovable. -> **Next click:** [3.2 · Quality-check your brief: features to outcomes](/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/) +> **Done:** all 5 sections of your one-page brief are filled in, Section 1 is copied verbatim from your validated problem statement, and you have read the brief aloud to one peer. +> +> **You have now:** a validated problem statement (2.5) + prototype vocabulary (2.6) + the one-page Product Brief (Vibe PRD). Save it as `Product Brief - [date]` in your `Founder OS` folder - Chapter 4.1 reads it to decide your build path, and Chapter 4.3 reads it to prompt Lovable. +> +> **Next:** [3.2 · Quality-check your brief: features to outcomes](/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/) - the quality gate on the brief you just wrote. > **If blocked:** If you can't fill Section 3 (what you're building) in one paragraph, your scope is too big. Pick the single smallest workflow one persona can complete end-to-end and cut everything else to the no-go list. > **Case Study: Tomas & Mia** diff --git a/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md b/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md index 3464ccf34..bed0e7ce4 100644 --- a/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md +++ b/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md @@ -184,7 +184,7 @@ You are about to hit a wall: a Lovable prompt that produces the wrong component, | **[Indie Hackers](https://www.indiehackers.com/)** | Bootstrap-focused | Honest revenue posts + shipping logs; Friday-demo accountability rhythm | Free + paid tier (varies) | | **[No Code Founders (NCF Slack)](https://www.nocodefounders.com/)** | Full no-code stack (Bubble, Webflow, Glide, Softr) | If Lovable is wrong for your UI shape; worth membership even if you stay on Lovable | Free membership | | **r/nocode + r/vibecoding (Reddit)** | Free, indexable | Lower signal-to-noise than Slack; search before post | Free | -| **[Buildspace + Maven cohorts](https://maven.com/)** | Drew Falkman's "Vibe Coding Data-Enabled AI Apps" (~$1K) | Peer cohort + office hours; for founders who ship harder under deadline | ~$1,000 | +| **[Buildspace + Maven cohorts](https://maven.com/)** | Drew Falkman's "Vibe Coding Data-Enabled AI Apps" | Peer cohort + office hours; for founders who ship harder under deadline | Paid - check the course page | None of these is JetThoughts. None of them sells you a service. They are the founder peer pool the YC stance on co-founders [now points at](https://www.ycombinator.com/library/) instead of the 50%-equity hire. diff --git a/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md b/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md index 9e9a1debe..032b026d3 100644 --- a/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md +++ b/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md @@ -186,7 +186,7 @@ Two refundable deposits beat 200 LinkedIn likes. - Paul Graham, [*Do Things That Don't Scale*](https://paulgraham.com/ds.html) - the YC essay that named the Airbnb-style validation pattern. The first section is the Airbnb story; the rest is the manual that founders skip. - Paul Graham, [*The Airbnbs*](https://www.paulgraham.com/airbnbs.html) - PG's own short note on the Airbnb founders' early experiments. 6-minute read. - Sophia Matveeva, [*The Non-Technical Founder's Guide to Hiring*](https://www.amazon.com/Non-Technical-Founders-Guide-Hiring-Product-ebook/dp/B0B7WRLBZF) - the long-form companion to this post. Heavy on hiring, light on the validate-without-code path that comes first. -- Drew Falkman, [*Vibe Coding Data-Enabled AI Apps* on Maven](https://maven.com/) - the $1,000 cohort that teaches the self-serve stack (Path 2). Recommended if accountability is your blocker. +- Drew Falkman, [*Vibe Coding Data-Enabled AI Apps* on Maven](https://maven.com/) - the paid live cohort that teaches the self-serve stack (Path 2). Recommended if accountability is your blocker. - Y Combinator, [Startup School: Customer Discovery](https://www.ycombinator.com/library/) - YC's distilled take on validating before building. The path-1 reading list. - DHH, [The One Person Framework](https://world.hey.com/dhh/the-one-person-framework-711e6318) - the Rails case for keeping the architecture small enough that one developer can ship outcomes end-to-end. Reading for Path 2 and Path 3 founders. - Veracode, [GenAI Code Security Report 2025](https://www.veracode.com/blog/genai-code-security-report/) - 45% of LLM-generated code shipped at least one exploitable security flaw. Context for why Path 2 needs the 1-hour-a-month architecture review. diff --git a/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md b/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md index 9350e762d..5184904e2 100644 --- a/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md +++ b/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md @@ -24,7 +24,7 @@ canonical_url: "https://jetthoughts.com/course/tech-for-non-technical-founders-2 related_posts: false --- -📋 Template companion to the [Chapter 3.1 post](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/). Print after running the synthesis from [Chapter 2.1](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/). Fill in 45 minutes. Hand to your AI agent or contractor tomorrow. +📋 Template companion to the [Chapter 3.1 post](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/). Print after running the [Chapter 2.5 synthesis](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/). Fill in 45 minutes. Hand to your AI agent or contractor tomorrow. # Vibe PRD Template - One Page, Five Sections @@ -39,7 +39,7 @@ related_posts: false ## Why this exists -A solo founder I spoke with last quarter had a validated problem statement and a Lovable subscription. She typed her problem statement into the Lovable prompt and asked it to "build the simplest version of this." Twelve hours later she had a working web app with a settings page, a billing dashboard, three integrations, and 17 toggles she didn't ask for. She spent the next three weeks deciding which parts to delete. When she opened a second project with a one-page one-page brief - the same problem, but now with a no-go list - Lovable shipped the smallest end-to-end thing in 90 minutes. The page she filled in between the two attempts was the difference. The agent fills blanks with reasonable defaults; the brief is your only way to forbid the defaults. +A solo founder I spoke with last quarter had a validated problem statement and a Lovable subscription. She typed her problem statement into the Lovable prompt and asked it to "build the simplest version of this." Twelve hours later she had a working web app with a settings page, a billing dashboard, three integrations, and 17 toggles she didn't ask for. She spent the next three weeks deciding which parts to delete. When she opened a second project with a one-page brief - the same problem, but now with a no-go list - Lovable shipped the smallest end-to-end thing in 90 minutes. The page she filled in between the two attempts was the difference. The agent fills blanks with reasonable defaults; the brief is your only way to forbid the defaults. ## How to use this @@ -238,7 +238,7 @@ The good no-go list names eight things a competent agent or junior might add. Ea Skip the no-go list and you ship a working demo of a product nobody asked for. Six weeks later you're posting a [salvage or rebuild question](/course/tech-for-non-technical-founders-2026/salvage-vs-rebuild-decision-tree/) about an MVP you can't extend. The page is cheap. The build round you save by writing it is the expensive thing you avoid. -If you want the doctrine in long form, the [Chapter 3.1 post](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/) walks through the five sections with the worked example, the decision between one-page brief and traditional PRD, and the case for paying $1,000 vs writing the page yourself for free. +If you want the doctrine in long form, the [Chapter 3.1 post](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/) walks through the five sections with the worked example, the decision between one-page brief and traditional PRD, and the case for paying for a live cohort vs writing the page yourself for free. --- diff --git a/data/course_banned_strings.yaml b/data/course_banned_strings.yaml index a540b1181..023a995cb 100644 --- a/data/course_banned_strings.yaml +++ b/data/course_banned_strings.yaml @@ -55,3 +55,16 @@ banned: reason: "2.6 step must use its own 3-screen prompt, not 2.2's" - string: "47-button admin panel" reason: "recurring fake-specific number across anecdotes" + - string: "Chapter 2.1 synthesis" + reason: "synthesis is Lesson 2.5 after the M2 renumber (fixed 2026-07-11 in 3.1)" + - string: "Chapter 2.1](/course/tech-for-non-technical-founders-2026/mom-test-synthesis" + reason: "2.1 label linking to the 2.5 synthesis page (renumber mislabel class)" + - string: "$1,000" + reason: "volatile Maven cohort price - capability language only (de-hardcoding policy)" + scope: "one-page-product-brief-vibe-prd|stop-specifying-features-start-outcomes|vibe-prd-template|should-you-hire-2026-decision-tree|self-serve-mvp-stack-lovable-supabase-stripe-2026" + - string: "4.8/5" + reason: "volatile third-party review score (Maven)" + - string: "Artifact #4 of 6" + reason: "hardcoded artifact index retired in 3.1 v2 footer (2026-07-11)" + - string: "one-page one-page" + reason: "doubled-word typo (vibe-prd-template)" From 4a2ff4570a3bce499507c30e6141355a60e2e24e Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:32:24 -0400 Subject: [PATCH 02/14] feat(course): 3.2 quality-check lesson v2 template + I1-I3 improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v2 header (Module 3 · Lesson 3.2 · CORE) + Progress chain; hook now answers the recorded Sam objection ('why rewrite Section 3?') up front (40.06); manual no-AI fallback added under the AI critic block; Done footer states the explicit module gate (outcome-shaped Section 3 + clean quality-check pass); Jump-to/Skip-to duplicate callouts merged. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../index.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md b/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md index ebaec5fed..67b826b26 100644 --- a/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md +++ b/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md @@ -29,20 +29,22 @@ canonical_url: "https://jetthoughts.com/course/tech-for-non-technical-founders-2 related_posts: false --- -> **Module 3 · Step 2 of 2** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> **Module 3 · Lesson 3.2 · [CORE] - the quality gate on your 3.1 brief** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) > > **Input:** a one-page Product Brief (from [Chapter 3.1](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/)) > > **Output:** a one-page Product Brief rewritten so engineers and AI agents stop overengineering - -> **Jump to:** [What to do tomorrow](#what-to-do-tomorrow) · [Artifacts you carry out](#artifacts-you-carry-out-of-module-3) +> +> **Progress:** M3 · 2 of 2 · Results so far: one-page brief drafted (3.1) - this page stress-tests Section 3 before Module 4 builds from it > **TL;DR:** Rewrite every feature noun as an outcome-shaped job story. "Build a CSV export" becomes "When I prepare the weekly report, I want to grab the top 5 metrics in 30 seconds." The engineer has nothing left to invent. -> **Skip to the action:** [What to do tomorrow](#what-to-do-tomorrow) if you have your Ch 3.1 brief open and want the rewrite steps now. The examples and the theory will still be here. +> **Skip to the action:** [What to do tomorrow](#what-to-do-tomorrow) if you have your Ch 3.1 brief open and want the rewrite steps now, or jump ahead to [Artifacts you carry out of Module 3](#artifacts-you-carry-out-of-module-3). The examples and the theory will still be here. You sent your engineer (or your AI agent) a one-line spec: *"build a simple admin panel."* Ten weeks later you have an admin panel with 47 buttons, role-based permissions, an audit log, and a co-pilot AI assistant. Your engineer isn't a show-off - those four words "a simple admin panel" don't tell anyone what "simple" means, who's using the panel, or what the panel needs to do. The engineer (or the training data) filled in those blanks from every big-company SaaS panel they had ever seen. +You finished Section 3 of your brief in the last lesson, so this page can feel like being asked to write it twice. It is not a rewrite for style - it is the 20-minute check that decides whether the builder ships the three buttons you meant or the spaceship above. The Section 3 you fix here is the exact text Module 4 pastes into Lovable. + ![A hand-drawn comparison: the simple three-button admin panel you asked for on the left, the absurdly complex 47-button control deck that got built on the right, connected by a red arrow labeled 10-week build, $15K](admin-panel-spaceship.svg) ## Why feature briefs overbuild @@ -139,6 +141,8 @@ Three actions, in order. > > If Claude names 2+ items outside your no-go list, the brief failed quality-check the same as a peer flagging them. Revise Section 3 and re-run. This is the same failure signal a peer would surface, with no calendar coordination needed. > +> **No peer and no AI account?** The manual pass works too: read each Section 3 line and ask, "is this a thing the user does, or a thing the software has?" A line that names software parts (a dashboard, user roles, a settings page) is feature-shaped - rewrite it in the *When / I want / So I can* shape until it names a moment and a result instead. +> > **What AI cannot prove or substitute:** > - Whether your scope solves the validated problem (only the Module 4 build + real users can) > - Whether a real contractor would interpret the brief the same way (AI is a proxy, not a substitute) @@ -175,8 +179,11 @@ When your brief skips the moment, the action, and the result, the engineer or th - Tom Kerwin, [JTBD Job Stories vs User Stories](https://jtbd.info/replacing-the-user-story-with-the-job-story-af7cdee10c27) - the 2013 Klement piece on Medium that popularised the shape, for readers who want the original 1,500 words. - Y Combinator, [Startup School: How to Write a Product Spec](https://www.ycombinator.com/library/) - YC's distilled take on specs that ship versus specs that sit. -> **Done when:** Every feature in Section 3 of your brief is rewritten as an outcome-shaped job story, and a peer (or Claude) confirms the brief stays inside your scope and no-go list. -> **Next click:** [4.1 · Should You Hire? The 2026 Decision Tree](/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/) +> **Done:** every line of Section 3 is rewritten in the *When / I want / So I can* shape, and one quality-check pass (peer, AI, or the manual question) names nothing outside your Section 3 scope and no-go list. +> +> **You have now:** the complete Module 3 output - a one-page Product Brief with an outcome-shaped Section 3, a no-go list of 5-10 items, and a passed quality check, all in your `Founder OS` folder. This is the page Module 4 builds from. +> +> **Next:** [4.1 · Should You Hire? The 2026 Decision Tree](/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/) - it reads the brief you just quality-checked as its input. > **If blocked:** If Claude names 2+ items outside your no-go list when you run the quality-check prompt, your Section 3 is still too vague. Tighten the "When / I want / So I can" shape until Claude's answer stays inside your scope. > **Stuck? Most first-timers stall here:** every feature in Section 3 looks equally important, so the list keeps growing. **Fix:** pick the ONE outcome that would make a real customer pay or stay. Build that. Cut the rest to the no-go list. You can add them back after the first pilot in Module 5. From 453fc5bed75e7443ccbe03873d7ea112659927b3 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:34:06 -0400 Subject: [PATCH 03/14] feat(course): Module 3 Mia walkthrough + See-it-in-action wiring MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New module-3-walkthrough-mia page (brief drafted from M2 transcripts, price-on-profile finding promoted to requirement, failed-then-passed AI quality check). In-lesson Tomas & Mia case blocks removed from 3.1/3.2 per 30.03 §2.7; See-it-in-action links added same commit; case-study ratchet scope expanded to M3 bundles. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../module-3-walkthrough-mia/index.md | 50 +++++++++++++++++++ .../one-page-product-brief-vibe-prd/index.md | 8 +-- .../index.md | 8 +-- data/course_banned_strings.yaml | 4 +- 4 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/index.md diff --git a/content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/index.md b/content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/index.md new file mode 100644 index 000000000..d667ee180 --- /dev/null +++ b/content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/index.md @@ -0,0 +1,50 @@ +--- +title: "Module 3 Walkthrough: Mia Writes the One-Page Brief" +description: "Follow Mia through Module 3 as she turns ten scored transcripts and prototype vocabulary into a one-page Product Brief, then quality-checks it until an AI contractor prompt can't invent anything she didn't ask for." +date: 2026-07-09 +draft: false +slug: module-3-walkthrough-mia +--- + +> **Module 3 walkthrough · Mia** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> +> *Illustrative composite based on patterns from real founder builds, not a single client story. Mia's earlier runs are in the [Module 1](/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/) and [Module 2](/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/) walkthroughs.* + +Mia came out of Module 2 with a BUILD verdict, a one-page validated problem statement, and a sentence three parents had handed her almost verbatim: "a vetted shortlist instead of Googling." She also carried one prototype finding that still stung a little - the fifth test parent scrolling a profile page, looking for a price that wasn't there. + +Module 3 was one evening and one lunch break: draft the brief, then try to break it. + +--- + +## [Lesson 3.1: The One-Page Product Brief](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/) + +Section 1 took ninety seconds, because the lesson forbids writing it: she copied the problem paragraph from her validated problem statement word for word - parents of kids with learning differences, 8 of 10 with real past spend, the mother who "called eleven places in March," the $600 generic-center mistake. + +Section 2 she wrote from memory of her own interviews: a parent at 9:30pm after the kids are asleep, a Facebook group thread in one tab and a search in the other, tired of opening tutor sites that all say "all subjects, all ages." Section 3 came out as one paragraph built on the parents' own words: *a web app where a parent searches by their kid's specific need, gets a short vetted list of tutor profiles - each with parent reviews, the session rate, and response time - and requests an intro call in one click.* The session rate on the profile was the prototype fail, promoted to a requirement. + +The no-go list ran longer than the build paragraph, which the lesson says is the healthy shape: no in-person coordination, no school-district partnerships, no tutor self-signup (she would onboard the first fifteen tutors by hand), no multi-child accounts, one metro area only. When she read the brief aloud to a founder friend and asked what he'd build that wasn't on the list, he said "a chat so parents can message tutors" before she finished the question. Messaging went on the no-go list; the intro call already did that job. + +Her Section 4 metric: of the first 20 parents who search, 10 request an intro call within 30 days - counted by the request event, not by signups. + +--- + +## [Lesson 3.2: Quality-check the Brief](/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/) + +Reading Section 3 out loud the next day, she marked two lines that had drifted back into feature nouns overnight: "tutor profiles" and "a booking system." The rewrites came straight from the transcripts. *When I search for a math tutor for my 10-year-old with dyslexia, I want to filter by "dyslexia-trained" and see reviews from other parents - not scroll 50 generic math tutors.* And the one the prototype had taught her: *When I open a tutor's profile, I want the session rate next to the reviews, so I can rule out the ones outside my budget before I request a call.* + +Then she ran the contractor prompt against the brief. Claude's first answer named an availability-calendar sync, automated tutor matching, and in-app messaging - two of the three weren't on her no-go list, which the rubric counts as a fail. The gap was hers: Section 3 never said the shortlist was curated by hand in v1. She added the line "the shortlist is assembled manually by us; there is no matching algorithm in v1," moved messaging explicitly onto the no-go list, and re-ran the prompt. The second answer stayed inside her scope, and she filed the brief in her Founder OS folder next to the problem statement. + +--- + +## What Mia Walked Away With at the End of Module 3 + +- **A one-page Product Brief** with Section 1 copied verbatim from her validated problem statement - nothing softened, nothing reworded. +- **An outcome-shaped Section 3** where every line traces back to something a parent actually said in the Module 2 interviews or prototype sessions. +- **A no-go list longer than the build paragraph** - the cheapest scope-control document she will ever write. +- **A passed quality check**: one failed AI contractor run, one fix, one clean run. The fuzziness got caught on paper instead of in a Lovable build. + +**Next: [Module 4, where Mia decides who builds TutorMatch - and the brief decides with her](/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/).** + +--- + +*Built by [JetThoughts](https://jetthoughts.com) as part of the [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) free curriculum.* diff --git a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md index 482ffc171..dc6328682 100644 --- a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md +++ b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md @@ -192,12 +192,8 @@ A Vibe PRD is what's left when you remove everything an AI agent or a hired juni > **Next:** [3.2 · Quality-check your brief: features to outcomes](/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/) - the quality gate on the brief you just wrote. > **If blocked:** If you can't fill Section 3 (what you're building) in one paragraph, your scope is too big. Pick the single smallest workflow one persona can complete end-to-end and cut everything else to the no-go list. -> **Case Study: Tomas & Mia** -> -> **Tomas**: Drafts a 1-page brief that passes the quality gate. Core 3 jobs: (1) auto-match Stripe to QuickBooks, (2) flag the 5% exceptions needing a human, (3) generate a reconciliation report. Out of scope: no ERP integrations, no multi-currency - just matching. -> -> **Mia**: Drafts a 1-page brief that passes the quality gate. Core 3 jobs: (1) search tutors by specialty + location, (2) read parent reviews before booking, (3) book + pay in one flow. Out of scope: no in-person coordination, no school district partnerships. - --- +*See it in action: [Module 3 walkthrough: Mia writes the one-page brief](/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/)* + *Built by [JetThoughts](https://jetthoughts.com) as part of the [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) curriculum.* diff --git a/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md b/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md index 67b826b26..40b51cfe3 100644 --- a/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md +++ b/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md @@ -188,12 +188,8 @@ When your brief skips the moment, the action, and the result, the engineer or th > **Stuck? Most first-timers stall here:** every feature in Section 3 looks equally important, so the list keeps growing. **Fix:** pick the ONE outcome that would make a real customer pay or stay. Build that. Cut the rest to the no-go list. You can add them back after the first pilot in Module 5. -> **Case Study: Tomas & Mia** -> -> **Tomas**: Rewrites 3 feature-nouns as job stories. Example: "When a Stripe transaction has no matching QuickBooks invoice, I want to see the top 3 candidate matches so I can confirm in one click - not scan 200 line items." Passes the outcome filter: 4 of 5 sections are now outcomes, not features. -> -> **Mia**: Rewrites 3 feature-nouns as job stories. Example: "When I search for a math tutor for my 10-year-old with dyslexia, I want to filter by 'dyslexia-trained' and see reviews from other parents - not scroll 50 generic math tutors." Passes: 5 of 5 sections are outcomes. - --- +*See it in action: [Module 3 walkthrough: Mia writes the one-page brief](/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/)* + *Built by [JetThoughts](https://jetthoughts.com) as part of the [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) curriculum.* diff --git a/data/course_banned_strings.yaml b/data/course_banned_strings.yaml index 023a995cb..7aec3fde9 100644 --- a/data/course_banned_strings.yaml +++ b/data/course_banned_strings.yaml @@ -19,8 +19,8 @@ banned: - string: " -- " reason: "em-dash replacement artifact" - string: "Case Study: Tomas & Mia" - reason: "case studies live only in module-end walkthroughs (30.03 §2.7) - applies to migrated modules M1/M2; remove entries per module as each migrates" - scope: "mom-test-|ai-persona-|find-10-|clickable-prototype|smoke-test-|form-your-founding|price-hypothesis|module-1-|module-2-|outreach-sequence|validated-problem" + reason: "case studies live only in module-end walkthroughs (30.03 §2.7) - applies to migrated modules M1/M2/M3; remove entries per module as each migrates" + scope: "mom-test-|ai-persona-|find-10-|clickable-prototype|smoke-test-|form-your-founding|price-hypothesis|module-1-|module-2-|module-3-|outreach-sequence|validated-problem|one-page-product-brief|stop-specifying|vibe-prd-template" - string: "<5 of 10 scored" reason: "gate is 7+/4-6/<4 (canonical: mom-test-synthesis)" - string: "fewer than 5 scores" From 95a5c23e2e285900b610358f058e5f5632792061 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:35:08 -0400 Subject: [PATCH 04/14] feat(course): vibe-prd-template aligned as true 3.1 companion M2-companion blockquote header (Input from 2.5 synthesis + 2.6 vocabulary, Output = filled brief), existing cover.png wired into frontmatter/og tags, 45-min vs 90-min time-budget contradiction resolved to one 90-minute sitting. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../vibe-prd-template/index.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md b/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md index 5184904e2..470e70276 100644 --- a/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md +++ b/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/index.md @@ -20,11 +20,21 @@ tags: - course-companion - product categories: ["Templates"] +cover_image: cover.png +metatags: + image: cover.png + og_title: "Vibe PRD Template - One-Page Product Brief" + og_description: "One-page Product Brief template. Five sections, one 90-minute sitting. Hand to Lovable, Cursor, or a hired junior. Free." +cover_image_alt: "JetThoughts template cover for the one-page Vibe PRD - five labeled sections on a single page" canonical_url: "https://jetthoughts.com/course/tech-for-non-technical-founders-2026/vibe-prd-template/" related_posts: false --- -📋 Template companion to the [Chapter 3.1 post](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/). Print after running the [Chapter 2.5 synthesis](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/). Fill in 45 minutes. Hand to your AI agent or contractor tomorrow. +> **Template companion to [Chapter 3.1 - The One-Page Product Brief (Vibe PRD)](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/)** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> +> **Input:** your validated problem statement (from the [Chapter 2.5 synthesis](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/)) + the "describe in one sentence" vocabulary from your [Chapter 2.6 prototype sessions](/course/tech-for-non-technical-founders-2026/clickable-prototype-validation-2-hour-lovable/) +> +> **Output:** a filled one-page Product Brief (Vibe PRD), written in one 90-minute sitting, ready to hand to your AI agent or contractor tomorrow # Vibe PRD Template - One Page, Five Sections @@ -45,7 +55,7 @@ A solo founder I spoke with last quarter had a validated problem statement and a Block 90 minutes on a single morning. Print the template (or copy the markdown block below into a Notion doc). Bring your filled-in [validated problem statement](/course/tech-for-non-technical-founders-2026/validated-problem-statement-template/). Open Lovable, Cursor, or your contractor's kickoff doc in a second tab. You will not type into the second tab yet. The page first. -Section 1 copies directly from your validated problem statement, word for word. Sections 2 through 5 you write from scratch. Hard cap at 45 minutes per section, 90 minutes total. If you spill, the persona is too broad or you are designing too much. +Section 1 copies directly from your validated problem statement, word for word. Sections 2 through 5 you write from scratch. Hard cap: 90 minutes total. If you spill, the persona is too broad or you are designing too much. After the page is filled, read it aloud to one peer over a 20-minute call. Ask them: "If you built this in a week using Lovable, what would you build that isn't on my no-go list?" Their first answer is your missing no-go item. From 3220e2f2b4b86f2ed9ca14c56aaf4cf7caf5ad16 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:38:45 -0400 Subject: [PATCH 05/14] =?UTF-8?q?fix(course):=20renumber=20leftovers=20ins?= =?UTF-8?q?ide=20SVG=20artwork=20(Ch=202.1=20=E2=86=92=202.5)=20+=2090-min?= =?UTF-8?q?=20template=20subtitle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vibe-prd-template-visual.svg said 'copy from Chapter 2.1' and 'Fill in 45 minutes' (contradicting the 90-minute canon); pivot-ledger.svg credited the validated problem to Chapter 2.1. Caught by chrome-devtools visual QA - the banned-string validator does not scan SVGs. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../vibe-prd-template-visual.svg | 6 +++--- .../pivot-or-persevere-decision-framework/pivot-ledger.svg | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg index 065b0f171..2db8db9ca 100644 --- a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg +++ b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg @@ -1,4 +1,4 @@ - + One-page Vibe PRD - 5 sections on a notebook page A clean notebook page divided into five fillable blocks. Section 1 copies the validated problem statement verbatim. Section 2 names the user, where they are, and the 60 seconds around using the product. Section 3 describes what is being built in one paragraph of plain English. Section 4 names one success metric with a number and a timeframe. Section 5 lists what is NOT being built in v1. @@ -28,13 +28,13 @@ Vibe PRD - One-Page Product Brief - Fill in 45 minutes after the validated problem statement. Hand to Lovable, Cursor, or a hired junior. + Fill in one 90-minute sitting, after the validated problem statement. Hand to Lovable, Cursor, or a hired junior. 1. - The problem (copy from Chapter 2.1) + The problem (copy from Chapter 2.5) Persona + industry + dated sample + verbatim quote + cost. _______________________________________________________ _______________________________________________________ diff --git a/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-ledger.svg b/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-ledger.svg index 52d20a8ac..3f4db2cbf 100644 --- a/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-ledger.svg +++ b/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-ledger.svg @@ -39,7 +39,7 @@ Validated problem (survived) - Chapter 2.1 + Chapter 2.5 YES Carry forward as anchor From 498974ca4f7b01e00de472b71740779b750cda38 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:39:39 -0400 Subject: [PATCH 06/14] fix(course): 3.2 hook - position-independent spaceship reference 'the spaceship above' pointed the wrong way (SVG renders below the paragraph); caught in chrome-devtools visual QA. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../stop-specifying-features-start-outcomes/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md b/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md index 40b51cfe3..34d3e1d2a 100644 --- a/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md +++ b/content/course/tech-for-non-technical-founders-2026/stop-specifying-features-start-outcomes/index.md @@ -43,7 +43,7 @@ related_posts: false You sent your engineer (or your AI agent) a one-line spec: *"build a simple admin panel."* Ten weeks later you have an admin panel with 47 buttons, role-based permissions, an audit log, and a co-pilot AI assistant. Your engineer isn't a show-off - those four words "a simple admin panel" don't tell anyone what "simple" means, who's using the panel, or what the panel needs to do. The engineer (or the training data) filled in those blanks from every big-company SaaS panel they had ever seen. -You finished Section 3 of your brief in the last lesson, so this page can feel like being asked to write it twice. It is not a rewrite for style - it is the 20-minute check that decides whether the builder ships the three buttons you meant or the spaceship above. The Section 3 you fix here is the exact text Module 4 pastes into Lovable. +You finished Section 3 of your brief in the last lesson, so this page can feel like being asked to write it twice. It is not a rewrite for style - it is the 20-minute check that decides whether the builder ships the three buttons you meant or that 47-button spaceship. The Section 3 you fix here is the exact text Module 4 pastes into Lovable. ![A hand-drawn comparison: the simple three-button admin panel you asked for on the left, the absurdly complex 47-button control deck that got built on the right, connected by a red arrow labeled 10-week build, $15K](admin-panel-spaceship.svg) From b2f52e3431b32223390f7215f5b7852bc5f6e988 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:41:16 -0400 Subject: [PATCH 07/14] docs(2605): M3 sprint progress - steps 1-6 done, review synthesis pending Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../2605-tech-for-non-technical-founders/TASK-TRACKER.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md b/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md index c36f468f9..5e20eb926 100644 --- a/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md +++ b/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md @@ -305,7 +305,9 @@ Six principles drive this schedule. The wrong order wastes hours; the right orde **Module 2 exit gate:** All 6 micro-lessons follow template. Core path (2.1 → 2.3a → 2.3b → 2.4) produces validated problem statement without 2.2. Bridge chain verified. -#### Module 3 — Design from Evidence (~1-2 days) — PLAN REVISED + CONFIRMED 2026-07-09 (post-M2 re-review) +#### Module 3 — Design from Evidence (~1-2 days) — IN PROGRESS on branch `module-3-design-from-evidence` (2026-07-09) + +**Progress 2026-07-09:** steps 1-6 done - 3.1 v2 (ea8943ec, incl. course-wide 2.1→2.5 mislabel + Maven price sweep across 5.1/4.1/4.3a/worksheet/companion, 6 ratchet sigs), 3.2 v2 with I1-I3 (4a2ff457), Mia walkthrough + See-it-in-action + case-block removal (453fc5be), companion aligned + cover wired + 90-min contradiction fixed (95a5c23e), SVG-internal renumber leftovers fixed - visual QA caught 'Chapter 2.1' inside vibe-prd-template-visual.svg and pivot-ledger.svg, note the ratchet does NOT scan SVGs (3220e2f2, 498974ca). I4 verified already-compliant (2-forks section already sits below the template as a labeled flowchart). Covers verified current (no regen needed). Mobile: no overflow, mermaids compact. Orientation pages already correct for M3. Remaining: 4-lens whole-course review synthesis (agents running), test gates, ONE PR. > The original "2 chapters → ~3 micro-lessons" plan predates the M2 sprint and is superseded by this section. Revision grounded in: M2 shipped shape (PR #351), 40.13 process rules, 30.03 §2.7, and a fresh re-read of both M3 chapters on 2026-07-09. From 46b3f0a40f418f80df0f7ab8c7a0eba13c1f1654 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:50:03 -0400 Subject: [PATCH 08/14] fix(course): whole-course review fixes - 4-lens fan-out (curriculum/spec/ICP/voice) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Spec: stale 'manage-your-team' Chapter 5.2-5.5 banners on 4 Going Further pages relabeled (collided with live 5.x spine); operating-kit DPA mislabel 5.3→5.4; friday-demo-template repointed by name. ICP: 3 'Sam' persona leaks → second person; quickstart notes optional 2.2 on the fast path. Voice/claims: volatile price+plan-limit hardcodes de-hardcoded across 4.1/4.3a/4.3b/4.4/5.2/5.3b/5.5 (Lovable/Supabase/Apollo/Smartlead/ Loom/SalesNav/Porkbun/Resend/Sentry/Hunter/WorthBuild); OpenHunts stats repointed to primary source (openhunts.com, verified); unsourced 60%/ 30-40%/80% precision stats softened; 35→30 outreach-list canon (prose + airbnb-test.svg + worksheet); 'directional KILL' vocabulary retired; two fake-specific 47s varied; 4.2 glued blockquote fixed. Curriculum: 10.02 marked SUPERSEDED; 10.08 gap table statuses updated (5 of 6 shipped); YC Startup School alternative named on landing. 32 ratchet signatures added; ratchet immediately caught 2 more live instances outside review scope (worksheet + 4.1). 8/8 validators green. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../_index.md | 2 +- .../build-path-decision-worksheet/index.md | 2 +- .../index.md | 6 +- .../index.md | 2 +- .../index.md | 2 +- .../index.md | 2 +- .../index.md | 2 +- .../friday-demo-template/index.md | 2 +- .../index.md | 4 +- .../must-have-segment-pmf-test/index.md | 2 +- .../outbound-without-sales-team/index.md | 16 ++--- .../paid-pilot-charge-before-ship/index.md | 4 +- .../quickstart/index.md | 2 +- .../index.md | 8 +-- .../index.md | 12 ++-- .../airbnb-test.svg | 4 +- .../index.md | 12 ++-- .../index.md | 2 +- .../vibe-coding-ceiling-signals/index.md | 8 +-- .../index.md | 2 +- data/course_banned_strings.yaml | 64 +++++++++++++++++++ .../10.02-curriculum-sequence-synthesis.md | 2 +- .../10.08-validation-tools-analysis-2026.md | 12 ++-- 23 files changed, 120 insertions(+), 54 deletions(-) diff --git a/content/course/tech-for-non-technical-founders-2026/_index.md b/content/course/tech-for-non-technical-founders-2026/_index.md index e21b837f9..6623fbd14 100644 --- a/content/course/tech-for-non-technical-founders-2026/_index.md +++ b/content/course/tech-for-non-technical-founders-2026/_index.md @@ -65,7 +65,7 @@ The five mistakes below sink more first products than bad code does - we have wa - You have never systematically validated a business before - You might have tinkered with no-code tools, but you want a structured path instead of guessing -Skip this course if you want to learn to code or hand off founder judgment to someone else. +Skip this course if you want to learn to code or hand off founder judgment to someone else. And if what you need most is cohort deadlines and peers, [YC Startup School](https://www.startupschool.org/) runs free - this course is the self-paced, artifact-first alternative. ## Module map diff --git a/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md b/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md index 784806bfd..c9d71cdf6 100644 --- a/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md +++ b/content/course/tech-for-non-technical-founders-2026/build-path-decision-worksheet/index.md @@ -189,7 +189,7 @@ your Notion doc) | Path | Choose when | First action this week | Cost | |---|---|---|---| -| **1. Validate without code** | Q1 = No, OR Q3 = less than 4 months | Ship Carrd page + Stripe checkout + Notion FAQ. Send to 35 ICP prospects. | $0 - $300 in tools + optional $100-200 in paid ads | +| **1. Validate without code** | Q1 = No, OR Q3 = less than 4 months | Ship Carrd page + Stripe checkout + Notion FAQ. Send to your 30-name outreach list. | $0 - $300 in tools + optional $100-200 in paid ads | | **2. Self-serve build (6A)** | Q1 yes, Q2 light, Q4 = $0-$400/wk, Q5 = senior eng in network | Paste one-page brief into Lovable. Hook Supabase + Stripe + Resend. | $200 - $1,200 / month | | **3. Fractional CTO bridge (5.2)** | Q1 yes, Q2 mid, Q4 = $1.6K-$4K/mo OR Q5 = no senior eng | Hire 5-10 hrs/wk Fractional CTO. Use for architecture, PR review, hiring, cost watch. | $1,600 - $4,000 / month | | **4. Hire a team (6B)** | Q1 yes, Q2 heavy, Q4 = $5K+/mo | Read draft SOW clause-by-clause. Confirm GitHub/AWS/domain ownership before kickoff. | $30K - $80K / month | diff --git a/content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md b/content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md index 9cae1823f..393c4aba2 100644 --- a/content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md +++ b/content/course/tech-for-non-technical-founders-2026/channel-selection-before-outbound/index.md @@ -96,8 +96,8 @@ At this stage you are choosing from four options. Here is what each one actually | Channel | Best for | Requires | Red flag | |---------|----------|----------|----------| -| **LinkedIn DM** | B2B SaaS/services, professional buyers, job-title filtering, $200+/mo | 1-2 hrs/week; Sales Navigator trial or Apollo.io free tier (credit-based: ~100 email credits + ~10 export credits/mo); one clear filter (title + company + industry) | Buyer is not a professional (freelancer, solo creator, non-employee) | -| **Cold email** | Any B2B with verified work emails; cheaper at volume | Separate sending domain; free tool ([Instantly](https://instantly.ai) / [Smartlead](https://smartlead.ai)); 30-50 emails from [Apollo](https://apollo.io) / [Hunter](https://hunter.io) (25 searches/mo free tier) | Open rate <20% after first batch = domain rep or subject lines broken; fix before scale | +| **LinkedIn DM** | B2B SaaS/services, professional buyers, job-title filtering, $200+/mo | 1-2 hrs/week; Sales Navigator trial or Apollo.io free tier (credit-based free tier); one clear filter (title + company + industry) | Buyer is not a professional (freelancer, solo creator, non-employee) | +| **Cold email** | Any B2B with verified work emails; cheaper at volume | Separate sending domain; free tool ([Instantly](https://instantly.ai) / [Smartlead](https://smartlead.ai)); 30-50 emails from [Apollo](https://apollo.io) / [Hunter](https://hunter.io) (free tier available) | Open rate <20% after first batch = domain rep or subject lines broken; fix before scale | | **Community outreach** | B2B and prosumer where buyers already gather in Slack/Discord/forum | Must be a genuine participant first; one signal-quality post per sprint (not per week); spend 2 weeks commenting before posting product or get banned permanently | Joining this week then immediately selling = permanent ban from the community | | **Social organic** | B2C and prosumer, visual products (apps, productivity tools, demos); buyer discovery from peers/influencers | A sustained posting cadence; format shows product working (screen recordings, before/after, results) | Never posted before AND can't commit to the early low-visibility stretch | | **Engineering as Marketing** | Any B2B or prosumer where your ICP searches for tactical solutions; zero-CAC organic SEO | One free no-code micro-tool (calculator, checklist, grader, template) that solves one micro-problem for your ICP; build it on Carrd/Tally/Notion in an afternoon | Your ICP doesn't search for tactical tooling (they buy via referral or sales call); the micro-tool solves a toy problem nobody actually has | @@ -144,7 +144,7 @@ The prompt is a forcing function, not a crystal ball. The real data comes from r > > **The real gate:** ≥9/12 channel-fit score + a full send/reply/follow-up arc with reply rate >5%. > -> **Optional: auto-parse social media for leads.** [WorthBuild](https://worthbuild.io) (1 free report/month) scans Reddit, Twitter/X, and LinkedIn for posts matching your ICP's problem description and returns a list of named people publicly complaining about the thing you solve. Use it to seed your outreach list when the manual reading in Ch 2.3-2.4 didn't produce enough names. The free tier gives you one batch per month - save it until you have exhausted your hand-picked list and need fresh contacts. +> **Optional: auto-parse social media for leads.** [WorthBuild](https://worthbuild.io) (free tier available) scans Reddit, Twitter/X, and LinkedIn for posts matching your ICP's problem description and returns a list of named people publicly complaining about the thing you solve. Use it to seed your outreach list when the manual reading in Ch 2.3-2.4 didn't produce enough names. The free tier is metered - save it until you have exhausted your hand-picked list and need fresh contacts. ## Channel Selection Worksheet diff --git a/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/index.md b/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/index.md index d09dd2a80..7937ef15a 100644 --- a/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/index.md +++ b/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/index.md @@ -30,7 +30,7 @@ related_posts: false course_nav: false --- -> **Chapter 5.2 · Step 1 of 5** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> **Going Further · Manage a Hired Team** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) > > **Input:** a team in place + a signed SOW > diff --git a/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.md b/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.md index ab0523184..d1661572d 100644 --- a/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.md +++ b/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/index.md @@ -80,7 +80,7 @@ Why it matters: removes the "what do I say in the email" friction so you spend 6 ### 3. Design Partner Agreement template (one-page LOI + paid pilot) -The one-page DPA from [Chapter 5.3](/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/). Six sections plus signature block. Plain English, mutual-edit document, no lawyer required for v1. Comes in three formats: Google Docs (default), PDF (for customers who want to print), DocuSign-import (for customers who want to e-sign with audit trail). +The one-page DPA from [Chapter 5.4](/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/). Six sections plus signature block. Plain English, mutual-edit document, no lawyer required for v1. Comes in three formats: Google Docs (default), PDF (for customers who want to print), DocuSign-import (for customers who want to e-sign with audit trail). Two annotated examples: a $1,500 B2B SaaS pilot DPA and a $5,000 B2B services pilot DPA, both based on real (anonymized) 2026 founder deals. diff --git a/content/course/tech-for-non-technical-founders-2026/first-ten-customers-outreach-message/index.md b/content/course/tech-for-non-technical-founders-2026/first-ten-customers-outreach-message/index.md index 47a30e50c..b6a3cd0ee 100644 --- a/content/course/tech-for-non-technical-founders-2026/first-ten-customers-outreach-message/index.md +++ b/content/course/tech-for-non-technical-founders-2026/first-ten-customers-outreach-message/index.md @@ -48,7 +48,7 @@ If no real reference exists for a cold-bucket name, move them to [Ch 5.5 cold ou **Part 2: One line on the problem, in their language.** Use the verbatim Q3 answers from your [Chapter 5.1 survey](/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/). "I am building a tool that lets B2B marketers run an end-to-end attribution model without an analyst." -**Part 3: A Loom video, not a paragraph.** Record one 90-second Loom. Free tier gives you 25 videos. Show your product in 60 seconds, you on camera for the other 30. The Loom script comes directly from your Ch 5.1 verbatims. Read the Q2-Q3 quotes aloud, then point at the product feature that addresses the pain they describe. +**Part 3: A Loom video, not a paragraph.** Record one 90-second Loom. The free tier covers this batch. Show your product in 60 seconds, you on camera for the other 30. The Loom script comes directly from your Ch 5.1 verbatims. Read the Q2-Q3 quotes aloud, then point at the product feature that addresses the pain they describe. **Part 4: A specific ask.** "15 minutes to walk you through it and see if it solves [the problem]? Open to a paid pilot if it does. Calendly: [link]." The "paid pilot" teaser is load-bearing. Full mechanic lives in [5.4](/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/). diff --git a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/index.md b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/index.md index 9b963078a..87953107d 100644 --- a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/index.md +++ b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/index.md @@ -29,7 +29,7 @@ related_posts: false course_nav: false --- -> **Chapter 5.3 · Step 2 of 5** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> **Going Further · Manage a Hired Team** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) > > **Input:** a team in place + a signed SOW > diff --git a/content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md b/content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md index e23aca999..82889d56b 100644 --- a/content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md +++ b/content/course/tech-for-non-technical-founders-2026/friday-demo-template/index.md @@ -24,7 +24,7 @@ canonical_url: "https://jetthoughts.com/course/tech-for-non-technical-founders-2 related_posts: false --- -📋 Template companion to the Oversight Rhythm sub-section (Chapter 5.2) of the [From Idea to First Paying Customer course](/course/tech-for-non-technical-founders-2026/). Send to your team Monday. Run Friday at 4pm. +📋 Template companion to the Oversight Rhythm sub-section of [The Founder Org Chart](/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/) (Going Further). Send to your team Monday. Run Friday at 4pm. # The Friday Demo Template diff --git a/content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md b/content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md index 44b2380d7..cac9ab9d3 100644 --- a/content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md +++ b/content/course/tech-for-non-technical-founders-2026/github-aws-database-ownership-checklist/index.md @@ -80,7 +80,9 @@ If the contractor controls the root email, AWS support will treat them as the ac ![Side-by-side panel showing the AWS root account fields - account email, billing card, your access level, recovery time if the agency disappears - in the bad scenario where everything points at the agency, and the good scenario where everything points at the founder. The Bad column shows aws@bigdevshop.com, agency AmEx, IAM-only access, and a 3-5 day support recovery. The Good column shows aws@mycompany.com, founder AmEx, root password in 1Password with MFA, and same-day recovery by revoking the contractor.](bad-vs-good-email.svg) -**Item #7 - Production database password**> Bad: "Marcus has it. Slack him and he can DM it to you." +**Item #7 - Production database password** + +> Bad: "Marcus has it. Slack him and he can DM it to you." > Good: "I opened AWS Secrets Manager just now and read it myself. I rotated it once in March when we offboarded the previous DBA." The Marcus answer means you have a single point of failure. It does not matter whether Marcus is honest, kind, or available - one person holding the prod DB password is one person away from a production outage you cannot fix. Firing Marcus does not fix it. Putting the credential in a store you administer, with Marcus pulling read access from there, does. diff --git a/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md b/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md index 3371d5e36..758151bad 100644 --- a/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md +++ b/content/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/index.md @@ -44,7 +44,7 @@ The dashboard will tell you the same thing it would have told you if you had cal The real question after the MVP ships is whether the people who already touched it would notice if it vanished tomorrow. If less than 40% would be very disappointed, no amount of ad spend will turn that group into customers. Paid traffic does not fix a product problem; it routes more users into something they will not return to. > **What your first-pass numbers will probably look like (and that is not a failure signal).** An idea-stage founder with 4-6 onramp users typically sees one of three patterns on the first survey run: -> - All "somewhat disappointed" or "not disappointed" → directional KILL. Run more interviews before re-attempting. +> - All "somewhat disappointed" or "not disappointed" → that segment is not must-have; do not scale it. Run more interviews before re-attempting. > - 2-3 "very disappointed" out of 6 → directional MAYBE. Almost certainly a sample-size problem, not a product problem; book 5-10 more users. > - 4+ "very disappointed" out of 6 → directional YES. Advance to M5.2 with the caveat above. > diff --git a/content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md b/content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md index d94338e0a..c02fcae0b 100644 --- a/content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md +++ b/content/course/tech-for-non-technical-founders-2026/outbound-without-sales-team/index.md @@ -43,7 +43,7 @@ related_posts: false > > Reading this chapter before your network is dry is the most common sequencing mistake founders make in Module 5 - it feels like progress, but you are skipping the higher-converting path for the lower one. The chapter will still be here when your network is done. -> **$0 outbound stack.** Apollo's free tier (credit-based: roughly 100 email credits + 10 export credits per month) + a Google Sheet + Gmail mail-merge add-on (free) + Loom free + Calendly free covers the entire pipeline at zero monthly cost. You ship the same 30-message batch, you just enrich the list manually in a sheet instead of automating it through Smartlead. Upgrade to Apollo Pro ($49) or Smartlead ($39 Base plan) only when you're sending 100+ messages a week and the manual enrichment is the bottleneck. +> **$0 outbound stack.** Apollo's free tier (credit-based - check the current allowance) + a Google Sheet + Gmail mail-merge add-on (free) + Loom free + Calendly free covers the entire pipeline at zero monthly cost. You ship the same 30-message batch, you just enrich the list manually in a sheet instead of automating it through Smartlead. Upgrade to Apollo's or Smartlead's paid tiers only when you're sending 100+ messages a week and the manual enrichment is the bottleneck. This chapter is sales outbound asking buyers for money, which is a different motion from the interview-recruitment outreach in [Chapter 2.4](/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/) where you were asking for 30 minutes of their time. @@ -53,7 +53,7 @@ The one difference is that those Module 2 interviewees are warm targets - they a Product Hunt converted at 3.1% per launch event across 387 launches OpenHunts studied in 2024. Indie Hackers - posts written as engagement rather than launch announcements - converted at 23.1% per engaged post over the same period. -89% of the Product Hunt founders OpenHunts surveyed said they would not launch on the platform again ([source](https://awesome-directories.com/blog/indie-hackers-launch-strategy-guide-2025/)). The data has been public since the OpenHunts study released in mid-2024, yet every "first 10 customers" article still leads with Product Hunt. +89% of the Product Hunt founders OpenHunts surveyed said they would not launch on the platform again ([OpenHunts launch statistics](https://openhunts.com/blog/tech-product-launch-statistics-insights)). The data has been public since the OpenHunts study released in mid-2024, yet every "first 10 customers" article still leads with Product Hunt. Product Hunt is not bad; it is a one-day event in a job that needs sustained motion over a quarter. @@ -92,9 +92,9 @@ The five tools and their 2026 pricing: | Tool | Role | Price | |---|---|---| -| LinkedIn Sales Navigator | Filter buyers by title, company size, funding signal, role tenure | $99/month single-user (Core tier) | -| Apollo.io (Starter / free tier) | Cheaper alternative to Sales Nav for B2B email + filters | Free tier available; paid Apollo Pro starts ~$49/mo | -| Loom | 90s product walkthrough + you on camera | Free tier: 25 videos | +| LinkedIn Sales Navigator | Filter buyers by title, company size, funding signal, role tenure | Paid single-user plans - check LinkedIn pricing | +| Apollo.io (Starter / free tier) | Cheaper alternative to Sales Nav for B2B email + filters | Free tier available; paid plans for scale | +| Loom | 90s product walkthrough + you on camera | Free tier available | | Calendly | 15-min demo booking, auto-confirm | Free tier supports one event type | | Stripe Invoice | Pilot deposit, no monthly fee | 2.9% + 30c per transaction | @@ -137,7 +137,7 @@ Pull 100-150 raw rows. Strip three categories before sending: You should be left with 30-50 clean names. Hold the bottom 20 for a later batch and send the top 30 in the first batch. -> **Apollo free-tier reality.** Apollo's free tier is credit-based (~100 email credits + ~10 EXPORT credits per month). The "pull 100-150 raw rows" instruction is achievable on the free tier only if you spread it across 10+ months OR use LinkedIn DM for batch 1 and reserve Apollo exports for batch 2+. Recommended sequence for free-tier founders: (1) build batch 1 from your existing LinkedIn 1st-degree connections + Sales Navigator trial (free for 1 month, no Apollo needed); (2) start Apollo on month 2 with the credits dripping in over time; (3) upgrade to Apollo Pro ($49/mo) only when you have a working reply-rate signal that justifies the spend. +> **Apollo free-tier reality.** Apollo's free tier is credit-based (a small monthly allowance of email and export credits). The "pull 100-150 raw rows" instruction usually exceeds one month of free credits, so either spread it over time OR use LinkedIn DM for batch 1 and reserve Apollo exports for batch 2+. Recommended sequence for free-tier founders: (1) build batch 1 from your existing LinkedIn 1st-degree connections + Sales Navigator trial (free for 1 month, no Apollo needed); (2) start Apollo on month 2 with the credits dripping in over time; (3) upgrade to a paid Apollo tier only when you have a working reply-rate signal that justifies the spend. ### Personalize: 60-90 seconds per name, not 10 minutes @@ -209,7 +209,7 @@ flowchart TB class W3,W7 conv; ``` -Expect a 10-20% reply rate on a properly filtered, properly personalized 30-message batch. That is 3-6 replies, of which 2-4 will agree to a 15-minute demo. Of the demos, 1-2 will agree to a paid pilot. Of the pilots, the [Chapter 5.4](/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/) deposit-to-year-one conversion math holds - around 60% of paid pilots convert to year-one customers. +Expect a 10-20% reply rate on a properly filtered, properly personalized 30-message batch. That is 3-6 replies, of which 2-4 will agree to a 15-minute demo. Of the demos, 1-2 will agree to a paid pilot. Of the pilots, the [Chapter 5.4](/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/) deposit-to-year-one conversion math holds. The 30-message batch is not a one-time event. Run fresh 30-message batches until you have 20 customers. The second and third batches will outperform the first by 30-50% because you will have learned which reference patterns earn replies and which do not. @@ -277,7 +277,7 @@ Module 5 closes with a deposit in your Stripe account. Everything from here is k ## Further reading -- OpenHunts (via Awesome Directories), [Indie Hackers Launch Strategy Guide 2025](https://awesome-directories.com/blog/indie-hackers-launch-strategy-guide-2025/) - source for the Product Hunt 3.1% vs Indie Hackers 23.1% per-engaged-post conversion data from the 387-launch 2024 study. +- OpenHunts, [Product Launch Statistics: Success Rates & Data](https://openhunts.com/blog/tech-product-launch-statistics-insights) - the primary source for the Product Hunt 3.1% vs Indie Hackers 23.1% per-engaged-post conversion data (387-launch 2024 study, 156 founders surveyed). - Lenny Rachitsky, [How to win your first 10 B2B customers](https://www.lennysnewsletter.com/p/how-to-win-your-first-10-b2b-customers) - the 7-step playbook from 100+ B2B founders, including the cold-outbound section. - First Round Capital, [Cold Outreach That Works: A Founder Playbook](https://review.firstround.com/from-1-to-1000-users-tactics-from-airbnb-tinder-etsy-reddit-and-more/) - tactical cold-outreach scripts from Airbnb, Tinder, Etsy, Reddit founder interviews. - Paul Graham, [Do Things That Don't Scale](http://paulgraham.com/ds.html) - the foundational text on manual customer recruitment, including the Stripe Collison-brothers cold-DM-and-install motion. diff --git a/content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md b/content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md index 8ec03f81a..164530d14 100644 --- a/content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md +++ b/content/course/tech-for-non-technical-founders-2026/paid-pilot-charge-before-ship/index.md @@ -41,7 +41,7 @@ Two pilots, same product, same buyer profile, different deposit timing: | Variant | Setup | Result at Week 8 | |---|---|---| -| **Free pilot** | Six weeks of free build, customer "loves it," 47 enthusiastic Slack messages, year-one contract sent on day pilot ended | "We're going to revisit at the next budget cycle." There is no next budget cycle. | +| **Free pilot** | Six weeks of free build, customer "loves it," a wall of enthusiastic Slack messages, year-one contract sent on day pilot ended | "We're going to revisit at the next budget cycle." There is no next budget cycle. | | **Paid pilot** | One-page Design Partner Agreement, $1,200 refundable deposit collected before any code ships | Year-one contract closes day one. | The playbook below is the second variant: a one-page Design Partner Agreement, a 15-minute Stripe Checkout setup, and the pricing math that puts you in the conversation instead of stuck waiting for a CFO who never approved the pilot. @@ -171,7 +171,7 @@ Two annotated worked examples (a $1,500 B2B SaaS pilot and a $5,000 B2B services The deposit number is not arbitrary. It is anchored to projected year-one ACV and to what a typical CFO will sign without a procurement review. The bands by sector: -> For Sam's first pilot, the per-seat / 5-10 seats row applies. Skip the mid-market row until you have 5+ customers. +> For your first pilot, the per-seat / 5-10 seats row applies. Skip the mid-market row until you have 5+ customers. | Sector | Year-1 ACV | Pilot fee (10-30%) | Pilot fee notes | |---|---|---|---| diff --git a/content/course/tech-for-non-technical-founders-2026/quickstart/index.md b/content/course/tech-for-non-technical-founders-2026/quickstart/index.md index b8347102d..1caa1ab4a 100644 --- a/content/course/tech-for-non-technical-founders-2026/quickstart/index.md +++ b/content/course/tech-for-non-technical-founders-2026/quickstart/index.md @@ -51,7 +51,7 @@ Skip the lessons marked "optional" on the [course landing page](/course/tech-for ### Module 2 - Validate the Problem *Output: 10 Mom Test interviews + clickable prototype tested with 5 people.* -- [**2.1** · The Mom Test: Ask About the Past](/course/tech-for-non-technical-founders-2026/mom-test-ask-about-past-not-future/) +- [**2.1** · The Mom Test: Ask About the Past](/course/tech-for-non-technical-founders-2026/mom-test-ask-about-past-not-future/) *(2.2, the optional AI interview rehearsal, is skip-safe on this fast path)* - [**2.3** · Find 10 People: Where to Look](/course/tech-for-non-technical-founders-2026/find-10-people-where-to-look/) - [**2.4** · Find 10 People: What to Say](/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/) - [**2.5** · Mom Test Synthesis: Build, Pivot, or Kill](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/) diff --git a/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md b/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md index 01f51c849..f7264f114 100644 --- a/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md +++ b/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-build-phases/index.md @@ -82,7 +82,7 @@ In Lovable, install the Supabase integration. Lovable will add the Supabase JS c > **Self-test your RLS policy before going live (two paths).** > -> *No-code path (default for Sam).* In Claude or ChatGPT, paste: *"Audit my Supabase RLS policy. Here is my schema: [paste your table definitions from Supabase Table Editor]. Here is my current RLS policy: [paste from Authentication -> Policies]. Tell me whether a logged-in user with a fake user-id can read rows that belong to other users. If yes, give me the exact policy SQL to fix it."* Paste the AI's suggested policy into Supabase Authentication -> Policies. +> *No-code path (the default for a non-technical founder).* In Claude or ChatGPT, paste: *"Audit my Supabase RLS policy. Here is my schema: [paste your table definitions from Supabase Table Editor]. Here is my current RLS policy: [paste from Authentication -> Policies]. Tell me whether a logged-in user with a fake user-id can read rows that belong to other users. If yes, give me the exact policy SQL to fix it."* Paste the AI's suggested policy into Supabase Authentication -> Policies. > > *SQL path (only if you are comfortable writing SQL).* In Supabase Dashboard -> SQL Editor, paste the test below, replacing `` with your main user-data table. The pretend user-id `999` has no real rows; if the query returns any, your policy has a hole. > @@ -105,7 +105,7 @@ Spend the rest of the phase running $1 test transactions through the flow: signu ### Phase 4 - deploy, send to 5 ICP users, iterate from the data -Switch Stripe out of test mode. Buy a domain (~$10/year on [Porkbun](https://porkbun.com/) - .com registration is $9.73 first year, $10.91 renewal as of 2026 - or your registrar of choice; never let a tool hold your domain). Point the domain at the Lovable staging URL. Take final screenshots, write a 3-line cold email or LinkedIn DM, and send to 5 ICP prospects from your [Module 2 outreach list](/course/tech-for-non-technical-founders-2026/outreach-sequence-template/). +Switch Stripe out of test mode. Buy a domain (roughly $10/year for a .com on [Porkbun](https://porkbun.com/) or your registrar of choice; never let a tool hold your domain). Point the domain at the Lovable staging URL. Take final screenshots, write a 3-line cold email or LinkedIn DM, and send to 5 ICP prospects from your [Module 2 outreach list](/course/tech-for-non-technical-founders-2026/outreach-sequence-template/). > "Hey [name] - the workflow you described recently (logging client check-ins by hand on a spreadsheet) is now a tool. Quick first-use, $29/month after a trial window. URL: [staging URL]. Honest reactions only." @@ -163,8 +163,8 @@ What the stack actually costs, per published vendor pricing: | Phase | Cost shape | Line items | |------|-------|-----------| | Start | Free tiers | Free tiers across Lovable, Supabase, Stripe, GitHub | -| First ship | Per-tool monthly fees | Lovable Pro $25 + Supabase Pro $25 + Porkbun .com ~$10/yr + Resend $20 + Stripe 2.9% + $0.30 per transaction | -| Post-launch | Scale-tier monthly fees | Lovable Scale $100 + Supabase Pro $25 + Resend $35 + Sentry $26 + monitoring $14 | +| First ship | Per-tool monthly fees | Lovable + Supabase entry paid tiers + a .com domain (~$10/yr) + Resend entry tier + Stripe per-transaction fees | +| Post-launch | Scale-tier monthly fees | Lovable scale tier + Supabase paid tier + Resend/Sentry/monitoring paid tiers - check vendor pricing pages | The architectural ceiling tends to land at the post-launch tier - at ~10K users, route to Chapter 4.4 or a [Fractional CTO](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/#the-fractional-cto-bridge). A hire-a-team build is material monthly burn before revenue; this stack ships the same first 10 paying customers on a fraction of that. diff --git a/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md b/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md index bed0e7ce4..d86547493 100644 --- a/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md +++ b/content/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/index.md @@ -52,8 +52,8 @@ The stack, top to bottom: | Layer | Tool | Job | Cost | |-------|------|-----|------| -| UI | Lovable | Render the screens. Send form data down. | $0 free / $25 Pro / $100 Scale | -| Data | Supabase | Store the user, the row, the file. Listen for Stripe events. | $0 free / $25 Pro | +| UI | Lovable | Render the screens. Send form data down. | Free tier + paid tiers | +| Data | Supabase | Store the user, the row, the file. Listen for Stripe events. | Free tier + paid tiers | | Money | Stripe | Charge the card. Tell Supabase the customer is paid. | 2.9% + $0.30 per transaction | The buyer opens the staging URL → Lovable shows the screens → Supabase stores the data → Stripe charges the card → a Stripe webhook tells Supabase the row is now paid. @@ -96,7 +96,7 @@ Pre-seed founders ask "which framework" before they ask "which job." Three tools Lovable is an AI-powered builder for the screens. You describe an app in English: *"a dashboard for fitness coaches to log client check-ins, with a weekly export to CSV"*, and Lovable generates a working web frontend with proper component structure, routing, and form validation. Every save deploys to a public staging URL you can paste into a Slack message. -[Lovable's pricing tiers in 2026](https://lovable.dev/pricing) run $0 (Free, capped messages), $25/mo (Pro), $50/mo (Business), and $100/mo (Scale, the tier most paying-MVP founders settle on after the first month). +[Lovable's pricing](https://lovable.dev/pricing) runs from a capped free tier through paid tiers sized by build velocity - check the pricing page for current numbers. Most paying-MVP founders settle on a mid or scale tier after the first month. The key thing it does not do well: heavy backend logic, complex auth flows, anything custom on the database side. That is what Supabase is for. @@ -104,9 +104,9 @@ The key thing it does not do well: heavy backend logic, complex auth flows, anyt Supabase is managed Postgres + auth + file storage + row-level security in one console. Lovable's built-in storage is fine for a prototype; Supabase is what you connect when you have real users whose data has to survive a redeploy. -The free tier handles up to 50,000 monthly active users and 500MB of database before you have to upgrade. Pro is $25/month and most pre-seed founders never outgrow it before they hit the architectural ceiling. +The free tier comfortably covers early-stage usage - [check Supabase's pricing page](https://supabase.com/pricing) for current limits. Most pre-seed founders never outgrow the first paid tier before they hit the architectural ceiling. -Supabase auto-generates a REST API and a JavaScript client on top of any table you create, which is what Lovable calls when it needs to read or write a row. [Supabase's 2026 pricing](https://supabase.com/pricing) lists the bands clearly. The auth product replaces 80% of what founders used to pay Auth0 or Clerk for; the row-level security policies replace what a contractor would have hand-coded over two weeks. +Supabase auto-generates a REST API and a JavaScript client on top of any table you create, which is what Lovable calls when it needs to read or write a row. [Supabase's 2026 pricing](https://supabase.com/pricing) lists the bands clearly. The auth product replaces most of what founders used to pay Auth0 or Clerk for; the row-level security policies replace what a contractor would have hand-coded over two weeks. ### Stripe - the money layer @@ -167,7 +167,7 @@ Synthesis of every rule scattered across Module 4 and the supplementary referenc 6. **Set up GitHub sync in Lovable Settings on day 1.** Lovable can drop the work; GitHub is your backup. Skipping this is the #1 reason founders cannot retrieve their source. 7. **Enable Row-Level Security on every Supabase table from day 1.** RLS is the rule that says "Coach A can only read Coach A's rows." Skipping it ships the cross-tenant data leak that ends pilots (see Ch 4.4 Signal 4). 8. **Stripe webhook handler must be idempotent.** Idempotent means "safe to run twice without breaking anything" - Stripe sometimes sends the same payment event more than once, and your handler must not double-charge or double-activate. Check `WHERE event_id = $1 AND processed = true` before re-running the update. (See production hardening section of [hire-track reference](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/#production-hardening-checklist-what-your-fractional-cto-will-look-for) for details.) -9. **Budget envelope: vendor free tiers + per-tool monthly fees.** Lovable free, Supabase free, Stripe transaction fees, domain registration. Upgrade Lovable to $25/mo Pro only when build velocity demands it. +9. **Budget envelope: vendor free tiers + per-tool monthly fees.** Lovable free, Supabase free, Stripe transaction fees, domain registration. Upgrade Lovable to a paid tier only when build velocity demands it. 10. **Ship before scope creep, then a short stabilization phase.** Build the smallest end-to-end thing, then a stabilization phase before paid-pilot conversations. Sits inside the multi-month journey to first paying customer. 11. **Monthly Ch 4.4 ceiling-signal check once the live MVP is up.** Even if everything is green, the habit catches the 5 architectural break-points before they become rebuilds. 12. **Do not scale a Lovable stack past ~5K users or 2 ceiling signals at red.** When you hit either limit, graduate to a Fractional CTO bridge (see [hire-track reference](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/#the-fractional-cto-bridge)). The shed is not the house; pouring skyscraper foundations into a shed slab does not build a skyscraper. diff --git a/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/airbnb-test.svg b/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/airbnb-test.svg index 2508304e7..c9d07bb31 100644 --- a/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/airbnb-test.svg +++ b/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/airbnb-test.svg @@ -32,7 +32,7 @@ Step 2 Send the link to - 35 ICP prospects. + 30 ICP prospects. Watch what happens. 7 reply. 5 ask questions. 3 click checkout. @@ -53,7 +53,7 @@ - If 0 of 35 click: the problem is real, + If 0 of 30 click: the problem is real, your pitch is wrong. Re-write the page. $0 spent on engineering. 0% sunk cost. 100% information. diff --git a/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md b/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md index 032b026d3..ea2800e6c 100644 --- a/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md +++ b/content/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/index.md @@ -62,15 +62,15 @@ Brian Chesky and Joe Gebbia did not write code first. They blew up an air mattre The product was a website with a payment link. The validation was three strangers paying real money. Paul Graham later wrote about the same instinct in [*Do things that don't scale*](https://paulgraham.com/ds.html): the founders who win are the ones who do the unscalable, manual experiment that proves demand before they industrialize it. -The 2026 version of the Airbnb test takes one afternoon: a Carrd page with a Stripe checkout for an annual plan, a Notion FAQ that explains exactly what the buyer gets, and the link sent to 35 ICP prospects from your [Find 10 People With the Problem](/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/) outreach list. The result you are watching for is in the next paragraph. +The 2026 version of the Airbnb test takes one afternoon: a Carrd page with a Stripe checkout for an annual plan, a Notion FAQ that explains exactly what the buyer gets, and the link sent to the 30 people from your [Find 10 People With the Problem](/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/) outreach list. The result you are watching for is in the next paragraph. -![A 3-step illustration of the Airbnb test: Carrd page with Stripe checkout (Step 1), send link to 35 ICP prospects (Step 2), refund non-buyers and build only what you sold (Step 3). A sticky note at the bottom warns: if 0 of 35 click, the problem is real but your pitch is wrong, rewrite the page.](airbnb-test.svg) +![A 3-step illustration of the Airbnb test: Carrd page with Stripe checkout (Step 1), send link to 30 ICP prospects (Step 2), refund non-buyers and build only what you sold (Step 3). A sticky note at the bottom warns: if 0 of 30 click, the problem is real but your pitch is wrong, rewrite the page.](airbnb-test.svg) The signal you are looking for is small. Two paying buyers from 35 cold outreach hits is enough to flip the build switch. We know a B2B SaaS founder who sold five annual contracts at $1,800 each via a Stripe link and a Notion doc before she wrote a line of code. By the time her contractor delivered the v1 web app eight weeks later, she had $9,000 in pre-revenue and a customer-feedback loop already running. The build was constrained by what she had already promised the five buyers, which is the cheapest scope-control mechanism that exists. -Zero clicks from 35 prospects is brutal in the other direction. The problem might be real (you validated it in [Decide What's Next](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/)) but your pitch is wrong, your price is wrong, or the timing is wrong. Find out for $200 instead of $30,000. +Zero clicks from 30 prospects is brutal in the other direction. The problem might be real (you validated it in [Decide What's Next](/course/tech-for-non-technical-founders-2026/mom-test-synthesis-build-pivot-kill/)) but your pitch is wrong, your price is wrong, or the timing is wrong. Find out for $200 instead of $30,000. ## Pick the right building before you commit to build @@ -91,13 +91,13 @@ Most build-vs-hire posts give you one answer. The honest answer is four answers, ### 1. Validate without code -Use this path when you have no MVP yet, a single untested hypothesis, and no confirmation that anyone will pay. This week: ship a Carrd page + Stripe checkout + Notion FAQ, add a Lovable demo screen recording if you have one, and send the link to 35 ICP prospects from your [Find 10 People With the Problem](/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/) outreach list. Tooling is per-vendor (Carrd annual domain + page, Stripe free until transactions, Notion free, Lovable trial), with optional LinkedIn or Google ad spend on top. If zero buyers click, you found that out before you spent real runway - rewrite the pitch or pivot the problem. +Use this path when you have no MVP yet, a single untested hypothesis, and no confirmation that anyone will pay. This week: ship a Carrd page + Stripe checkout + Notion FAQ, add a Lovable demo screen recording if you have one, and send the link to 30 ICP prospects from your [Find 10 People With the Problem](/course/tech-for-non-technical-founders-2026/find-10-people-with-problem-outreach-2026/) outreach list. Tooling is per-vendor (Carrd annual domain + page, Stripe free until transactions, Notion free, Lovable trial), with optional LinkedIn or Google ad spend on top. If zero buyers click, you found that out before you spent real runway - rewrite the pitch or pivot the problem. ### 2. Self-serve build ([The Self-Serve MVP Stack](/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/)) Pick this path when the problem is validated (10+ Mom Test interviews with ≥7 strong-signal scores per the Ch 2.5 synthesis rubric + a Ch 1.4 smoke test that cleared the 6%+ "Promising" band - pre-orders and paid pilots are produced LATER in Module 5, do not require them as the gate), the scope is one workflow for one persona, and the backend requirements are simple - no real-time collaboration, no complex refund flows, no compliance scope. -This week: paste your [one-page brief](/course/tech-for-non-technical-founders-2026/vibe-prd-template/) into [Lovable](https://lovable.dev) (an AI app builder - free trial, paid plans from $25/month), ship the smallest end-to-end thing it generates, and connect [Supabase](https://supabase.com) (database + auth, free tier) + Stripe + Resend on top. Tooling is per-vendor pricing across the stack. Watch one failure mode: hitting the architectural ceiling when the app crosses ~5,000 users or your second integration. [5 Ceiling Signals](/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/) tells you when to move up. +This week: paste your [one-page brief](/course/tech-for-non-technical-founders-2026/vibe-prd-template/) into [Lovable](https://lovable.dev) (an AI app builder - free trial available), ship the smallest end-to-end thing it generates, and connect [Supabase](https://supabase.com) (database + auth, free tier) + Stripe + Resend on top. Tooling is per-vendor pricing across the stack. Watch one failure mode: hitting the architectural ceiling when the app crosses ~5,000 users or your second integration. [5 Ceiling Signals](/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/) tells you when to move up. ### 3. Fractional CTO bridge ([The Fractional CTO Bridge](/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/#the-fractional-cto-bridge)) @@ -142,7 +142,7 @@ flowchart TD class Hire hire ``` -The Mermaid above is the worksheet. The five questions live in the diagram. The table below adds what each routed-to outcome means in practice and which chapter Sam reads next: +The Mermaid above is the worksheet. The five questions live in the diagram. The table below adds what each routed-to outcome means in practice and which chapter you read next: | Route | What it means | Next chapter to read | |---|---|---| diff --git a/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.md b/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.md index d00273862..e664ec779 100644 --- a/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.md +++ b/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/index.md @@ -29,7 +29,7 @@ cover_image_alt: "JetThoughts blog cover for Three Questions That Turn a Standup canonical_url: "https://jetthoughts.com/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/" --- -> **Chapter 5.4 · Step 3 of 5** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> **Going Further · Manage a Hired Team** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) > > **Input:** a team in place + a signed SOW > diff --git a/content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md b/content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md index f25df2fd4..0fb83e828 100644 --- a/content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md +++ b/content/course/tech-for-non-technical-founders-2026/vibe-coding-ceiling-signals/index.md @@ -38,11 +38,11 @@ related_posts: false > **TL;DR:** Five architectural signals that mean the self-serve stack is maxed out. Two firing for 4+ weeks = graduate to a fractional CTO or hire. Run this check monthly once your MVP is live. -A working morning. Your [Lovable](https://lovable.dev) app is live (Lovable is an AI app builder that generates a working web app from a prompt - free trial, paid plans from $25/month, no coding required). 47 paying coaches on the platform. +A working morning. Your [Lovable](https://lovable.dev) app is live (Lovable is an AI app builder that generates a working web app from a prompt - free trial available, no coding required). 38 paying coaches on the platform. The dashboard takes 11 seconds to load for your largest account, a coach managing 80 clients. The Stripe webhook fired twice on three of yesterday's payments and you spent the morning refunding duplicates. -Two of your users keep landing on each other's data because the [Supabase](https://supabase.com) row-level security drifted last week when a contractor patched the check-in form (Supabase is a database + auth service that Lovable connects to automatically - free tier covers early-stage usage, paid plans from $25/month). +Two of your users keep landing on each other's data because the [Supabase](https://supabase.com) row-level security drifted last week when a contractor patched the check-in form (Supabase is a database + auth service that Lovable connects to automatically - free tier covers early-stage usage). The ceiling is visible now, but it was visible two months earlier too. That's when this check should have caught it. @@ -56,7 +56,7 @@ Once your build goes live, run this 5-signal check monthly. Each signal that fir ## Who this 5-signal check is for -The Lovable + Supabase + Stripe shed from [The Self-Serve MVP Stack](/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/) holds 80% of pre-seed B2B SaaS workloads. The other 20% is what this post is about. +The Lovable + Supabase + Stripe shed from [The Self-Serve MVP Stack](/course/tech-for-non-technical-founders-2026/self-serve-mvp-stack-lovable-supabase-stripe-2026/) holds most pre-seed B2B SaaS workloads. The remainder is what this post is about. Run this check monthly once your MVP is live and the ceiling shows up while it is still a tuning problem. Wait until something breaks - slow dashboard, duplicate webhooks, support tickets climbing - and you are paying late-fix prices on what was an early-fix problem. @@ -156,7 +156,7 @@ Vanta, [Drata](https://drata.com), and [Secureframe](https://secureframe.com) au > *"Thank you for the SOC2 / [BAA / PCI] questionnaire. We are pre-SOC2 [or pre-BAA] today and are starting the readiness work in Q3. In the meantime, I can share our security one-pager (encryption at rest via Supabase, payments via Stripe Checkout, data deletion on request) and offer a 90-day pilot with the data-handling restrictions of your choice - including hosting in a sandboxed instance if that helps your security team approve. Would that bridge work while we complete the formal certification?"* -This buys you 60-90 days to start the engineering work. About 30-40% of enterprise security teams will accept a documented bridge for a small pilot; the rest will say "come back when SOC2 is done" - which is the same answer you would get from ghosting them, plus you have preserved the relationship for the rebid 6 months later. +This buys you 60-90 days to start the engineering work. Some enterprise security teams will accept a documented bridge for a small pilot; the rest will say "come back when SOC2 is done" - which is the same answer you would get from ghosting them, plus you have preserved the relationship for the rebid 6 months later. Keep the security one-pager as a shared Google Doc with: data flow diagram, encryption-at-rest summary, vendor list (Supabase, Stripe, Lovable, Loom, etc.), and a one-line incident-response contact. 30 minutes to draft; reusable across every enterprise sales conversation. diff --git a/content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.md b/content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.md index 4555b3d63..2972894f9 100644 --- a/content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.md +++ b/content/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/index.md @@ -29,7 +29,7 @@ cover_image_alt: "JetThoughts blog cover for The Plain-English Weekly Dev Report canonical_url: "https://jetthoughts.com/course/tech-for-non-technical-founders-2026/weekly-dev-report-template-founders/" --- -> **Chapter 5.5 · Step 4 of 5** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) +> **Going Further · Manage a Hired Team** · [From Idea to First Paying Customer](/course/tech-for-non-technical-founders-2026/) > > **Input:** a team in place + Friday demos running > diff --git a/data/course_banned_strings.yaml b/data/course_banned_strings.yaml index 7aec3fde9..10261c1fb 100644 --- a/data/course_banned_strings.yaml +++ b/data/course_banned_strings.yaml @@ -68,3 +68,67 @@ banned: reason: "hardcoded artifact index retired in 3.1 v2 footer (2026-07-11)" - string: "one-page one-page" reason: "doubled-word typo (vibe-prd-template)" + - string: "Chapter 5.2 · Step" + reason: "stale manage-your-team 5.x scheme collides with live First-Customer 5.x (fixed 2026-07-10)" + - string: "Chapter 5.3 · Step" + reason: "stale manage-your-team 5.x scheme" + - string: "Chapter 5.4 · Step" + reason: "stale manage-your-team 5.x scheme" + - string: "Chapter 5.5 · Step" + reason: "stale manage-your-team 5.x scheme" + - string: "sub-section (Chapter 5.2)" + reason: "renumbered chapter mislabel (friday-demo-template)" + - string: "DPA from [Chapter 5.3]" + reason: "DPA chapter is 5.4 (operating-kit mislabel)" + - string: "Sam reads next" + reason: "internal ICP persona name in reader-facing prose" + - string: "default for Sam" + reason: "internal ICP persona name in reader-facing prose" + - string: "Sam's first pilot" + reason: "internal ICP persona name in reader-facing prose" + - string: "directional KILL" + reason: "retired gate vocabulary; 40% test outcome is not-must-have, gate is count-based" + - string: "35 ICP prospects" + reason: "outreach list canon is 30 names" + - string: "paid plans from $25/month" + reason: "volatile third-party price" + - string: "Free tier: 25 videos" + reason: "volatile plan limit (Loom)" + - string: "Free tier gives you 25 videos" + reason: "volatile plan limit (Loom)" + - string: "$99/month single-user" + reason: "volatile third-party price (Sales Navigator)" + - string: "Apollo Pro ($49" + reason: "volatile third-party price" + - string: "Smartlead ($39" + reason: "volatile third-party price" + - string: "$9.73 first year" + reason: "volatile registrar price with year-stamp" + - string: "Lovable Scale $100" + reason: "volatile third-party price" + - string: "Pro is $25/month" + reason: "volatile third-party price" + - string: "$25/mo (Pro)" + reason: "volatile third-party price" + - string: "up to 50,000 monthly active users" + reason: "volatile plan limit (Supabase)" + - string: "email credits + 10 export credits" + reason: "volatile plan limit (Apollo)" + - string: "25 searches/mo" + reason: "volatile plan limit (Hunter)" + - string: "1 free report/month" + reason: "volatile plan limit (WorthBuild)" + - string: "around 60% of paid pilots convert" + reason: "unsourced precision stat" + - string: "30-40% of enterprise security teams" + reason: "unsourced precision stat" + - string: "of pre-seed B2B SaaS workloads" + reason: "unsourced 80% precision stat" + - string: "47 enthusiastic Slack messages" + reason: "recurring fake-specific 47" + - string: "47 paying coaches" + reason: "recurring fake-specific 47" + - string: "awesome-directories.com" + reason: "thin secondary source; cite openhunts.com primary" + - string: "password**>" + reason: "glued blockquote render defect (4.2 Item #7)" diff --git a/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.02-curriculum-sequence-synthesis.md b/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.02-curriculum-sequence-synthesis.md index 4c664d70e..03dc80534 100644 --- a/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.02-curriculum-sequence-synthesis.md +++ b/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.02-curriculum-sequence-synthesis.md @@ -2,7 +2,7 @@ **Project**: 2605-tech-for-non-technical-founders **Created**: 2026-05-12 -**Status**: 🟡 Proposal awaiting confirmation - do not change existing artifacts until reviewed +**Status**: ⛔ SUPERSEDED (2026-07-10) - this 5-pillar spine proposal was NOT adopted. The live course uses the Hypothesis → Validate → Design → Build → First Customer spine per 20.01 + 20.10. Kept for research provenance only. **Author**: re-review pass after user re-framed the project goal mid-session --- diff --git a/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.08-validation-tools-analysis-2026.md b/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.08-validation-tools-analysis-2026.md index 5671352fb..be5e1f3ae 100644 --- a/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.08-validation-tools-analysis-2026.md +++ b/docs/projects/2605-tech-for-non-technical-founders/10-19-research/10.08-validation-tools-analysis-2026.md @@ -145,12 +145,12 @@ The research presents a SIPOC model that maps the startup launch pipeline: | # | Gap | Effort | Impact | Status | |---|---|---|---|---| -| 1 | Perplexity/Trend Seeker pre-hypothesis research | Low (sidebar) | High | → Overview chapter | -| 2 | Wizard of Oz Concierge MVP stack | Medium (new alt path) | Critical | → Future chapter | -| 3 | Echo chamber warning in Ch 5.3 + 2.3 | Low (inline callout) | High | → Future edit | -| 4 | Loom video outreach tactic | Low (tactic option) | Medium | → Future edit | -| 5 | Engineering as Marketing micro-tools | Low (tactic option) | Medium | → Future edit | -| 6 | IdeaProof/ValidatorAI ensemble validation | Low (sidebar) | Medium | → Overview chapter | +| 1 | Perplexity/Trend Seeker pre-hypothesis research | Low (sidebar) | High | ✅ Shipped - validation-tools overview chapter | +| 2 | Wizard of Oz Concierge MVP stack | Medium (new alt path) | Critical | ✅ Shipped - HTCW + 4.3a + glossary | +| 3 | Echo chamber warning in Ch 5.3 + 2.3 | Low (inline callout) | High | 🟡 Structurally addressed (M2 = strangers, 5.3 = sales-not-validation); inline callout in 2.3 still optional | +| 4 | Loom video outreach tactic | Low (tactic option) | Medium | ✅ Shipped - 5.3b outreach message | +| 5 | Engineering as Marketing micro-tools | Low (tactic option) | Medium | ✅ Shipped - 5.2 channel-selection callout | +| 6 | IdeaProof/ValidatorAI ensemble validation | Low (sidebar) | Medium | ✅ Shipped - validation-tools overview chapter | --- From 02a9465c5838361b9b7340db9aca5dbe3e46757c Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Thu, 9 Jul 2026 23:51:05 -0400 Subject: [PATCH 09/14] docs(2605): 40.15 whole-course review report + tracker update Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../40.15-whole-course-review-2026-07-10.md | 52 +++++++++++++++++++ .../TASK-TRACKER.md | 2 + 2 files changed, 54 insertions(+) create mode 100644 docs/projects/2605-tech-for-non-technical-founders/40-49-review/40.15-whole-course-review-2026-07-10.md diff --git a/docs/projects/2605-tech-for-non-technical-founders/40-49-review/40.15-whole-course-review-2026-07-10.md b/docs/projects/2605-tech-for-non-technical-founders/40-49-review/40.15-whole-course-review-2026-07-10.md new file mode 100644 index 000000000..f6abfc19d --- /dev/null +++ b/docs/projects/2605-tech-for-non-technical-founders/40-49-review/40.15-whole-course-review-2026-07-10.md @@ -0,0 +1,52 @@ +# 40.15 - Whole-Course Validity Review (2026-07-10) + +**Trigger**: user asked mid-M3-sprint: "can we re-review the whole course, is it valid, should we improve it while we are working on it? check the guides and researches." + +**Method**: 4 parallel read-only review agents, each grounded in a different doc base, findings triaged and fixed in commit 46b3f0a4 (branch `module-3-design-from-evidence`). + +## Verdicts + +| Lens | Grounding docs | Verdict | +|---|---|---| +| Curriculum vs research | 10.02/10.04/10.08/20.01/20.02 + yaml + landing | VALID-WITH-GAPS (gaps = stale tracking docs, no P1) | +| Spec compliance | 30.03 + all chapter files | REAL-DEFECTS (M5 numbering collision on Going Further pages; M1 fully compliant; bridge chain 1.1→3.1 intact) | +| ICP journey (Sam) | 40.06/40.07/90.10 + full reader path | COHERENT-WITH-FRICTION (3 persona leaks; M2 rework RESOLVED the old 40.06 trust-floors and flattened the U-curve trough) | +| Voice/claims M4-M5 | 90.11 + ratchet | SCATTERED-ISSUES (volatile price hardcodes in 6 files; canon otherwise consistent) | + +## Bottom line + +The course is valid: the 5-module spine matches the current strategy base, competitor-research recommendations (10.04 R1-R3) are demonstrably absorbed, every module boundary chains Input/Output correctly, and the decision-gate canon is consistent everywhere. The improvement work is exactly the kind worth doing while migrating: leftover classes in the NOT-yet-migrated M4/M5 chapters. + +## Fixed in this sprint (commit 46b3f0a4 unless noted) + +1. Stale "manage-your-team" Chapter 5.2-5.5 banners on 4 Going Further pages (engineering-org-chart, friday-demo-rule, three-questions-standup, weekly-dev-report) relabeled "Going Further · Manage a Hired Team" - they collided with the live First-Customer 5.x spine. +2. operating-kit DPA mislabel (5.3→5.4); friday-demo-template repointed to the org-chart page by name. +3. "Sam" persona leaks in 4.1/4.3b/5.4 → second person. +4. Quickstart fast path notes optional 2.2 (the exposed 2.1→2.3 gap). +5. Volatile third-party price/plan-limit hardcodes de-hardcoded in 4.1, 4.3a, 4.3b, 4.4, 5.2, 5.3b, 5.5 (+ worksheet, caught by ratchet). +6. OpenHunts 3.1%/23.1%/89% stats repointed to the primary source (openhunts.com/blog/tech-product-launch-statistics-insights, verified via web search); awesome-directories.com secondary dropped and banned. +7. Unsourced precision stats softened (60% pilots, 30-40% security teams, 80% workloads ×2). +8. Outreach-list canon: 35→30 in 4.1 prose + airbnb-test.svg + worksheet. +9. "directional KILL" (lowercase near-miss) in 5.1 → "not must-have" vocabulary. +10. Two fake-specific 47s varied (5.4 Slack messages, 4.4 paying coaches). +11. 4.2 Item #7 glued blockquote (`password**> Bad:`) render defect. +12. Doc hygiene: 10.02 marked SUPERSEDED (unadopted spine proposal); 10.08 gap table statuses corrected (5 of 6 shipped); YC Startup School named on landing as the cohort alternative (20.02 prescription). +13. 32 new ratchet signatures; the ratchet immediately caught 2 live instances outside the reviewers' scope. + +## Confirmed stale/no-action findings (do NOT re-open) + +- 3.1 case-study block: already removed in 453fc5be before the reviewer's snapshot. +- M2 bodies not word-band-compressed: known accepted waiver (carry-forward). +- Artifact #5/#6 footers in 4.3b/5.4: renumber in their module sprints (recorded). +- Case Study blocks in 9 M4/M5 chapters: strip in their sprints; ratchet scope extends per module. +- HTCW "5 modules / 20+ chapters" frontmatter: sanctioned near-number policy. +- 2.4 "Next" leading with the 2.1 back-reference: intentional (interviews run before synthesis). +- 5.1 "burned-thousands-on-paid-ads": forward-risk framing, on-ICP. + +## Deferred (carry-forwards, priority order) + +1. **M5 sprint**: strip 5 case blocks, Artifact #6 footer, external-URL checks (mailwarm.com, worthbuild.io), cohort-estimate fractions if flagged again. +2. **M4 sprint**: strip 4 case blocks, Artifact #5 footer, $200/hr single-point rate. +3. **See-it-in-action format**: shipped convention (italic line) deviates from 30.03 §2.7 blockquote example - reconcile the SPEC to shipped reality (needs user sign-off to edit 30.03). +4. **Slug hygiene** (tool names + year stamps in one-page-product URLs, e.g. self-serve-mvp-stack-lovable-supabase-stripe-2026): decided DEFER - redirect cost + SEO equity outweighs; bodies are already tool-agnostic. +5. **Echo-chamber inline callout in 2.3** (10.08 GAP 3 last 10%): optional one-liner; structural split already prevents the mistake. diff --git a/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md b/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md index 5e20eb926..ccde32daf 100644 --- a/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md +++ b/docs/projects/2605-tech-for-non-technical-founders/TASK-TRACKER.md @@ -307,6 +307,8 @@ Six principles drive this schedule. The wrong order wastes hours; the right orde #### Module 3 — Design from Evidence (~1-2 days) — IN PROGRESS on branch `module-3-design-from-evidence` (2026-07-09) +**Progress 2026-07-10:** whole-course 4-lens validity review run mid-sprint at user request - verdict VALID, 13 finding-classes fixed in 46b3f0a4 (M5 numbering collision on Going Further pages, 3 Sam persona leaks, volatile price hardcodes across 7 M4/M5 files, OpenHunts primary-source repoint, 35→30 canon, 32 ratchet sigs). Full report + carry-forwards: `40-49-review/40.15-whole-course-review-2026-07-10.md`. M4/M5 sprint scopes now pre-seeded by 40.15 §Deferred. + **Progress 2026-07-09:** steps 1-6 done - 3.1 v2 (ea8943ec, incl. course-wide 2.1→2.5 mislabel + Maven price sweep across 5.1/4.1/4.3a/worksheet/companion, 6 ratchet sigs), 3.2 v2 with I1-I3 (4a2ff457), Mia walkthrough + See-it-in-action + case-block removal (453fc5be), companion aligned + cover wired + 90-min contradiction fixed (95a5c23e), SVG-internal renumber leftovers fixed - visual QA caught 'Chapter 2.1' inside vibe-prd-template-visual.svg and pivot-ledger.svg, note the ratchet does NOT scan SVGs (3220e2f2, 498974ca). I4 verified already-compliant (2-forks section already sits below the template as a labeled flowchart). Covers verified current (no regen needed). Mobile: no overflow, mermaids compact. Orientation pages already correct for M3. Remaining: 4-lens whole-course review synthesis (agents running), test gates, ONE PR. > The original "2 chapters → ~3 micro-lessons" plan predates the M2 sprint and is superseded by this section. Revision grounded in: M2 shipped shape (PR #351), 40.13 process rules, 30.03 §2.7, and a fresh re-read of both M3 chapters on 2026-07-09. From 5f3af85cbcd32f9099bf4d858a47aa2dd39f65b5 Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Fri, 10 Jul 2026 00:06:27 -0400 Subject: [PATCH 10/14] fix(course): 3.1 visual QA - mermaid node clipping, SVG text overflow, cohort-structure leftover Scroll-through review at 1280x800 caught: 2-forks mermaid text clipped in every node (labels shortened, now renders clean); vibe-prd SVG subtitle + 3 example lines overflowed the notebook-card border (user-reported); Maven table still said 'spends 2 of 4 weeks'. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../one-page-product-brief-vibe-prd/index.md | 18 +++++++++--------- .../vibe-prd-template-visual.svg | 8 ++++---- data/course_banned_strings.yaml | 2 ++ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md index dc6328682..cfa7bf626 100644 --- a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md +++ b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/index.md @@ -111,15 +111,15 @@ Not every brief is a Vibe PRD. The audience tells you which to write. ```mermaid %%{init: {'theme':'base', 'themeVariables': {'fontFamily':'Caveat, Patrick Hand, cursive', 'primaryColor':'#fff5f5', 'primaryBorderColor':'#cc342d', 'lineColor':'#333', 'primaryTextColor':'#1a1a1a'}}}%% flowchart TD - Start(["One-page Product Brief written.
Where does it go next?"]) - Start --> Q1{Who reads it
and builds from it?} - Q1 -->|Lovable / Cursor / AI agent| Vibe1[Vibe PRD
Hand the page as-is.
Paste into prompt.] - Q1 -->|Hired junior contractor| Vibe2[Vibe PRD
Hand the page +
short kickoff call.] - Q1 -->|Hired senior engineer| Trad1[Traditional PRD
Expand to 3-5 pages.
Add API + data model.] - Q1 -->|Product committee / board| Trad2[Traditional PRD
Expand to 5-10 pages.
Add roadmap + budget.] - Vibe1 --> Ship1[Short build loop.
Measure Section 4.] + Start(["Brief written"]) + Start --> Q1{Who builds
from it?} + Q1 -->|AI agent| Vibe1[Vibe PRD
hand as-is] + Q1 -->|Hired junior| Vibe2[Vibe PRD
+ kickoff call] + Q1 -->|Senior engineer| Trad1[Traditional PRD
3-5 pages] + Q1 -->|Committee / board| Trad2[Traditional PRD
5-10 pages] + Vibe1 --> Ship1[Short build loop] Vibe2 --> Ship1 - Trad1 --> Ship2[Long build loop.
Kickoff, sprints, demos.] + Trad1 --> Ship2[Long build loop] Trad2 --> Ship2 classDef start fill:#e8f4f8,stroke:#0277bd,stroke-width:2.5px,color:#1a1a1a @@ -149,7 +149,7 @@ Drew Falkman runs ["Vibe Coding Data-Enabled AI Apps" on Maven](https://maven.co |---|---|---| | You wrote the page tonight and can't tell whether it is good. | Yes. Go for peer review + feedback. | Actually, post the draft in a founder Slack - free feedback in 2 hours. | | Accountability is your blocker. (3 abandoned briefs in a drawer.) | Yes. The cohort structure + deadline forces you through. | No. You need external structure. The template alone won't help. | -| You want to go deeper on Lovable + Supabase + Stripe stack mechanics. | Yes. The cohort spends 2 of 4 weeks on this. | No. You'll need the stack tutorials anyway; the template is concept-only. | +| You want to go deeper on Lovable + Supabase + Stripe stack mechanics. | Yes. The cohort spends much of its time on exactly this. | No. You'll need the stack tutorials anyway; the template is concept-only. | | You can sit alone for 2 hours and finish the brief from the page above. | No. | Yes. The cohort buys peer review + deadline + deeper stack work, but you'll ship either way. | **Rule of thumb:** If you can sit alone for two hours and finish the brief, start here. The cohort buys structure, deadline, and stack depth. If you can't sit alone, the cohort fee buys the accountability that gets the brief out of you. diff --git a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg index 2db8db9ca..0e7726c36 100644 --- a/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg +++ b/content/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/vibe-prd-template-visual.svg @@ -28,7 +28,7 @@ Vibe PRD - One-Page Product Brief - Fill in one 90-minute sitting, after the validated problem statement. Hand to Lovable, Cursor, or a hired junior. + One 90-minute sitting. Hand to Lovable, Cursor, or a hired junior. @@ -48,7 +48,7 @@ Who they are while using your product: __________________ 60 seconds before reaching for it: ______________________ 60 seconds after they close it: _________________________ - e.g., "Founder alone at 9pm, Stripe + QuickBooks tabs open, wants to be done in 10 min." + e.g., "Founder alone at 9pm, two finance tabs open, wants done in 10 min." @@ -58,7 +58,7 @@ Smallest end-to-end thing the user can do: ______________ Inputs they provide + output they get back: _____________ What v1 explicitly supports (scope of done): ____________ - e.g., "Paste Stripe CSV. Get QuickBooks journal entry CSV. USD only. Magic-link auth." + e.g., "Paste Stripe CSV. Get QuickBooks CSV back. USD only. Magic-link auth." @@ -67,7 +67,7 @@ Success metric (one number) Number + unit + timeframe: ______________________________ How it's measured (event name, not gut feel): ___________ - e.g., "10 of first 20 signups convert at least 1 file within 30 days. Event: conversion_completed." + e.g., "10 of first 20 signups convert in 30 days. Event: conversion_completed." diff --git a/data/course_banned_strings.yaml b/data/course_banned_strings.yaml index 10261c1fb..d3bb47bfa 100644 --- a/data/course_banned_strings.yaml +++ b/data/course_banned_strings.yaml @@ -132,3 +132,5 @@ banned: reason: "thin secondary source; cite openhunts.com primary" - string: "password**>" reason: "glued blockquote render defect (4.2 Item #7)" + - string: "spends 2 of 4 weeks" + reason: "hardcoded third-party cohort structure" From 8f6f26ab73bc0367416af2648db20554bc40a80a Mon Sep 17 00:00:00 2001 From: Paul Keen Date: Fri, 10 Jul 2026 00:08:14 -0400 Subject: [PATCH 11/14] feat(course): regenerate vibe-prd-template cover (family style) Old cover carried the stale 'Curriculum 06/30' counter badge purged from spine covers in May; since the file is now wired as og:image, regenerated from the family template: 5-section panel, 90-minute chip, Lovable/Cursor hand-to, Curriculum 2026 badge. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GYRU9wGepomJo5hSuqtu7V --- .../vibe-prd-template/cover.png | Bin 1895215 -> 638148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/cover.png b/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/cover.png index 3b9ce53f080087d5dd0fe1b6f87a59502c2f0422..afddddd1088ac1091445301ce8d36b604a75fe03 100644 GIT binary patch literal 638148 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