diff --git a/.okf/build/test-gates.md b/.okf/build/test-gates.md index 557a42f81..5c723ee49 100644 --- a/.okf/build/test-gates.md +++ b/.okf/build/test-gates.md @@ -179,12 +179,14 @@ extend it when adding components or critical files. The macOS full suite remains the repo - fresh clones had a hooksPath pointing at nothing. Adding any root dotfile/dot-dir? Check `git check-ignore -v ` before assuming it's tracked. -- REPORT-ONLY build gates (each flips to blocking once its backlog hits - zero via an env flag): `bin/check-svg-floor` (`SVG_FLOOR_BLOCK=1`) - catches course SVGs whose smallest text renders <9px@390; - `bin/check-course-paths` (`COURSE_PATH_BLOCK=1`) catches lesson - `Next:`/branch drift vs `data/course_sequence.yaml`. Both are standalone - (NOT yet wired into hugo-build/CI), carry a `--self-test`, and print a - burn-down list + exit 0 until their env flag is set. (A landing-parity - variant was tried and dropped as redundant - YAGNI: a report-only gate - nobody wires in earns its keep only when it guards an active backlog.) +- Build gates that started report-only and flip to blocking once their + backlog hits zero: `bin/check-svg-floor` catches course SVGs whose + smallest text renders <9px@390 - **now BLOCKING** (2026-08-12, item18 + cleared the whole 80-SVG corpus to O2 flat-vector): `bin/hugo-build` + runs it with `SVG_FLOOR_BLOCK=1` and fails the build on any regression; + run bare for a report-only burn-down. `bin/check-course-paths` + (`COURSE_PATH_BLOCK=1`) catches lesson `Next:`/branch drift vs + `data/course_sequence.yaml` - still standalone/report-only (its backlog + isn't zero yet). Both carry a `--self-test`. (A landing-parity variant + was tried and dropped as redundant - YAGNI: a report-only gate nobody + wires in earns its keep only when it guards an active backlog.) diff --git a/.okf/log.md b/.okf/log.md index 3171ff062..d992e5133 100644 --- a/.okf/log.md +++ b/.okf/log.md @@ -1,5 +1,17 @@ # Bundle Update Log +## 2026-08-12 (item18) - course SVG corpus → O2, check-svg-floor now blocking + +* **Update**: item18 converted the entire course exhibit-SVG corpus to O2 + flat-vector (74/80 under the 9px@390 mobile floor → 0) across 4 sub-waves. + `bin/check-svg-floor` **flipped from report-only to BLOCKING**: `bin/hugo-build` + now runs it with `SVG_FLOOR_BLOCK=1` and fails the build on any regression. + `.okf/build/test-gates.md` updated to reflect the flip. +* **Pattern**: "fix the gate, not the instance" completed - the report-only net + that enumerated the backlog (SW-1..SW-4) is now the guard, so the defect + can't silently return. The pixel suite masks `` SVGs, so this build gate + + rendered review are the only real coverage for exhibit legibility. + ## 2026-08-12 (item16 landing migration) - below-fold coverage gap confirmed * **Update**: `.okf/build/test-gates.md` documents the REPORT-ONLY build-gate diff --git a/bin/check-svg-floor b/bin/check-svg-floor index c32e1f802..1d7410759 100755 --- a/bin/check-svg-floor +++ b/bin/check-svg-floor @@ -10,9 +10,10 @@ # => font_viewBox >= 9 * viewBox_width / 390 # # Usage: bin/check-svg-floor [dir] (default: content/course) -# Report-only today (exit 0 with a burn-down list) because ~55 not-yet-converted -# reference/continuation SVGs still fail. Flip REPORT_ONLY=false to make it a -# blocking gate once the whole course is converted. +# BLOCKING since 2026-08-12: item18 converted the whole course SVG corpus to O2 +# flat-vector (74/80 under-floor → 0), so bin/hugo-build now runs this with +# SVG_FLOOR_BLOCK=1 and fails the build on any regression. Run bare (no env +# flag) for a report-only burn-down list. REPORT_ONLY = ENV.fetch("SVG_FLOOR_BLOCK", "") != "1" FLOOR_PX = 9.0 diff --git a/bin/hugo-build b/bin/hugo-build index 888cbbe49..590312376 100755 --- a/bin/hugo-build +++ b/bin/hugo-build @@ -44,6 +44,17 @@ if [ -f "$SCRIPT_DIR/validate-course" ]; then fi fi +# Course exhibit SVGs must clear the 9px@390 mobile legibility floor. +# Blocking since 2026-08-12 (item18 cleared the whole corpus to O2 flat-vector). +if [ -f "$SCRIPT_DIR/check-svg-floor" ]; then + if ! SVG_FLOOR_BLOCK=1 "$SCRIPT_DIR/check-svg-floor"; then + echo "" + echo "❌ An exhibit SVG renders below the 9px@390 floor. Redraw it to the" + echo " O2 spec (viewBox W=720, min font >=17) - see .okf/design/house-visual-spec.md." + exit 1 + fi +fi + HUGO_ARGS=(hugo build --noBuildLock --environment "$ENVIRONMENT" --destination "$OUTPUT_DIR") [ -n "$BASE_URL" ] && HUGO_ARGS+=(--baseURL "$BASE_URL") [ -n "$BUILD_DRAFTS" ] && HUGO_ARGS+=(--buildDrafts) diff --git a/content/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/scorecard-at-a-glance.svg b/content/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/scorecard-at-a-glance.svg index dd39bbedd..ace034665 100644 --- a/content/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/scorecard-at-a-glance.svg +++ b/content/course/tech-for-non-technical-founders-2026/agency-ai-five-questions/scorecard-at-a-glance.svg @@ -1,66 +1,77 @@ - - The five agency AI questions on one card: the pass signal beside the fail signal for each, scored 0 or 1 + + The five agency AI questions on one card: the pass signal and the fail signal for each, scored 1 or 0. + Five question cards, each with a green Pass line worth 1 point and a ruby Fail line worth 0. Q1 Workflow, ticket to code - Pass: names tools by version plus a real pull request; Fail: "Senior decides", no PR. Q2 Cost per dev per month and who pays - Pass: a dollar range plus pass-through in the SOW; Fail: "Included in the rate". Q3 Verify, reviewer checks - Pass: opens a real PR and names the checks; Fail: "We trust the model or CI". Q4 Slopsquatting defence - Pass: an allowlist or scanner and says the word; Fail: "Our devs know packages". Q5 Accountability - Pass: a dated incident and the root cause; Fail: "Never had one" or "not my job". A closing rule: a total of 2 or fewer out of 5 means do not sign, no matter how good the pitch. - Score the call from this card - Give 1 point when the answer lands on the Pass side, 0 when it lands on Fail. Full criteria below. + + - - - - - - Question - PASS = 1 point - FAIL = 0 points - + Score the call from this card + 1 point for a Pass answer, 0 for a Fail - score in real time - - Q1 - Workflow: ticket to code - Tools by version + a real PR - “Senior decides,” no PR + + + + 1 + Workflow: ticket to code + Pass: tools by version + a real PR + Fail: "Senior decides", no PR + - - Q2 - Cost: $/dev/mo, who pays - $ range + pass-through in SOW - “Included in the rate” + + + + 2 + Cost: $ per dev per month, who pays + Pass: a $ range + pass-through in the SOW + Fail: "Included in the rate" + - - Q3 - Verify: reviewer checks - Opens real PR, names checks - “We trust the model / CI” + + + + 3 + Verify: reviewer checks + Pass: opens a real PR, names the checks + Fail: "We trust the model / CI" + - - Q4 - Slopsquatting defense - Allowlist/scanner + says word - “Our devs know packages” + + + + 4 + Slopsquatting defence + Pass: an allowlist / scanner + says the word + Fail: "Our devs know packages" + - - Q5 - Accountability: owned it - Dated incident + root cause - “Never had one” / not my job + + + + 5 + Accountability: owned it + Pass: a dated incident + the root cause + Fail: "Never had one" / "not my job" + - - Score in real time. A total of 2 or below out of 5 - do not sign, no matter how good the pitch. + Total of 2 or fewer out of 5 - do not sign, no matter the pitch + Basis: score in real time on the call, not from memory afterwards diff --git a/content/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/invoice-loop.svg b/content/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/invoice-loop.svg index 01d066d69..50ed46f95 100644 --- a/content/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/invoice-loop.svg +++ b/content/course/tech-for-non-technical-founders-2026/ai-token-bill-dev-shop-pass-through-cost/invoice-loop.svg @@ -1,93 +1,95 @@ - - The month-2 invoice loop: sign the SOW with the 3 clauses, predict the bill, compare the invoice. Within plus-or-minus 20 percent, pay it and mark the baseline. 20 percent or more over, demand the itemized breakdown - a hard ticket updates the budget alert, margin or padding gets pushed back citing Clause 1. Quarterly, review the dashboards under Clause 3. - Three numbered step cards in a row: sign the SOW, predict the bill with the formula devs times average times margin, month-2 invoice arrives. The invoice card forks into two outcome cards: a green card for within 20 percent - pay it, mark it the baseline - and an amber card for 20 percent or more over - demand the itemized breakdown, with two inner lines: a check for a hard ticket that updates the budget alert, and a cross for margin or padding that gets pushed back under Clause 1. A dashed loop arrow returns to the predict step with the caption: quarterly, review the dashboards under Clause 3. + + The month-2 invoice loop: sign the SOW with the 3 clauses, predict the bill, then compare the invoice. Within plus-or-minus 20 percent, pay it and mark the baseline. 20 percent or more over, demand the itemized breakdown. + Three numbered step cards in a row: sign the SOW with the 3 clauses, predict the bill with the formula devs times average AI cost times margin, and the month-2 invoice lands - compare it to the prediction. The invoice step forks into two outcome cards. Green card: within plus-or-minus 20 percent of the prediction - pay it and mark it the baseline for every month after. Amber card: 20 percent or more over - demand the itemized breakdown; a check line says one dev hit a hard ticket, raise the budget alert; a cross line says margin or padding gets pushed back, citing Clause 1. A dashed loop returns to the predict step: quarterly, open the usage dashboards yourself under Clause 3, then re-predict next month's bill. - - + + - - + + - - The month-2 invoice loop - Predict the bill first - then the invoice is a comparison, not a surprise. + + + + The month-2 invoice loop + Predict the bill first - the invoice becomes a comparison - - - - 1 - Sign the SOW - with the 3 clauses below + + + + 1 + Sign the SOW + with the 3 clauses + below - - - - - 2 - Predict the bill - devs × avg AI cost × margin + + + + 2 + Predict the bill + devs x avg AI cost + x margin - - - - - 3 - The invoice lands - compare it to the prediction + + + + 3 + Invoice lands + compare it to the + prediction - - + + - - - + + + - - - - Within ±20% of the prediction - Pay it. Mark it as the baseline - for every month after. + + + + Within +/-20% of prediction + Pay it. Mark it as the + baseline for every + month after. - - - - 20%+ over: demand the breakdown - One dev hit a hard ticket → raise the - budget alert and carry on. - Margin or padding → push back, cite Clause 1. + + + + 20%+ over: get the breakdown + + hard ticket - raise the alert, + carry on. + - padding - push back, cite Clause 1. - - - Quarterly: open the usage dashboards yourself (Clause 3), then re-predict next month's bill. + + + Quarterly: open the usage dashboards yourself (Clause 3), + then re-predict next month's bill. + + Basis: a signed SOW plus one predicted number turns every invoice into a check diff --git a/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/reviewer-attention.svg b/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/reviewer-attention.svg index b9037d62b..f23055052 100644 --- a/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/reviewer-attention.svg +++ b/content/course/tech-for-non-technical-founders-2026/engineering-org-chart-non-technical-founder/reviewer-attention.svg @@ -1,61 +1,67 @@ - - PR reviewer attention math: 4 projects, 15 minutes per PR, what gets missed + + PR reviewer attention math: one senior split across four projects, about 40 PRs a week, works out to roughly 15 minutes per PR - and what that misses. + A week strip shows four equal project blocks at 25 percent each: Client A, Client B, YOUR PROJECT in ruby, and Client D. The math: 10 hours a week on your repo divided by about 40 PRs equals 15 minutes per PR. Two cards compare what 15 minutes catches versus what it misses. Green Catches card: diff looks reasonable, CI passed green, style nits flagged, click approve. Ruby Misses card: auth regression in before_action, N+1 query in the dashboard, Stripe secret in the controller, coverage silently dropped 11 percent, a migration that locks the orders table. Closing line: "we trust the senior to catch issues" - the senior had 15 minutes and three other clients. - Your senior reviewer's week, by project + + - Mon - Tue - Wed - Thu - Fri + Your reviewer gets 15 minutes per PR + One senior, four clients, about 40 PRs a week - - Client A · 25% + + + + Client A - 25% + + Client B - 25% + + YOUR PROJECT + 25% + + Client D - 25% + - - Client B · 25% + + 10 hrs/week on your repo / ~40 PRs = + 15 minutes per PR - - YOUR PROJECT · 25% + + + + What 15 min catches + + Diff looks reasonable + + CI passed green + + Style nits flagged + + Click approve + - - Client D · 25% + + + + What it misses + - Auth regression in before_action + - N+1 query in the dashboard + - Stripe secret in the controller + - Coverage silently dropped 11% + - Migration locks the orders table + - 10 hours/week on your repo ÷ ~40 PRs/week = - 15 minutes per PR - - What 15 minutes catches vs what it misses: - - - ✓ Diff looks reasonable - ✓ CI passed green - ✓ Style nits flagged - ✓ Click approve - - - ✗ Auth regression in before_action - ✗ N+1 query in dashboard endpoint - ✗ Stripe webhook secret in controller - ✗ Test coverage silently dropped 11% - ✗ Migration that locks orders table - - - - - "We trust the senior to catch issues" - the senior had 15 minutes and three other clients. + Basis: "we trust the senior to catch it" - the senior had 15 minutes and three other clients diff --git a/content/course/tech-for-non-technical-founders-2026/fake-stripe-pre-sale-pieter-levels/dollar-presale-flow.svg b/content/course/tech-for-non-technical-founders-2026/fake-stripe-pre-sale-pieter-levels/dollar-presale-flow.svg index 5a4c10ed9..a12414039 100644 --- a/content/course/tech-for-non-technical-founders-2026/fake-stripe-pre-sale-pieter-levels/dollar-presale-flow.svg +++ b/content/course/tech-for-non-technical-founders-2026/fake-stripe-pre-sale-pieter-levels/dollar-presale-flow.svg @@ -1,54 +1,70 @@ - - The $1 pre-sale flow, from button to proof + + The $1 pre-sale flow, from button to proof: a real $1 charge beats a free email signup - same visitors, sharper signal. + Four step cards in a two-by-two grid. Step 1 The button: "Reserve your spot - $1 today, refundable if we don't ship by [DATE]" - the same Stripe Payment Link setup as Lesson 1.5. Step 2 The charge: a real $1 Stripe charge is a wallet decision, not a free email click; conversion drops 3 to 5 times, a truer signal. Step 3 The promise, an amber warning: the thank-you page promises a full refund within 7 days if you miss the ship date; non-negotiable - refund every charge within 30 days. Step 4 What the click proved: 0 sales means the hypothesis or price is wrong, 1 to 10 sales means iterate the headline and targeting, and a green money line marks 50-plus sales as a product-market-fit signal to start building. A purple callout reframes it: the click proves demand, not a business - retention and unit economics are separate, later tests. - The $1 pre-sale flow - A real $1 charge beats a free email signup - same visitors, sharper signal. + + + + The $1 pre-sale flow + A real $1 charge beats a free signup - sharper signal - - 1. THE BUTTON - "Reserve your spot - $1 today, - refundable if we don't ship by [DATE]." - Same Stripe Payment Link setup as Lesson 1.5. + + + 1. The button + "Reserve your spot - $1 today, + refundable if we miss [DATE]." + Same Stripe Payment Link as 1.5. + - - 2. THE CHARGE - A real $1 Stripe charge - a wallet - decision, not a free email click. - Conversion drops 3-5x - fewer clicks, truer signal. - - - - 3. THE PROMISE - Thank-you page promises a full refund - within 7 days if we don't ship by [DATE]. - Non-negotiable: refund every charge within 30 days. + + + 2. The charge + A real $1 charge - a wallet + decision, not a free click. + Conversion drops 3-5x, truer signal. + + + + + + 3. The promise + Thank-you page: full refund in 7 + days if we miss the ship date. + Refund every charge within 30 days. + - - 4. WHAT THE CLICK PROVED - 0 sales: hypothesis or price is wrong. - 1-10 sales: iterate headline + targeting. - 50+ sales: PMF signal - start building. - - - - The click proves demand. Not a business. - Retention (5.1) and unit economics are separate, later tests. + + + 4. What the click proved + 0 sales: hypothesis or price wrong + 1-10: iterate headline + targeting + 50+ sales: PMF signal - start building + + + + + + The click proves demand. Not a business. + Retention (5.1) and unit economics are separate, later tests. + + + Basis: one landing page, a $1 Stripe Payment Link, and the same cold traffic diff --git a/content/course/tech-for-non-technical-founders-2026/faq/module-strip.svg b/content/course/tech-for-non-technical-founders-2026/faq/module-strip.svg index 96ec055a4..9747d7022 100644 --- a/content/course/tech-for-non-technical-founders-2026/faq/module-strip.svg +++ b/content/course/tech-for-non-technical-founders-2026/faq/module-strip.svg @@ -1,78 +1,72 @@ - - FAQ map: questions are grouped as General, then Module 1 Hypothesis and smoke test, Module 2 Validate the problem, Module 3 Design from evidence, Module 4 Build it yourself, and Module 5 First paying customer - in that order. + + FAQ map: questions are grouped as General, then the five modules in order. + Six navigation cards in a row: General (pace and order), Module 1 Hypothesis and smoke test, Module 2 Validate the problem, Module 3 Design from evidence, Module 4 Build it yourself, Module 5 First paying customer - in that order. Find your module below; questions are grouped in this order. - - + + - - - - General - pace & order - + + + + + + General + pace + order + - - - M1 - Hypothesis - & smoke test + + + M1 + Hypothesis + + smoke test - - - - M2 - Validate - the problem + + + M2 + Validate + the problem - - - - M3 - Design from - evidence + + + M3 + Design from + evidence - - - - M4 - Build it - yourself + + + M4 + Build it + yourself - - - - M5 - First paying - customer + + + M5 + First paying + customer - - - - - + + + + + - Find your module below - questions are grouped in this order. + Find your module below - questions are grouped in this order. diff --git a/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-components.svg b/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-components.svg index b8865c25a..27f689133 100644 --- a/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-components.svg +++ b/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-components.svg @@ -1,94 +1,76 @@ - - The First-Paying-Customer Operating Kit and its six components: the 50-name network list, cold-email scripts, the Design Partner Agreement, the Stripe Checkout setup, the Sean Ellis 40 percent survey, and the First 10 Customers tracker. + + The First-Paying-Customer Operating Kit and its six components. + Six numbered template cards that run Module 5: 1 the 50-name network list (Google Sheet, Lesson 5.3), 2 cold-email scripts (3 sector variants, Lesson 5.7), 3 the Design Partner Agreement (one-page LOI, Lesson 5.6), 4 Stripe Checkout setup (Rails, Django or Laravel), 5 the Sean Ellis 40 percent survey (5 questions, Lesson 5.1), and 6 the First 10 Customers tracker (Google Sheet, Lesson 5.7). From live MVP to signed paid pilot in four weeks - one template per step. - - - - - - - First-Paying-Customer Operating Kit - Six templates that run Module 5 - + + - - - - - - - - + First-Paying-Customer Operating Kit + Six templates that run Module 5 - - - - - 1 - 50-name network list - Google Sheet · Lesson 5.3 + + + + + 1 + 50-name + network list + Google Sheet - Lesson 5.3 - - - - - - 2 - Cold-email scripts - 3 sector variants · Lesson 5.7 + + + + 2 + Cold-email + scripts + 3 variants - Lesson 5.7 - - - - - - 3 - Design Partner - Agreement - One-page LOI · Lesson 5.6 + + + + 3 + Design Partner + Agreement + One-page LOI - Lesson 5.6 - - - - - 4 - Stripe Checkout setup - Rails / Django / Laravel + + + + + 4 + Stripe + Checkout setup + Rails / Django / Laravel - - - - - - 5 - Sean Ellis 40% survey - 5 questions · Lesson 5.1 + + + + 5 + Sean Ellis + 40% survey + 5 questions - Lesson 5.1 - - - - - - 6 - First 10 Customers - tracker - Google Sheet · Lesson 5.7 + + + + 6 + First 10 + Customers tracker + Google Sheet - Lesson 5.7 - From live MVP to signed paid pilot in 4 weeks - one template per step. + Live MVP to signed paid pilot in 4 weeks - one template per step. diff --git a/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-sample-row.svg b/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-sample-row.svg index bb86c76f6..fe7ba1b85 100644 --- a/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-sample-row.svg +++ b/content/course/tech-for-non-technical-founders-2026/first-paying-customer-operating-kit/kit-sample-row.svg @@ -1,100 +1,68 @@ - - Sample row from the First 10 Customers Google Sheet tracker + + Sample rows from the First 10 Customers tracker. + A four-column table from the Google Sheet tracker: Name, Bucket, Progress, and Deposit. Priya Shah, a Champion (purple pill), paid May 10, deposit 2,400 dollars. Marcus Liu, Hot (ruby pill), demo scheduled May 12, no deposit yet. Sarah Okafor, Warm (amber pill), replied no fit, no deposit. Ana Reyes, a Champion, paid May 9, deposit 1,800 dollars. Color-coded bucket pills, date-stamped progress, and a Deposit column that sums to your live ARR. Names are illustrative composites. - First 10 Customers tracker - sample rows from the Google Sheet template + + - - - Name - Company - Bucket - Loom sent - Reply - Demo - DPA sent - Deposit + First 10 Customers tracker + Sample rows from the Google Sheet template + + + + Name + Bucket + Progress + Deposit - - Priya Shah - Quanta Marketing - - CHAMPION - May 6 - Yes - May 7 - May 9 - May 10 - $2,400 + + Priya Shah + + CHAMPION + Paid May 10 + $2,400 - - Marcus Liu - Beacon Analytics - - HOT - May 6 - Yes - May 8 - May 12 scheduled - - - - + + Marcus Liu + + HOT + Demo May 12 + - - - Sarah Okafor - Mesa Systems - - WARM - May 7 - Yes - no fit - - - - - - - - - - Devon Park - Cohort Health - - HOT - May 6 - Maybe · 5/9 - F/u sent - - - - + + Sarah Okafor + + WARM + Replied - no fit + - - - - Ana Reyes - Northwall Studio - - CHAMPION - May 6 - Yes - May 6 - May 8 - May 9 - $1,800 + + + Ana Reyes + + CHAMPION + Paid May 9 + $1,800 - - Color-coded bucket pills. Date-stamped progress. Deposit column sums to your live ARR. - Friday afternoon review: how many in each column, which rows stalled, what is your next move. + Color-coded buckets, date-stamped progress - Deposit sums to live ARR. - - - Names in this sample are illustrative composites. + + + Names in this sample are illustrative composites. diff --git a/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/architecture-comparison.svg b/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/architecture-comparison.svg index 4ffb25d4a..5865a23b4 100644 --- a/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/architecture-comparison.svg +++ b/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/architecture-comparison.svg @@ -1,102 +1,73 @@ - - Healthy Rails monolith vs over-engineered microservice mess for a pre-Series-A startup + + Healthy Rails monolith versus over-engineered microservice mess for a pre-Series-A startup. + On the left, a healthy Rails monolith in one repo: Hotwire UI, ActiveRecord business logic, one Postgres database, Sidekiq background jobs, and a Kamal deploy - one repo, one full-stack dev ships a feature idea-to-production. On the right, over-engineered: a React frontend, Node API gateway, Auth microservice, Kafka event bus, service mesh, and a two-person platform team - two platform engineers, zero features shipped. Pre-Series-A, under 1 million dollars revenue: the boring choice on the left ships features; the exciting choice on the right ships plumbing. - HEALTHY (Rails monolith) - - - - Rails monolith · one repo - - - Hotwire UI - (no separate SPA) - - - ActiveRecord - (business logic) - - - Postgres - (one DB) - - - Sidekiq - (background jobs) - - - Kamal deploy to - Hetzner / Heroku - - 1 repo · 1 full-stack dev ships - a feature idea-to-production - - OVER-ENGINEERED - - - - React - frontend - - - Node API - gateway - - - Auth - microservice - - - Elasticsearch - cluster - - - Kafka - event bus - - - "Platform team" - (2 FTE) - - - Service mesh - (Istio) - - - Redis - (3 clusters) - - - Vault for - secrets - - - - - - - - - - - 2 platform engineers · 0 features shipped - "We need to fix the architecture" - - - - Pre-Series-A, < $1M revenue: the boring choice on the left ships features. The exciting choice on the right ships plumbing. - DHH calls the left "the one-person framework." Founders we rescue arrived from the right. + + + + + ✓ HEALTHY monolith + + Rails monolith - one repo + + + Hotwire UI + + ActiveRecord + + Postgres + + Sidekiq + + Kamal deploy + + 1 repo - 1 dev ships + idea-to-production + + + + + + ✗ OVER-ENGINEERED + + + + + + + + + + + + + + React frontend + + Node gateway + + Auth service + + Kafka bus + + Service mesh + + Platform team + + 2 platform engineers + 0 features shipped + + + Pre-Series-A, under $1M revenue: the boring choice ships + features. The exciting choice ships plumbing. diff --git a/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/jargon-translator.svg b/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/jargon-translator.svg index 83b6b742a..653408519 100644 --- a/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/jargon-translator.svg +++ b/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/jargon-translator.svg @@ -1,65 +1,70 @@ - - Jargon Translator: What Your Dev Shop Says vs What It Usually Means + + Jargon translator: what your dev shop says versus what it usually means. + Five rows pairing a phrase with its translation. "We're refactoring the order flow" means rewriting code they shipped before, on your dime, calling it tidy-up. "We need a Docker upgrade" means something on the server broke and they can't reproduce it locally. "There's a lot of tech debt to pay down" means they wrote it badly - pay them to fix what you already paid them to write. "Let's just ship the MVP first" means the cheapest scope they can finish inside the budget you have left. "We need to fix the architecture" means they want resume-building tech the senior dev hasn't tried yet. Five words, five invoices - bring the question column to your next standup. + + + - WHAT THEY SAY - WHAT IT USUALLY MEANS + + - - "We're refactoring - the order flow" - - - - Rewriting code we shipped before, - on your dime, calling it tidy-up + WHAT THEY SAY + WHAT IT MEANS - - "We need a - Docker upgrade" - - - - Something on the server broke; - we can't reproduce locally + + + "We're refactoring + the order flow" + + + Rewriting code they shipped, + on your dime, called tidy-up - - "There's a lot of - tech debt to pay down" - - - - We wrote it badly. Pay us to fix - what you already paid us to write + + + "We need a + Docker upgrade" + + + Something on the server broke; + can't reproduce it locally - - "Let's just ship - the MVP first" - - - - The cheapest scope we can finish - inside the budget you have left + + + "Lots of tech debt + to pay down" + + + We wrote it badly - pay to fix + what you paid us to write - - "We need to fix - the architecture" - - - - We want resume-building tech - the senior dev hasn't tried yet + + + "Let's just ship + the MVP first" + + + The cheapest scope we finish + inside the budget you have left - Five words. Five invoices. Bring the question column to your next standup. + + + "We need to fix + the architecture" + + + We want resume-building tech + the senior dev hasn't tried + + Five words. Five invoices. Bring the questions to your next standup. diff --git a/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/refactor-check.svg b/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/refactor-check.svg index c02b72d07..4888421b6 100644 --- a/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/refactor-check.svg +++ b/content/course/tech-for-non-technical-founders-2026/five-tech-words-stop-nodding-at/refactor-check.svg @@ -1,103 +1,81 @@ - - Refactoring, real versus fake: one messy 400-line controller either splits into small controllers behind the same Stripe webhook with tests still green (a real refactor), or gets rewritten into a 3,800-line v2 with the Stripe secret hard-coded that broke checkout at the board demo and cost a 9,000-dollar invoice (a fake refactor). + + Refactoring, real versus fake. + One messy 400-line OrdersController forks two ways. The real refactor (green, top): split into small controllers - Cart, Checkout, Receipt - behind the same Stripe webhook with tests staying green, giving the same behavior with cleaner structure and 3-line commits. The fake refactor (ruby, bottom): rewritten into a 3,800-line v2 with the Stripe secret hard-coded, which broke checkout at the board demo and cost a 9,000-dollar invoice. A real refactor leaves a working feature untouched; a fake one rewrites it on your dime. - + - Refactoring: real vs fake - One messy controller. Two ways the word lands on your invoice. + + - - - - OrdersController - 400 lines, messy, - hard to read + Refactoring: real vs fake + One messy controller, two ways it lands on your invoice + + + + + OrdersController + 400 lines, messy - - - - - REAL REFACTOR ✓ - - - - Cart · 120 lines + + + + + REAL REFACTOR ✓ + + + Split into 3: + Cart / Checkout - - - Checkout · 140 lines + + + + Same webhook + Tests stay green - - - Receipt · 130 lines + + + + ✓ Same behavior + Cleaner code, + 3-line commits - - - - - Same Stripe webhook - Tests stay green + + FAKE REFACTOR ✗ + + + v2 controller + 3,800 lines, no tests - - - - - - ✓ Same behavior - Cleaner structure - 3-line commit cap + + + + Stripe secret + hard-coded - - - FAKE REFACTOR ✗ - - - - OrdersController v2 - 3,800 lines, no tests + + + + ✗ Broke at demo + $9K for the + rewrite - - - - - - Stripe secret - hard-coded in controller - - - - - - - ✗ Checkout broke - at the board demo - $9K for the rewrite - - - A real refactor leaves a working feature untouched. A fake one rewrites it on your dime. diff --git a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/catching-the-lie.svg b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/catching-the-lie.svg index 73ab8ab91..d15e0638f 100644 --- a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/catching-the-lie.svg +++ b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/catching-the-lie.svg @@ -1,145 +1,91 @@ - - One Loom for a small full-stack team versus five Looms for a microservice-detached team + + One Loom for a small full-stack team versus five Looms for a microservice-detached team. + Top (green), a small full-stack team: one Loom, one staging URL, a single clickable journey - sign up, add to cart, checkout with a 1-dollar Stripe charge, receipt sent. One developer narrates end-to-end in 90 seconds while the founder clicks along. Bottom (ruby), a microservice-detached team: five separate Looms across five subdomains - orders, billing, notify, web, and gateway - joined by criss-cross arrows. "Watch these five videos and we'll sync next week." That is what you are paying for. - - - - - + + - - - SMALL FULL-STACK TEAM · ONE LOOM - - - - - - - Loom · 9:42 - - - - - checkout flow · v1 + + + + One Loom, or five? + The demo tells you how the team is wired + + + + Full-stack team - ONE Loom + + + + + Loom 9:42 + + checkout v1 + + + staging.acme.app - one URL + + + sign up + + add to cart + + $1 checkout + + receipt + One dev narrates end-to-end - 90 sec, founder clicks along. + + + + Microservice team - FIVE Looms + + + + + + orders - - - staging.acme.app - /signup → /checkout → /receipt - - - - - - - sign up - user enters - - - add to cart - click button - - - checkout - $1 stripe charge - - - - receipt - email sent ✓ + + + + billing - - one developer narrates end-to-end · 90 seconds · founder clicks along - - - - MICROSERVICE-DETACHED TEAM · FIVE LOOMS - - - - - - - - Loom · 6:18 - - - order-service - orders.api.acme - - - - - - - Loom · 4:51 - - - billing-service - billing.api.acme - - - - - - - Loom · 7:33 - - - notifications - notify.api.acme - - - - - - - Loom · 8:02 - - - front-end - app.acme.dev - - - - - - - Loom · 5:47 - - - infra · gateway - gw.k8s.acme - + + + + notify + + + + + web + + + + + gateway - - - - - - - + + + + + + + - "watch these five videos and we can sync about them next week" - this is what you are paying for + "Watch these five and we'll sync next week." That's what you pay for. diff --git a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/demo-rule.svg b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/demo-rule.svg index e1464c0f1..61c260e3e 100644 --- a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/demo-rule.svg +++ b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/demo-rule.svg @@ -1,137 +1,67 @@ - - The Friday Demo Rule: 15 minutes, working software only, no slides or Jira screenshots + + The Friday Demo Rule: 15 minutes, working software only, no slides or Jira screenshots. + Left, allowed in the room: a 15-minute timer with a hard stop, and a green working-software panel showing a 1-dollar test charge processed, the order paid, the webhook fired, and a receipt sent - plus a login you paste in one message. Right, not allowed: a Jira screenshot, a Figma frame, and a slide-deck burndown chart, each struck through in ruby. Working software only. If a demo is not ready, say so on Wednesday. - - FRIDAY 4PM · ALLOWED IN THE ROOM + + - - - - - - - - - - - - - - 15:00 - hard stop - - - - + + ✓ ALLOWED: Friday 4pm - - - - - - - - - - - staging.acme.app/checkout - - - - ✓ $1 test charge processed - order #1284 → paid - webhook fired ✓ - receipt → demo@example.com - - - stripe sandbox - - - + + + 15:00 + hard stop - - - - login (one message, one paste) - demo@example.com / example-pass-123 - + + + ✓ $1 test charge OK + order #1284 - paid + webhook fired + receipt sent + login: 1 paste - - Working software only. - click everything they show you, during the call + Working software only. + Click everything they show you, live. - - + + - - NOT ALLOWED IN THE ROOM + + ✗ NOT ALLOWED - - - - Jira screenshot - - - - - To Do - In Progress - Done ×11 - - + + + Jira screenshot + - - - - - Figma frame - - - - - - + + + Figma frame + - - - - - Slide deck · burndown chart - - - - - - + + + Slide-deck burndown + - - If a demo is not ready, - say so on Wednesday. + Not ready? Say so on Wednesday. - - Friday Demo Rule · 15 minutes · Loom or live · working software only + + Friday Demo Rule - 15 minutes - Loom or live - working software only diff --git a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/friday-loop.svg b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/friday-loop.svg index 0bc83179d..e4e352ddc 100644 --- a/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/friday-loop.svg +++ b/content/course/tech-for-non-technical-founders-2026/friday-demo-rule-founder-progress/friday-loop.svg @@ -1,122 +1,88 @@ - - The Friday demo weekly loop, then the 4-week checkpoint - Monday 9am the founder posts the 7-question template in #dev Slack. Tuesday through Thursday the team builds and reviews against the questions. Wednesday end of day: anything not going to be ready? If yes, the team replans before Friday, then continues on; if no, it goes straight on. Friday 4pm: a 15-minute Loom or live demo, working software only. The founder clicks every staging URL during the call, then forwards the Loom URL to their inbox that evening. A dashed loop returns to Monday: the cycle repeats every week. After 4 Fridays, review the pattern: 4 of 4 demos clickable means the cadence works, continue weekly. 2 of 4 or fewer means something is stalling - run the Org Chart audit and the red-flags checklist. + + The Friday demo weekly loop, then the 4-week checkpoint. + Monday 9am the founder posts the 7-question template in the dev Slack. Tuesday through Thursday the team builds and reviews against the questions; Wednesday end of day, anything not ready gets replanned before Friday. Friday 4pm is a 15-minute Loom or live demo, working software only; the founder clicks every staging URL live, then forwards the Loom that evening. A dashed loop returns to Monday - the cycle repeats every week. After 4 Fridays, review the pattern: 4 of 4 demos clickable (green) means the cadence works, keep it weekly; 2 of 4 or fewer (ruby) means something is stalling - run the Org Chart audit and the red-flags checklist. - - + + - - + + - - The Friday demo: the weekly loop - One 15-minute call, every week - here is the cycle it runs on. + + - - - - - MON · 9AM - Post the 7 - questions - in #dev Slack - + The Friday demo: the weekly loop + One 15-minute call, every week - - - - - TUE–THU - Team builds + - reviews - against the questions + + + + + MON 9AM + Post the 7 + questions - - - - - - FRI · 4PM - 15-min demo, - Loom or live, working - software only + + + + TUE-THU + Build + + review - - - - - - FRI · LIVE - Click every URL, - then forward the Loom to - your inbox that evening + + + + FRI 4PM + 15-min demo, + working sw only - - - - - - - - no - - - - yes - - - Wed EOD: anything not ready? - → team replans before Friday + + + + FRI LIVE + Click every URL, + forward the Loom - - - - Then Monday: the cycle repeats, every week. + + + + - - after 4 Fridays + + + Wed EOD: not ready? Replan before Friday. Then Monday, the cycle repeats. - - + After 4 Fridays, review the pattern: + + - - - - 4 of 4 demos clickable - Cadence works - keep it - weekly, no changes needed. + + + + 4 of 4 clickable + Cadence works - keep it + weekly, no changes needed. - - - - - 2 of 4 or fewer clickable - Something is stalling. Run the - Org Chart audit + the - red-flags checklist. + + + + 2 of 4 or fewer + Something's stalling. Run the + Org Chart audit + red-flags. - diff --git a/content/course/tech-for-non-technical-founders-2026/friday-demo-template/friday-demo-timeline.svg b/content/course/tech-for-non-technical-founders-2026/friday-demo-template/friday-demo-timeline.svg index 7b013ad67..26033f5da 100644 --- a/content/course/tech-for-non-technical-founders-2026/friday-demo-template/friday-demo-timeline.svg +++ b/content/course/tech-for-non-technical-founders-2026/friday-demo-template/friday-demo-timeline.svg @@ -1,75 +1,75 @@ - - The 15-minute Friday demo: 7 questions in order, then the hard stop + + The 15-minute Friday demo: 7 questions in order, then the hard stop. + Seven numbered question cards in order - Q1 shipped, Q2 what the user did, Q3 is it live here, Q4 what got cut, Q5 in review, Q6 blocked, Q7 what to worry about next - followed by an amber STOP card at 15 minutes, hard. The same seven questions, same order, every week at 4pm. Working software only, no slides or mockups, no Figma or Jira screenshots. If a demo is not ready, say so on Wednesday. You click the staging URL yourself, live, while they talk. - The 15-minute Friday demo - Same 7 questions, same order, every week - 4pm, hard stop. - - - - Q1 - SHIPPED? - - - - - Q2 - USER DID? - - - - - Q3 - LIVE HERE? - - - - - Q4 - WHAT CUT? - - - - - Q5 - IN REVIEW? - - - - - Q6 - BLOCKED? - - - - - Q7 - WORRY NEXT? - - - - - - STOP - 15 MIN - HARD + + + + The 15-minute Friday demo + Same 7 questions, same order - 4pm, hard stop + + + + + Q1 + SHIPPED? + + + + Q2 + USER DID? + + + + Q3 + LIVE HERE? + + + + Q4 + WHAT CUT? + + + + + + Q5 + IN REVIEW? + + + + Q6 + BLOCKED? + + + + Q7 + WORRY NEXT? + + + + + STOP + 15 MIN + HARD + - - Working software only. No slides, no mockups. - No Figma, no Jira screenshots. If a demo isn't ready, say so Wednesday. - You click the staging URL yourself, live, while they talk. + + Working software only. No slides, no mockups. + No Figma, no Jira screenshots. Not ready? Say so Wednesday. + You click the staging URL yourself, live, while they talk. diff --git a/content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/hire-track-map.svg b/content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/hire-track-map.svg index 75e69f711..72d4694a3 100644 --- a/content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/hire-track-map.svg +++ b/content/course/tech-for-non-technical-founders-2026/hire-track-supplementary-reference/hire-track-map.svg @@ -1,72 +1,64 @@ - - The hire track: four stops from the self-serve ceiling to a well-signed first hire. - A left-to-right strip of four numbered cards. Step 1 find your developers: pick a geography and two platforms. Step 2 the Fractional CTO bridge: five hours a week of senior eyes at four hundred to six hundred dollars a week. Step 3 the interview screen: seven questions, where question seven splits the pool. Step 4 read the SOW: the milestone-acceptance clause is the seventy-eight thousand dollar line. Arrows connect each stop to the next. + + The hire track: four stops from the self-serve ceiling to a well-signed first hire. + A left-to-right strip of four numbered cards joined by arrows. Step 1 find your developers: pick a geography and two platforms. Step 2 the Fractional CTO bridge: 5 hours a week of senior eyes at $400-600 a week. Step 3 the interview screen: 7 questions, where question 7 splits the pool. Step 4 read the SOW: the milestone-acceptance clause is the $78K line. Basis: the hire-track supplementary guide. - - + + - - The hire track - Four stops - the self-serve ceiling to a first hire whose contract cannot quietly bleed you. + + + The hire track + Four stops - self-serve ceiling to a safe first hire - - - - 1 - Find your - developers - pick a geography - + two platforms - + + 1 + Find your + developers + pick a geography + + two platforms - - - - 2 - Fractional CTO - bridge - 5 hrs/wk senior eyes - $400-600 a week - + + 2 + Fractional + CTO bridge + 5 hrs/wk senior + $400-600 a week - - - - 3 - Interview - screen - 7 questions - - Q7 splits the pool - + + 3 + Interview + screen + 7 questions - + Q7 splits pool - - - - 4 - Read the - SOW - milestone clause - = the $78K line - + + 4 + Read the + SOW + milestone clause + = the $78K line - - - + + + + + Basis: the hire-track supplementary guide diff --git a/content/course/tech-for-non-technical-founders-2026/hiring-interview-script/scorecard-at-a-glance.svg b/content/course/tech-for-non-technical-founders-2026/hiring-interview-script/scorecard-at-a-glance.svg index e4f7c4639..d75dbb995 100644 --- a/content/course/tech-for-non-technical-founders-2026/hiring-interview-script/scorecard-at-a-glance.svg +++ b/content/course/tech-for-non-technical-founders-2026/hiring-interview-script/scorecard-at-a-glance.svg @@ -1,80 +1,98 @@ - - The 7 hiring questions on one card: pass signal versus fail signal for each + + The 7 hiring questions on one card: the pass signal and the fail signal for each. + Seven question cards, each with a green Pass line and a ruby Fail line. Q1 Workflow, ticket to code - Pass: names tools by version plus a real pull request; Fail: "Cursor does boilerplate", no PR. Q2 Cost per dev per month - Pass: 80 to 300 dollars, pulled the receipt; Fail: "My company pays", no tracking. Q3 Verify, reviewer checks - Pass: opens a real PR and names the checks; Fail: "I trust the model or CI". Q4 Slopsquatting defence - Pass: a named defence and says the word; Fail: "Name looks right", never hit it. Q5 Accountability - Pass: a dated incident and the root cause; Fail: "Never had one", blamed the tool. Q6 Refactor you led - Pass: a named system - kept, changed, broke; Fail: "Refactor as I go" or "rewrote it". Q7 Disagreement with the AI - Pass: a real PR on screen with a specific reason; Fail: "Usually agree", then silence. A closing rule: refusing to share screen on Q3 or Q7 is an automatic fail on both. - Run the interview from this card - Tick the box when the answer lands on the Pass side. Full criteria for each question are below. + + - - - - - - Question - PASS sounds like - FAIL sounds like - + Run the interview from this card + Tick a pass only when the answer lands on the Pass side - - Q1 - Workflow: ticket to code - Tools by version + real PR - “Cursor does boilerplate,” no PR + + + + 1 + Workflow: ticket to code + Pass: tools by version + a real PR + Fail: "Cursor does boilerplate", no PR + - - Q2 - Cost: $/dev/month - $80-300, pulled the receipt - “My company pays,” no tracking + + + + 2 + Cost: $ per dev per month + Pass: $80-300, pulled the receipt + Fail: "My company pays", no tracking + - - Q3 - Verify: reviewer checks - Opens real PR, names checks - “I trust the model / CI” + + + + 3 + Verify: reviewer checks + Pass: opens a real PR, names the checks + Fail: "I trust the model / CI" + - - Q4 - Slopsquatting defense - Named defense + says the word - “Name looks right,” never hit it + + + + 4 + Slopsquatting defence + Pass: a named defence + says the word + Fail: "Name looks right", never hit it + - - Q5 - Accountability: owned it - Dated incident + root cause - “Never had one,” blamed Cursor + + + + 5 + Accountability: owned it + Pass: a dated incident + root cause + Fail: "Never had one", blamed the tool + - - Q6 - Refactor you led - Named system: kept/changed/broke - “Refactor as I go / rewrote it” + + + + 6 + Refactor you led + Pass: a named system - kept, changed, broke + Fail: "Refactor as I go" / "rewrote it" + - - Q7 - Disagreement with the AI - Real PR on screen, specific reason - “Usually agree,” then silence + + + + 7 + Disagreement with the AI + Pass: a real PR on screen, a specific reason + Fail: "Usually agree", then silence + - - Refuses to share screen on Q3 or Q7 = automatic Fail on both. The interview is over. + Refuses to share screen on Q3 or Q7 = automatic fail on both + Basis: the interview is over the moment they will not open a PR diff --git a/content/course/tech-for-non-technical-founders-2026/interview-scorecard/scorecard-5-questions.svg b/content/course/tech-for-non-technical-founders-2026/interview-scorecard/scorecard-5-questions.svg index cf8f3de02..2fbdb8993 100644 --- a/content/course/tech-for-non-technical-founders-2026/interview-scorecard/scorecard-5-questions.svg +++ b/content/course/tech-for-non-technical-founders-2026/interview-scorecard/scorecard-5-questions.svg @@ -1,85 +1,84 @@ - - The 5-question pass/fail check: score each question after the call. Pass means a specific story with date, tool, or number. Fail means vague generality or polite default. - Five rows in a three-column layout. Left column: question number and label. Center column (green-tinted): PASS signal. Right column (red-tinted): FAIL signal. Q1: Specific story (date, time, tool, person, feeling) vs Vague generality ("I usually struggle with it"). Q2: Specific number with a unit ("2 hours every Tuesday") vs Unquantified ("It costs us time"). Q3: Named tool, hired person, custom workaround vs "Nothing yet - I've been meaning to." Q4: 7+ with a comparison to another priority vs 5-6 with no comparison, or polite-default 7. Q5: Names a specific person and their workaround vs "I'm the only one who deals with this." Bottom row shows the pass count tally: 5/5 strong, 4/5 solid, 3/5 mixed, 2/5 or fewer weak (-2 to the score). + + The 5-question pass/fail check: score each question after the call. Pass means a specific story with a date, tool, or number. Fail means vague generality or a polite default. + Five question cards, each with a green Pass line and a ruby Fail line. Q1 Past-behaviour story - Pass: specific, with date, time, tool, person, feeling; Fail: vague, "I usually struggle with it". Q2 Quantified cost - Pass: a number with a unit, "2 hrs every Tuesday"; Fail: unquantified, "It costs us time". Q3 Past attempt - Pass: named tool, hired person, or custom workaround; Fail: "Nothing yet - I've been meaning to". Q4 Priority score - Pass: 7 or higher with a comparison to another priority; Fail: no comparison, or a polite-default 7. Q5 Buying committee - Pass: names a specific person and their workaround; Fail: "I'm the only one who deals with this". A tally card follows: pass count out of five - 5 strong, 4 solid, 3 mixed, 2 or fewer weak. - - The 5-question pass/fail check - Score each question within 5 minutes of hanging up, before your memory rounds up. Pass = specific. Fail = vague. + + - - - - - - Question - PASS signal - FAIL signal - + Pass means a specific story - vague is a fail + Score each question within 5 minutes of hanging up - - Q1 - Past-behavior story - Specific - date, time, tool, person, feeling - Vague - "I usually struggle with it" + + + + 1 + Past-behaviour story + Pass: specific - date, time, tool, person, feeling + Fail: vague - "I usually struggle with it" + - - Q2 - Quantified cost - A number with a unit - "2 hrs every Tuesday" - Unquantified - "It costs us time" + + + + 2 + Quantified cost + Pass: a number with a unit - "2 hrs every Tuesday" + Fail: unquantified - "It costs us time" + - - Q3 - Past attempt - Named tool, hired person, custom workaround - "Nothing yet - I've been meaning to" + + + + 3 + Past attempt + Pass: named tool, hired person, or custom workaround + Fail: "Nothing yet - I've been meaning to" + - - Q4 - Priority score - 7+ with a comparison to another priority - No comparison, or polite-default 7 + + + + 4 + Priority score + Pass: 7+ with a comparison to another priority + Fail: no comparison, or a polite-default 7 + - - Q5 - Buying committee - Names a specific person and their workaround - "I'm the only one who deals with this" - - - - - Pass count (Q1-Q5): ___ / 5 - - - - - 5/5 = strong · 4/5 = solid · 3/5 = mixed · 2/5 or fewer = weak (-2 to the score) + + + + 5 + Buying committee + Pass: names a specific person and their workaround + Fail: "I'm the only one who deals with this" - - - - Transfer all 10 pass counts to the Synthesis page for the build / pivot / kill decision. + + + + Pass count: ___ / 5 + 5 strong - 4 solid - 3 mixed - 2 or fewer weak + + Basis: score right after the call, before memory rounds up diff --git a/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/artifact-trail.svg b/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/artifact-trail.svg index 149a75fac..16e505a1e 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/artifact-trail.svg +++ b/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/artifact-trail.svg @@ -1,86 +1,86 @@ - - Mia's Module 1 artifact trail: Founding Hypothesis to smoke-test page to tracking to a 6.5% demand signal to 6 paying customers + + Five artifacts, zero product code: Mia's Module 1 trail runs Founding Hypothesis to smoke-test page to tracking to a 6.5% demand signal to $594 in pre-sales. + A vertical trail of five artifact cards. 1.1 Founding Hypothesis scored 15 out of 20, one soft blank flagged. 1.2 Smoke-test page live at tutormatch.mixo.io, passed the 3-second test. 1.3 Tracking wired with Clarity, GA4 and Pixel, who is visiting verified. 1.4 Smoke test run returned a 6.5% demand signal over 300 visits. 1.5 Price test, the payoff, took 6 buyers at $99 each - $594 before any product. Basis: Mia's Module 1 deliverables, filed in her Founder OS. - - + + - What Mia produced in Module 1 + + + - - - - - 1.1 - Founding - Hypothesis - 15 / 20 - one soft blank flagged + + Five artifacts, zero product code + Mia's Module 1 trail - hypothesis to $594 in pre-sales + + + + + + 1.1 + Founding Hypothesis + One soft blank flagged, rest specific + 15 / 20 + - - - - - 1.2 - Smoke-test - page live - tutormatch.mixo.io - passed 3-second test + + + + + 1.2 + Smoke-test page live + tutormatch.mixo.io + Passed the 3-second test + - - - - - 1.3 - Tracking - wired - Clarity · GA4 · Pixel - who is visiting, verified + + + + + 1.3 + Tracking wired + Clarity, GA4, Pixel - who is visiting, verified + - - - - 1.4 - Smoke test - run - 6.5% - 300 visits · Promising + + + + 1.4 + Smoke test run + 300 visits, Promising band + 6.5% + - - - - - 1.5 - Price test - 6 buyers - $99 each - $594 before product + + + + + 1.5 + Price test + 6 buyers at $99 each, before any product + $594 - - - - - - - Five outputs, zero product code - each one filed in her Founder OS folder. + + Basis: Mia's Module 1 deliverables, filed in her Founder OS diff --git a/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/index.md b/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/index.md index 996a167b5..e6372feab 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/index.md +++ b/content/course/tech-for-non-technical-founders-2026/module-1-walkthrough-mia/index.md @@ -31,7 +31,7 @@ Tonight she was going to find out if anyone else cared. --- -![Mia's Module 1 artifact trail - Founding Hypothesis, smoke-test page, tracking wired, a 6.5% demand signal, and six paying customers before any product code](artifact-trail.svg) +![Mia's Module 1 artifact trail - five artifacts, zero product code: a Founding Hypothesis, a live smoke-test page, tracking wired, a 6.5% demand signal, and $594 in pre-sales from six buyers](artifact-trail.svg) ## [Lesson 1.1: Form Your Founding Hypothesis](/course/tech-for-non-technical-founders-2026/form-your-founding-hypothesis-90-minute-sprint/) diff --git a/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/artifact-trail.svg b/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/artifact-trail.svg index 22626b3f5..a9b43d2e6 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/artifact-trail.svg +++ b/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/artifact-trail.svg @@ -1,86 +1,84 @@ - - Mia's Module 2 artifact trail: a Mom-Test script to a 30-name list to 10 scored interviews to a BUILD verdict to a Money answer to prototype feedback + + Ten conversations became real evidence: Mia's Module 2 trail runs a Mom-Test script to a 30-name list to a BUILD verdict to a price to a clickable prototype. + A vertical trail of five artifact cards. 2.1-2.2 Mom-Test script, 5 past-tense questions, no product mentioned. 2.3-2.4 30-name list turned into 10 booked calls in 2 weeks. 2.5 Ten scored transcripts returned a BUILD verdict, 8 of 10 cleared the gate. 2.5 Money answer of $70-120 per session from real receipts. 2.6 Clickable prototype, the alternate-path artifact, tested well with 4 of 5 and the price goes on the profile. Basis: Mia's Module 2 deliverables, 10 scored interviews. - - + + - What Mia produced in Module 2 + + + + + + Ten conversations became evidence + Mia's Module 2 trail - a script to a BUILD verdict - - - - 2.1-2.2 - Mom-Test - script - 5 past-tense Qs - no product mentioned + + + + 2.1-2.2 + Mom-Test script + 5 past-tense questions, no product mentioned + - - - - 2.3-2.4 - 30-name - list - 10 calls - booked in 2 weeks + + + + 2.3-2.4 + 30-name list + Booked in 2 weeks + 10 calls + - - - - - 2.5 - 10 scored - transcripts - BUILD - 8 of 10 cleared gate + + + + + 2.5 + 10 scored transcripts + 8 of 10 cleared the gate + BUILD + - - - - - 2.5 - Money - answer - $70-120 - per session, receipts + + + + + 2.5 + Money answer + Per session, from real receipts + $70-120 + - - - - - 2.6 - Clickable - prototype - 4 of 5 - price goes on profile + + + + + 2.6 + Clickable prototype + Price goes on the profile + 4 of 5 - - - - - - - Ten real conversations turned two notebook questions into evidence. + + Basis: Mia's Module 2 deliverables, 10 scored interviews diff --git a/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/index.md b/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/index.md index 556e5bc1a..1872f5093 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/index.md +++ b/content/course/tech-for-non-technical-founders-2026/module-2-walkthrough-mia/index.md @@ -29,7 +29,7 @@ Module 2 was where those questions stopped being notebook entries and became int --- -![Mia's Module 2 artifact trail - a Mom-Test script, a 30-name list, ten scored interviews, a BUILD verdict, a Money answer, and prototype feedback](artifact-trail.svg) +![Mia's Module 2 artifact trail - ten conversations became evidence: a Mom-Test script, a 30-name list, ten scored transcripts with a BUILD verdict, a $70-120 money answer, and a clickable prototype](artifact-trail.svg) ## [Lesson 2.1: The Mom Test](/course/tech-for-non-technical-founders-2026/mom-test-ask-about-past-not-future/) diff --git a/content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/artifact-trail.svg b/content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/artifact-trail.svg index 0163ca50b..c1bc6352d 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/artifact-trail.svg +++ b/content/course/tech-for-non-technical-founders-2026/module-3-walkthrough-mia/artifact-trail.svg @@ -1,72 +1,71 @@ - - Mia's Module 3 artifact trail: a one-page Product Brief to a no-go list to an outcome rewrite to a passed quality check + + Caught on paper, not in a build: Mia's Module 3 trail runs a one-page Product Brief to a no-go list to an outcome rewrite to a passed quality check. + A vertical trail of four artifact cards. 3.1 One-page Product Brief, Section 1 copied verbatim from the problem statement. 3.1 No-go list, longer than the build list, scope locked early. 3.2 Outcome rewrite, features rewritten as parent outcomes. 3.2 Quality check, the payoff, returned a PASS after 1 fail, 1 fix and 1 clean run. Basis: Mia's Module 3 deliverables, caught on paper. - - + + - What Mia produced in Module 3 + + + - - - - - 3.1 - One-page - Product Brief - Section 1 copied verbatim - from the problem statement + + Caught on paper, not in a build + Mia's Module 3 trail - brief, no-go list, outcomes, check + + + + + + 3.1 + One-page Product Brief + Section 1 verbatim from the problem statement + - - - - 3.1 - No-go - list - longer than the build list - scope locked before code + + + + 3.1 + No-go list + Longer than the build list, scope locked early + - - - - 3.2 - Outcome - rewrite - features to parent outcomes - every line from a transcript + + + + 3.2 + Outcome rewrite + Features rewritten as parent outcomes + - - - - - 3.2 - Quality - check - PASS - 1 fail · 1 fix · 1 clean run + + + + + 3.2 + Quality check + 1 fail, 1 fix, 1 clean run + PASS - - - - - - One evening and one lunch break - the fuzziness caught on paper, not in a build. + + Basis: Mia's Module 3 deliverables, caught on paper 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 index 1ee18b14f..b33bffab6 100644 --- 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 @@ -29,7 +29,7 @@ Module 3 was one evening and one lunch break: draft the brief, then try to break --- -![Mia's Module 3 artifact trail - a one-page Product Brief, a no-go list, an outcome rewrite, and a passed quality check](artifact-trail.svg) +![Mia's Module 3 artifact trail - fuzziness caught on paper, not in a build: a one-page Product Brief, a no-go list, an outcome rewrite, and a passed quality check](artifact-trail.svg) ## [Lesson 3.1: The One-Page Product Brief](/course/tech-for-non-technical-founders-2026/one-page-product-brief-vibe-prd/) diff --git a/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/artifact-trail.svg b/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/artifact-trail.svg index b37a64309..d206bebcb 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/artifact-trail.svg +++ b/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/artifact-trail.svg @@ -1,85 +1,81 @@ - - Mia's Module 4 artifact trail: a self-serve build-path decision to locked ownership to a live MVP to a security fix to a scheduled ceiling check + + A brief became a live product: Mia's Module 4 trail runs a self-serve build-path decision to locked ownership to a live MVP to a security fix to a scheduled ceiling check. + A vertical trail of five artifact cards. 4.1 Build-path decision, self-serve, chosen on a worksheet not on fear. 4.2 Ownership locked, domain transferred out, accounts in her name. 4.3-4.4 Live MVP, the alternate-path payoff, built from her brief in 4 phases over 10 weeks on a domain she owns. 4.3-4.4 Security fix, an RLS hole caught on paper, not in prod. 4.5 Ceiling check set, a 30-day calendar block for the first run after launch. Basis: Mia's Module 4 deliverables, built on a domain she owns. - - + + - What Mia produced in Module 4 + + + + + + A brief became a live product + Mia's Module 4 trail - decided by a worksheet, not a fear - - - - 4.1 - Build-path - decision - Self-serve - worksheet, not fear + + + + 4.1 + Build-path: self-serve + Chosen on a worksheet, not on fear + - - - - 4.2 - Ownership - locked - domain transferred out - accounts in her name + + + + 4.2 + Ownership locked + Domain transferred out, accounts in her name + - - - - - 4.3-4.4 - Live MVP - 4 phases · 10 weeks - built from her brief - on a domain she owns + + + + + 4.3-4.4 + Live MVP + 4 phases - built from her brief, domain she owns + 10 wks + - - - - 4.3-4.4 - Security - fix - RLS hole caught - on paper, not in prod + + + + 4.3-4.4 + Security fix + RLS hole caught on paper, not in prod + - - - - - 4.5 - Ceiling - check set - 30-day calendar block - first run after launch + + + + + 4.5 + Ceiling check set + 30-day calendar block, first run after launch - - - - - - - A one-page brief became a live product - decided by a worksheet, not by a fear. + + Basis: Mia's Module 4 deliverables, built on a domain she owns diff --git a/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/index.md b/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/index.md index 7d439f6f0..758dc1318 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/index.md +++ b/content/course/tech-for-non-technical-founders-2026/module-4-walkthrough-mia/index.md @@ -27,7 +27,7 @@ Mia arrived at Module 4 with a quality-checked one-page brief and a strong opini --- -![Mia's Module 4 artifact trail - a self-serve build-path decision, locked ownership, a live MVP, a security fix, and a scheduled ceiling check](artifact-trail.svg) +![Mia's Module 4 artifact trail - a brief became a live product: a self-serve build-path decision, locked ownership, a live MVP, a security fix, and a scheduled ceiling check](artifact-trail.svg) ## [Lesson 4.1: Should You Hire?](/course/tech-for-non-technical-founders-2026/should-you-hire-2026-decision-tree/) diff --git a/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/artifact-trail.svg b/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/artifact-trail.svg index 3047d9c4e..3c527536a 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/artifact-trail.svg +++ b/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/artifact-trail.svg @@ -1,73 +1,75 @@ - - Mia's Module 5 artifact trail: a 40% test niche to a warm 50-name list to a signed paid pilot to a complete Founder OS + + A notebook line to a stranger's money: Mia's Module 5 trail runs a 40% test to a warm 50-name list to a signed paid pilot to a complete Founder OS. + A vertical trail of four artifact cards. 5.1 The 40% must-have test scored 55% in her niche. 5.3-5.5 Warm 50 list drew 22 replies and 9 demos booked. 5.6 Signed pilot, the payoff, a Design Partner Agreement with the deposit cleared via Stripe - first money from the product. 5.1-5.6 Founder OS complete, hypothesis to signed pilot, the full evidence pack. Basis: Mia's Module 5 deliverables, the full evidence pack. - - + + - What Mia produced in Module 5 + + + - - - - - 5.1 - 40% - test - 55% - in her must-have niche + + A notebook line to a stranger's money + Mia's Module 5 trail - test niche to a signed paid pilot + + + + + + 5.1 + 40% must-have test + In her must-have niche + 55% + - - - - 5.3-5.5 - Warm 50 - list - 22 replies - 9 demos booked + + + + 5.3-5.5 + Warm 50 list + 9 demos booked + 22 replies + - - - - - 5.6 - Signed pilot - Design Partner Agreement - deposit cleared via Stripe - first money from the product + + + + + 5.6 + Signed pilot + Design Partner Agreement, deposit via Stripe + First money from the product + PAID + - - - - - 5.1-5.6 - Founder OS - complete - hypothesis to signed pilot - the full evidence pack + + + + + 5.1-5.6 + Founder OS complete + Hypothesis to signed pilot + The full evidence pack - - - - - - From a notebook sentence to a stranger's money - the whole pack, traceable. + + Basis: Mia's Module 5 deliverables, the full evidence pack diff --git a/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/index.md b/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/index.md index 0958df8e1..e44bffc19 100644 --- a/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/index.md +++ b/content/course/tech-for-non-technical-founders-2026/module-5-walkthrough-mia/index.md @@ -27,7 +27,7 @@ Mia entered Module 5 with a live product and a number that could embarrass her: --- -![Mia's Module 5 artifact trail - a 40% test niche, a warm 50-name list, a signed paid pilot, and a complete Founder OS](artifact-trail.svg) +![Mia's Module 5 artifact trail - a notebook line to a stranger's money: a 55% must-have test, a warm 50-name list, a signed paid pilot, and a complete Founder OS](artifact-trail.svg) ## [Lesson 5.1: The 40% Test](/course/tech-for-non-technical-founders-2026/must-have-segment-pmf-test/) diff --git a/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/bump-decision.svg b/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/bump-decision.svg index 145dff673..eca91bb3a 100644 --- a/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/bump-decision.svg +++ b/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/bump-decision.svg @@ -1,79 +1,80 @@ - - The Day-3 bump: two honest variants. Pick the one that matches your situation. Never claim conversations you have not had. - A single "Send bump" card in the center flows down into two variant cards side by side. Left (purple, alternate path): "First research round" - curiosity about their post is the hook, no credentials needed. Right (amber, warning): "Already interviewed" - social proof with a true number only. A bottom rule notes: never claim conversations you have not had. + + The Day-3 bump: two honest variants. Pick the one that matches your situation. Never claim conversations you have not had. + A single "Send a Day-3 bump" card at the top - if the Day-0 message got no reply, bump once. It forks into two variant cards. Purple, the alternate path, "First research round": "I'm early in this research - your experience is exactly what I want to learn from." Curiosity is the hook, no credentials needed. Amber, a warning, "Already interviewed": "I've talked to [TRUE NUMBER] people - yours is the situation they kept pointing at." Social proof with a true number only. A ruby rule at the bottom: never claim conversations you have not had. - - + + - - + + - - The Day-3 bump: pick your honest variant - If the Day-0 message got no reply, send exactly one bump. Which one depends on where you really are. + + - - - - - 2 - Send a Day-3 bump - No reply from Day 0? Bump once. + The Day-3 bump: pick your honest variant + No reply from Day 0? Send exactly one bump. + + + + + + 2 + Send a Day-3 bump + No reply from Day 0? Bump once. - - - - - - first round? - - interviewed? + + + + first round? + + interviewed? - - - - - First research round - "I'm at the start of this research and your - experience is exactly the kind I want to learn from." - Curiosity is the hook. No credentials needed. + + + + + First research round + "I'm early in this research - + your experience is exactly + what I want to learn from." + Curiosity is the hook. No credentials. - - - - - Already interviewed - "I've talked to [TRUE NUMBER] people - your - situation is the one they kept pointing at." - Social proof with a true number only. + + + + + Already interviewed + "I've talked to [TRUE NUMBER] + people - yours is the situation + they kept pointing at." + Social proof, a true number only. - - - - Never claim conversations you have not had. + + + + Never claim conversations you have not had. + + Basis: one bump per contact, sent by hand, matched to where you actually are diff --git a/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/message-channels.svg b/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/message-channels.svg index adcdd8dee..c9464eac1 100644 --- a/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/message-channels.svg +++ b/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/message-channels.svg @@ -1,80 +1,82 @@ - - Four message channels, each with a specific job. Email or DM for anyone with an address. LinkedIn DM when there's no email. Reddit comment when DMs are closed on a public thread. Waitlist signup opener for smoke-test signups - highest reply rate, start here. - Four channel cards in a row, ordered by reply rate from highest to lowest. Card 1 (green, highest reply rate): Waitlist signups - people who already raised a hand. Card 2 (cream): Email or DM - your primary channel for the 30-name list. Card 3 (purple, alternate): LinkedIn DM - when there's no email. Card 4 (cream): Reddit comment - for public threads with DMs closed. Each card has a brief when-to-use note. + + Four message channels, each with a specific job, ordered by reply rate. Waitlist signups reply most - start there. Email or DM is primary. LinkedIn DM when there's no email. Reddit comment for public threads with DMs closed. + Four channel cards. Green Waitlist signups, marked start here: people who already raised a hand, the highest reply rate - the Module 1 smoke-test list. Neutral channel 1, Email or DM: your primary channel, works for anyone with an address - the 30-name list from Lesson 2.3. Purple channel 2, LinkedIn DM, the alternate path: when there's no email, same three-line format leading with the comment they wrote. Neutral channel 3, Reddit comment: for public threads with DMs closed, drop a comment and leave your own DMs open - lowest volume, still worth it. A closing amber rule: all four use the same formula, name their exact words in the first line; if it could be sent to anyone, rewrite it. - - Which message to send: pick your channel - Four channels, each for a specific situation. Start with waitlist signups - they reply at the highest rate. + + - - - - - - start here - Waitlist signups - People who already raised - a hand. Highest reply rate. - Module 1 smoke-test list + Which message to send: pick your channel + Start with waitlist signups - they reply most + + + + + + start here + Waitlist signups + People who already raised + a hand. Highest reply rate. + Module 1 smoke-test list - - - - - 1 - Email or DM - Your primary channel. - The Day-0 message works - for anyone with an address. - 30-name list from 2.3 + + + + + 1 + Email or DM + Your primary channel - works + for anyone with an address. + 30-name list from 2.3 - - - - - 2 - LinkedIn DM - When there's no email. - Same 3-line format, - leads with their comment. - - alternate path + + + + + 2 + LinkedIn DM + When there's no email. Same + 3-line format, leads with the + comment they wrote. + alternate path - - - - - 3 - Reddit comment - For public threads with - DMs closed. Drop a - comment, leave DMs open. - lowest volume, worth it + + + + + 3 + Reddit comment + Public threads with DMs closed. + Drop a comment, leave your + own DMs open. + lowest volume, still worth it - - - - All four channels use the same formula: name their exact words in the first line. If it could be sent to anyone, rewrite it. + + + + All four use the same formula: name their exact words in line one. + If it could be sent to anyone, rewrite it. + + Basis: the same 3-line message, sent by hand, one channel per contact diff --git a/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/outreach-cadence.svg b/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/outreach-cadence.svg index 190c0d3b6..590816949 100644 --- a/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/outreach-cadence.svg +++ b/content/course/tech-for-non-technical-founders-2026/outreach-sequence-template/outreach-cadence.svg @@ -1,130 +1,93 @@ - - The 3-message outreach cadence: Day 0 message names their exact words. Day 3 bump picks the honest variant. Day 7 close leaves the door open. A handful a day, by hand - a stagger beats a burst. - Three numbered step cards in a row, each with a sub-card. Day 0: first message, sub-card says "name something they actually wrote." Day 3: bump, sub-card forks into two variants - first research round (curiosity hook) or already interviewed (social proof). Day 7: close, sub-card says "even two sentences by email would help." A bottom tracker row shows the spreadsheet columns: Sent on, Bumped, Replied, Booked, Done. A note below: stop sending when 10 are booked. + + The 3-message outreach cadence: Day 0 names their exact words, Day 3 bumps with the honest variant, Day 7 closes leaving the door open. A handful a day, by hand - a stagger beats a burst. + Three day-step cards stacked top to bottom. Day 0, first message: email or DM whose subject names their exact words from the post you found in Lesson 2.3. Day 3, bump: pick one honest variant - a purple "first round" line for honest curiosity about their post, or an amber "already interviewed" line for social proof with a true number only. Day 7, close: a last note, no pressure - "even two sentences by email would help." Below, a purple LinkedIn DM opener leads with the comment they wrote and asks for 20 minutes this week. A tracker strip lists the spreadsheet columns: Sent, Bumped, Replied, Booked, and a green Done. A ruby rule closes it: never bump someone who has replied, and never claim conversations you have not had. - - + + - - The 3-message outreach cadence - A handful a day, by hand - a stagger beats a burst. + + - - - - - - 1 - - Day 0 - - first message - - - email or DM - subject line - names their exact words from - the post you found in Lesson 2.3 - - - - + The 3-message outreach cadence + A handful a day, by hand - a stagger beats a burst - - - - - 2 - Day 3 - - bump - - - first round - honest curiosity - about their post - - interviewed - social proof - (true number only) + + + + Day 0 + + first message + Email or DM - subject names their exact words (post from 2.3) + - - - - - - - - 3 - Day 7 - - close - - - last note - no pressure - "even two sentences by email - would genuinely help" + + + + Day 3 + + bump + First round: honest curiosity about their post + Already interviewed: social proof, a true number only + - - - - LinkedIn DM opener - "your comment on [POST/THREAD] about [TOPIC] is why I'm writing. 20 minutes this week for everything you'd warn someone about?" + + + + Day 7 + + close + Last note, no pressure - "even two sentences by email would help" - - - - Tracking spreadsheet - - - Sent on - - - Bumped - - - Replied - - - Booked - - - ✓ Done + + + + LinkedIn DM opener + "Your comment on [POST] about [TOPIC] is why I'm writing - 20 min this week?" + - stop sending when 10 are booked + + + + Track: + + Sent + + Bumped + + Replied + + Booked + + Done - - - - Rule: Never bump someone who has replied. Never claim conversations you have not had. - The whole sequence rests on the first line naming something they actually wrote - if it could be sent to anyone, rewrite it. + + + + Never bump a reply. Never claim conversations you have not had. + + Basis: stop sending once 10 calls are booked - a handful a day, by hand 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 a394360cb..0c7536386 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 @@ -1,90 +1,98 @@ - - The pivot ledger: 4-column table tracking what survives the pivot and what does not + + The pivot ledger: eight rows tracking what survives a pivot and what you rewrite, with the source module and the action for each. + Eight rows, each with an evidence type, its source module, a coloured verdict, and an action. Customer relationships (Lesson 5.2 outreach) - green YES - re-pitch the new hypothesis. Validated problem (Lesson 2.5) - green YES - carry forward as the anchor. Disconfirmed problem (Lesson 2.3 / churn triage) - green YES, negative - add to the do-not-chase list. Cohort retention numbers (churn-triage floor) - green YES - baseline for the next cohort. Hypothesis sentence (Lesson 1.1) - ruby REWRITE - new blanks, same template. Landing page copy (Lesson 1.2) - ruby REWRITE - new headline and CTA. Built MVP code (Lessons 4.3-4.4 / hire track) - amber DEPENDS - keep auth and billing, swap the core. Founder energy and domain (not applicable) - green YES - the whole reason to pivot. Closing line: walk every row before declaring the pivot; the evidence column is the difference between a pivot and a flail. - Pivot ledger: what you keep, what you change - A pivot is not a restart. The evidence column is the difference between a pivot and a flailing reboot. + + - - - - - - + The pivot ledger: keep or rewrite + A pivot is not a restart - the evidence is the difference - - Evidence Type - Source Module - Survives Pivot? - Action + + Evidence (source) + Survives? + Action + + - Customer relationships - Lesson 5.2 outreach - YES - Re-pitch new hypothesis - - + + Customer relationships + Lesson 5.2 outreach + + YES + Re-pitch new hypothesis + - Validated problem (survived) - Lesson 2.5 - YES - Carry forward as anchor - - + + Validated problem + Lesson 2.5 + + YES + Carry forward as anchor + - Disconfirmed problem - Lesson 2.3 / churn triage - YES (negative) - Add to "do not chase" list - - + + Disconfirmed problem + Lesson 2.3 / churn triage + + YES (neg) + Add to do-not-chase list + - Cohort retention numbers - Churn-triage floor - YES - Baseline for next cohort - - + + Cohort retention + Churn-triage floor + + YES + Baseline for next cohort + - Hypothesis sentence - Lesson 1.1 - REWRITE - New blanks, same template - - + + Hypothesis sentence + Lesson 1.1 + + REWRITE + New blanks, same template + - Landing page copy - Lesson 1.2 - REWRITE - New headline + CTA - - + + Landing page copy + Lesson 1.2 + + REWRITE + New headline + CTA + - Built MVP code - Lesson 4.3-4.4 / hire track - DEPENDS - Keep auth/billing, swap core - - + + Built MVP code + Lesson 4.3-4.4 / hire track + + DEPENDS + Keep auth, swap the core + - Founder energy / domain - N/A - YES - The whole reason to pivot + + Founder energy / domain + Not tied to one lesson + + YES + The whole reason to pivot + - - Print this. Walk every row before declaring the pivot. The discipline is what separates a pivot from a flail. + Basis: walk every row before declaring the pivot - the discipline is what separates it from a flail diff --git a/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-wheel.svg b/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-wheel.svg index 2e5bc62bc..1b7027e72 100644 --- a/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-wheel.svg +++ b/content/course/tech-for-non-technical-founders-2026/pivot-or-persevere-decision-framework/pivot-wheel.svg @@ -1,72 +1,81 @@ - - The 6 pivot types: customer, need, solution, technology, channel, revenue + + Six pivot types branching from the same founding hypothesis: customer segment, customer need, solution, technology, channel, and revenue model - each keeps what works and replaces what does not. + A hub node reads Founding Hypothesis - 5 blanks, 1 is wrong - and branches into six pivot-type cards. 1 Customer Segment: right product, wrong customer - e.g. an SMB tool sold to enterprise. 2 Customer Need: right customer, wrong problem - e.g. dentists want billing, not scheduling. 3 Solution: right problem, wrong solution - e.g. a dashboard, not a workflow. 4 Technology: right solution, wrong stack - e.g. native, not Bubble. 5 Channel: right product, wrong distribution - e.g. product-led, not outbound. 6 Revenue Model: right product, wrong pricing - e.g. per-seat, not per-event. + + + - Six pivot types branching from the same hypothesis - Each spoke names what stays right and what changes - keep what works, replace what does not - + + - - - Founding - Hypothesis - 5 blanks - 1 right + Six pivot types from one hypothesis + Keep what works, replace what does not - - - - 1 - Customer Segment - Right product, wrong customer - e.g. SMB tool sold to enterprise + + + + Founding Hypothesis + 5 blanks - 1 is wrong + + - - - - 2 - Customer Need - Right customer, wrong problem - e.g. dentists, bill not schedule + + + + + 1 - Customer Segment + Right product, wrong customer + e.g. SMB tool sold to enterprise + + + + + 2 - Customer Need + Right customer, wrong problem + e.g. dentists want billing, not scheduling + + + + + 3 - Solution + Right problem, wrong solution + e.g. a dashboard, not a workflow + + + + + 4 - Technology + Right solution, wrong stack + e.g. native, not Bubble + + + + + 5 - Channel + Right product, wrong distribution + e.g. product-led, not outbound + + + + + 6 - Revenue Model + Right product, wrong pricing + e.g. per-seat, not per-event + - - - - 3 - Solution - Right problem, wrong solution - e.g. dashboard, not workflow - - - - - 4 - Technology - Right solution, wrong stack - e.g. native, not Bubble - - - - - 5 - Channel - Right product, wrong distribution - e.g. PLG not outbound - - - - - 6 - Revenue Model - Right product, wrong pricing - e.g. seat, not per-event - + Basis: one wrong blank in the hypothesis names which pivot you actually need diff --git a/content/course/tech-for-non-technical-founders-2026/pre-launch-checklist/pre-launch-gates.svg b/content/course/tech-for-non-technical-founders-2026/pre-launch-checklist/pre-launch-gates.svg index d93dd4c00..7e886fc21 100644 --- a/content/course/tech-for-non-technical-founders-2026/pre-launch-checklist/pre-launch-gates.svg +++ b/content/course/tech-for-non-technical-founders-2026/pre-launch-checklist/pre-launch-gates.svg @@ -1,149 +1,106 @@ - - The 15-item pre-launch checklist: 5 sections with their check counts flow into the final gate. 15/15 green ships it. 12-14 green fixes today. Under 12 green - do not ship yet. - Five numbered section cards across the top: Section 1 Mobile (5 checks), Section 2 Payments (3 checks), Section 3 Auth and Access (3 checks), Section 4 Onboarding (2 checks), Section 5 The one-human smoke test (2 checks). Arrows from all five sections converge into the final gate below, which shows three verdict cards: green (15/15 - ship it), amber (12-14 - fix today), and red (under 12 - do not ship). + + The 15-item pre-launch checklist: 5 sections flow into the final gate. + Five numbered section cards across the top with their check counts: 1 Mobile (5 checks), 2 Payments (3 checks), 3 Auth and Access (3 checks), 4 Onboarding (2 checks), 5 the one-human smoke test (2 checks). Arrows converge into the final gate below, which shows three verdicts: 15 of 15 green - ship it, share the URL with your Module 2 interview pool; 12 to 14 green (amber) - fix the red items today, retest and share tomorrow; under 12 green (ruby) - do not ship, run the build phases again before anyone sees it. Checks 6 to 13 are the five green lights from Lesson 4.4 as per-item checks. - - + + - - The pre-launch checklist: 15 checks, 5 sections - Run these the day before you share your MVP URL. 20 minutes. Any red means fix before you share. + + - + Pre-launch: 15 checks, 5 sections + Run the day before you share your MVP URL - - - - - 1 - Mobile - Homepage, CTA tap, - forms, readable, - sign-up fits - - - 5 + + + + + 1 + Mobile + + 5 - - - - - - 2 - Payments - Stripe LIVE mode, - card clears, - receipt arrives - - 3 + + + + 2 + Payments + + 3 - - - - - - 3 - Auth & Access - New user sign-up, - sign back in, - reset works - - 3 + + + + 3 + Auth + + 3 - - - - - - 4 - Onboarding - First-run experience, - core workflow - end-to-end - - 2 + + + + 4 + Onboard + + 2 - - - - - - 5 - Smoke test - Stranger navigates - core flow, names - it in 3 sec - - 2 + + + + 5 + Smoke + + 2 - - - - - - + + + + + + - - Final gate: count your green lights + Final gate: count your green lights - - - - - 15/15 green - Ship it. - Share the URL with your Module 2 interview pool. + + + + + 15/15 + Ship it. + Share the URL with your Module 2 interview pool. - - - - - - 12-14 green - Fix the red items today. - These are the checks that lose early users. Retest, share tomorrow. + + + + + 12-14 + Fix the red items today. + These lose early users. Retest, share tomorrow. - - - - - - Under 12 green - Do not ship. - Run the build phases again. - Fix the core flow before - anyone else sees it. - - + + + + + Under 12 + Do not ship. + Run the build phases again before anyone sees it. - - - - Checks 6-13 = the five green lights from Lesson 4.4, as per-item checks. - + Checks 6-13 = the five green lights from Lesson 4.4, as per-item checks. diff --git a/content/course/tech-for-non-technical-founders-2026/quickstart/minimal-path.svg b/content/course/tech-for-non-technical-founders-2026/quickstart/minimal-path.svg index 08e1d2a6a..8361518ae 100644 --- a/content/course/tech-for-non-technical-founders-2026/quickstart/minimal-path.svg +++ b/content/course/tech-for-non-technical-founders-2026/quickstart/minimal-path.svg @@ -1,88 +1,78 @@ - + The minimal path: five numbered core-lesson stops from idea to first paying customer. - A left-to-right strip of five numbered step cards, one per module, each in its module colour. Step 1 Hypothesis and Smoke Test produces a landing page and a price signal. Step 2 Validate the Problem produces 10 interviews and a prototype. Step 3 Design from Evidence produces a one-page Product Brief. Step 4 Build It Yourself produces a live MVP at a real URL. Step 5 First Paying Customer produces a signed paid pilot. Arrows connect each step to the next. + A left-to-right strip of five numbered step cards. Step 1 Hypothesis and Smoke Test produces a landing page and a price signal. Step 2 Validate the Problem produces 10 interviews and a prototype. Step 3 Design from Evidence produces a one-page Product Brief. Step 4 Build It Yourself produces a live MVP at a real URL. Step 5 First Paying Customer produces a signed paid pilot. Arrows connect each step to the next. - + - - The Minimal Path - Core lessons only - the shortest route from idea to first paying customer. + + - - - - - 1 - Hypothesis & - Smoke Test - landing page + - price signal - + The minimal path + Core lessons only - idea to first paying customer - - - - - 2 - Validate the - Problem - 10 interviews + - prototype + + + + + 1 + Hypothesis + + Smoke Test + landing page + + price signal - - - - - - 3 - Design from - Evidence - one-page - Product Brief + + + + 2 + Validate the + Problem + 10 interviews + + prototype - - - - - - 4 - Build It - Yourself - live MVP at - a real URL + + + + 3 + Design from + Evidence + one-page + Product Brief - - - - - - 5 - First Paying - Customer - signed - paid pilot + + + + 4 + Build It + Yourself + live MVP at + a real URL + + + + + + 5 + First Paying + Customer + signed + paid pilot - - - - + + + + diff --git a/content/course/tech-for-non-technical-founders-2026/reference/hypothesis-sprint-full/sprint-timeline.svg b/content/course/tech-for-non-technical-founders-2026/reference/hypothesis-sprint-full/sprint-timeline.svg index 16084d334..57414e891 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/hypothesis-sprint-full/sprint-timeline.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/hypothesis-sprint-full/sprint-timeline.svg @@ -1,78 +1,88 @@ - + The six-step founding-hypothesis sprint, run alone in about 90 minutes - Six numbered step cards laid out as a snake - three across the top left to right, three across the bottom right to left - joined by arrows. Step 1 The Basics: five candidates per column. Step 2 Differentiator: faster, easier, or cheaper. Step 3 Three Approaches: one sentence each. Step 4 Magic Lenses: score 1 to 5 on four lenses. Step 5 Write It Down: the one Mad Libs sentence. Step 6 Design the Test: smoke test plus interviews. + Six numbered step cards laid out as a snake - three across the top left to right, then wrapping to three across the bottom left to right - joined by arrows. Step 1 The Basics: five candidates per column. Step 2 Differentiator: faster, easier, or cheaper. Step 3 Three Approaches: one sentence each. Step 4 Magic Lenses: score 1 to 5 on four lenses. Step 5 Write It Down: the one Mad Libs sentence. Step 6 Design the Test: smoke test plus interviews. Basis: the founding-hypothesis sprint worksheet. - - + + - The 6-step founding-hypothesis sprint - One notebook, a kitchen timer, about 90 minutes - run it alone. + + - - - - - 1 - The Basics - five candidates per column + The 6-step founding-hypothesis sprint + One notebook, a timer, about 90 minutes - run it alone + + + + + + 1 + The Basics + five candidates + per column - - - - 2 - Differentiator - faster, easier, or cheaper + + + + 2 + Differentiator + faster, easier, + or cheaper - - - - 3 - Three Approaches - one sentence each + + + + 3 + 3 Approaches + one sentence + each - - - - - 4 - Magic Lenses - score 1-5 on four lenses + + + + + 4 + Magic Lenses + score 1-5 on + four lenses - - - - 5 - Write It Down - the one Mad Libs sentence + + + + 5 + Write It Down + the one Mad + Libs sentence - - - - 6 - Design the Test - smoke test + interviews + + + + 6 + Design Test + smoke test + + interviews - - - - - - - - + + + + + + + + + + Basis: the founding-hypothesis sprint worksheet diff --git a/content/course/tech-for-non-technical-founders-2026/reference/mom-test-full/good-vs-bad-answers.svg b/content/course/tech-for-non-technical-founders-2026/reference/mom-test-full/good-vs-bad-answers.svg index 72581e77f..f27d834b7 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/mom-test-full/good-vs-bad-answers.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/mom-test-full/good-vs-bad-answers.svg @@ -1,76 +1,59 @@ - - Mom Test answers - polite hypothetical vs specific past behavior - Bad answer: yeah I would totally pay for that. Good answer: last Tuesday 9pm I spent 40 minutes copying spreadsheets and called my CFO. The good answer has a date a time a tool a person a duration and feeling. + + Mom Test answers - polite hypothetical vs specific past behavior + Side-by-side comparison. Left, marked Bad and scored 2 out of 10: a polite hypothetical answer - "Yeah, I'd totally pay for that." No date, no quantified pain, a hypothetical commitment. Right, marked Good and scored 8 out of 10: a specific past-behavior answer - "Last Tuesday 9pm, 40 minutes copying spreadsheets, called my CFO, felt stupid." A date, time, tool, person, and an emotional flag. Same interviewee, same problem, opposite signal, decided by how the question was worded. Basis: the Mom Test interview method. - + - Same interviewee. Same problem. Opposite signal. - The question wording decides which answer you get. - - - - - vs + Same problem. Opposite signal. + The question wording decides which answer you get - - BAD - polite hypothetical - - You asked: - "Would you pay $49/month for a tool - that automates this reporting?" - - They said: - "Yeah I'd totally pay for that! - Sign me up when it ships." - - What you learned: - - No date, no real story - - No quantified pain - - No workaround mentioned - - Hypothetical commitment - - Score: 2/10 - Interviewee was kind. - They will not pay you. - 8 of these = 0 customers. + + BAD - polite hypothetical + You asked: + "Would you pay $49/mo for a + tool that automates this?" + They said: + "Yeah, I'd totally pay for + that! Sign me up." + You learned: + - No date, no real story + - No quantified pain + - Hypothetical commitment + Score: 2/10 + Kind - but 8 of these = 0 buyers - - GOOD - past behavior - - You asked: - "Tell me about the last time - you ran a board report. Walk me - through what you did." - - They said: - "Last Tuesday 9pm I spent 40 min - copying spreadsheets into a deck. - Called my CFO. I felt stupid." - - What you learned: - - Date, time, tool, person, duration - - Emotional flag: "felt stupid" - - A real recent incident - - Workaround named (CFO did it) - - Score: 8/10 - Real felt problem. - 7+ of these = validated. + + GOOD - past behavior + You asked: + "Tell me about the last time + you ran a board report." + They said: + "Last Tuesday 9pm, 40 min + copying spreadsheets. Called + my CFO. I felt stupid." + You learned: + - Date, time, tool, person + - Flag: "felt stupid" + - A real recent incident + Score: 8/10 + Real pain - 7+ of these = validated + + Basis: the Mom Test interview method - same interviewee, same problem diff --git a/content/course/tech-for-non-technical-founders-2026/reference/must-have-survey-full/segment-isolation.svg b/content/course/tech-for-non-technical-founders-2026/reference/must-have-survey-full/segment-isolation.svg index a6d31d138..5fd7cb465 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/must-have-survey-full/segment-isolation.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/must-have-survey-full/segment-isolation.svg @@ -1,70 +1,67 @@ - - Segment isolation without a Venn: three cohort cards side by side. The blended average of 28% hides one segment scoring 64%, which passes the 40% line and is the one to sell to first. - Three cohort cards. B2B Marketers score 64% must-have (9 of 14) and pass the 40% line, highlighted green and tagged sell here first. Solo Founders 14% (1 of 7) and Agencies 0% (0 of 7) fall below the line, shown neutral. A red dashed 40% line crosses each mini fill-bar; only the marketers' bar clears it. + + Segment isolation: a blended 28% average hides one segment scoring 64%, which passes the 40% line and is the one to sell to first. + Three cohort cards side by side, each with a fill bar and a dashed 40% threshold line. B2B Marketers score 64% must-have (9 of 14) and clear the line - highlighted green and tagged sell here first. Solo Founders 14% (1 of 7) and Agencies 0% (0 of 7) fall below the line, shown neutral. Basis: 28 survey responses, sliced by segment. - - One blended average hides three different products. - Same 28 responses. The overall 28% looks like failure - until you slice by who the user is. + - - - B2B Marketers - 64% - must-have - - - - - 40% line - 9 of 14 said "very disappointed" - Use it daily. Dropped another tool. - - → SELL HERE FIRST + One average hides three products + Overall 28% looks like failure - until you slice by who + + + + B2B Marketers + 64% + must-have + + + + 40% line + 9 of 14 said + "very disappointed" + + SELL HERE FIRST - - Solo Founders - 14% - must-have - - - - 40% line - 1 of 7 said "very disappointed" - Tried it once. Forgot it existed. - Below the line - not now + + Solo Founders + 14% + must-have + + + + 40% line + 1 of 7 said + "very disappointed" + Below the line - not now - - Agencies - 0% - must-have - - - 40% line - 0 of 7 said "very disappointed" - Already have an internal tool. - Never your buyer + + Agencies + 0% + must-have + + + 40% line + 0 of 7 said + "very disappointed" + Never your buyer + + Basis: 28 survey responses, sliced by segment diff --git a/content/course/tech-for-non-technical-founders-2026/reference/outbound-full/stage-cadence.svg b/content/course/tech-for-non-technical-founders-2026/reference/outbound-full/stage-cadence.svg index 27e8ea765..3b89897b1 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/outbound-full/stage-cadence.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/outbound-full/stage-cadence.svg @@ -1,96 +1,83 @@ - + The six-stage outbound cadence - A snake-path diagram of six weekly stages. Row one, left to right: Stage 1, send 30 messages, 1-4 replies expected, tinted cold red. Stage 2, run 3-5 demos, 2-3 DPAs sent, tinted warm purple. Stage 3, 1-2 deposits cleared, pilot kickoffs scheduled, tinted conversion amber. The path drops down under Stage 3, then row two continues right to left: Stage 4, send next 20, hold for reply tail, tinted cold red. Stage 5, first Friday demos plus earlier prospects mature, tinted warm purple. Stage 6, year-one conversions plus next 20 cold names, tinted conversion amber. A legend below explains the three tints: cold outreach, warm pipeline, conversion. + A snake-path diagram of six weekly stages. Row one, left to right: Stage 1, send 30 messages, 1-4 replies expected, cold outreach red. Stage 2, run 3-5 demos, 2-3 DPAs sent, warm pipeline purple. Stage 3, 1-2 deposits cleared, pilot kickoffs scheduled, money-lands green. The path drops under Stage 3, then row two continues right to left: Stage 4, send next 20, hold for reply tail, cold red. Stage 5, Friday demos plus earlier prospects mature, warm purple. Stage 6, year-one conversions plus next 20 cold names, money green. A legend explains the three tints. Basis: one week of the outbound cadence. - - + + - - The six-stage outbound cadence - Cold sends and warm follow-ups, running the same week. + - - - - - 1 - Send 30 messages - 1-4 replies expected - + The six-stage outbound cadence + Cold sends and warm follow-ups, running the same week - - - - 2 - Run 3-5 demos - 2-3 DPAs sent + + + + 1 + 30 messages + 1-4 replies expected - - - - - 3 - 1-2 deposits cleared - Pilot kickoffs scheduled + + + 2 + Run 3-5 demos + 2-3 DPAs sent - - - - - - - - - - - - - 4 - Send next 20 - Hold for reply tail + + + 3 + Deposits clear + Kickoffs scheduled - - - - 5 - First Friday demos - + earlier prospects mature + + + + 6 + Conversions + Year-one + 20 cold - - - - - 6 - Year-one conversions - + next 20 cold names + + + 5 + Friday demos + + earlier prospects + mature + + + + 4 + Next 20 sent + Hold for reply tail - - - + + + + + + - - Cold outreach - - Warm pipeline - - Money lands + + Cold outreach + + Warm pipeline + + Money lands + + Basis: one week of the outbound cadence, cold sends + warm follow-ups diff --git a/content/course/tech-for-non-technical-founders-2026/reference/outcomes-not-features-full/feature-vs-outcome.svg b/content/course/tech-for-non-technical-founders-2026/reference/outcomes-not-features-full/feature-vs-outcome.svg index 521a66ea6..ae73aec21 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/outcomes-not-features-full/feature-vs-outcome.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/outcomes-not-features-full/feature-vs-outcome.svg @@ -1,120 +1,87 @@ - - Feature-shaped brief vs outcome-shaped brief, with the system the engineer ends up building under each. - A side-by-side comparison. Left card is feature-shaped: a one-line brief "Build a CSV export button" leads down to a sketch of a full BI suite with eight modules, three dashboards, scheduled email reports, and a role matrix. Right card is outcome-shaped: a longer brief "When I prepare the weekly investor report, I want to grab the top 5 metrics in 30 seconds, so I can paste them into the deck before the call" leads down to a sketch of a single button labeled "Copy top 5 metrics" above a small data table. + + Feature-shaped brief vs outcome-shaped brief, with the system the engineer builds under each. + A side-by-side comparison. Left, feature-shaped: the brief "Build a CSV export button" leads to a nine-box BI suite - dashboards, scheduled email, saved filters, exports, custom columns, roles, date picker, export queue, audit log. Nine features, six weeks, you used one; bill $18,400. Right, outcome-shaped: the brief "When I prepare the weekly investor report, I want the top 5 metrics in 30 seconds, to paste into the deck before the 4pm call" leads to one button, Copy top 5 metrics, above a short metrics list. Five numbers, one button, 90 minutes; bill $420. Basis: the same Friday brief, written two ways. - - - - - - Same Friday brief. Two different builds. - - - - - - FEATURE - - "Build a CSV export button" - - (13 words. No persona, no context, no metric.) - - - What the engineer builds - - - - Reporting & Analytics Module v1 - - - Dashboards (3) - - - Scheduled email - - - Saved filters - - - CSV / XLSX / PDF - - - Custom columns - - - Role-based access - - - Date range picker - - - Export queue - - - Webhook on done - - - Audit log of every export, retention policy, S3 archive - - 9 features. 6 weeks of build. - You used 1 of them: the CSV button. - The other 8 added support cost - and complicated the next change. - - Bill: $18,400 - - - - - - OUTCOME - - "When I prepare the weekly - investor report, I want to grab - the top 5 metrics in 30 seconds, - so I can paste them into the deck - before the 4pm call." - - (Same 13-second read. Names the moment, the - action, the result, the deadline.) - - - What the engineer builds - - - - Dashboard footer - - - 📋 Copy top 5 metrics to clipboard - - MRR ………………………… £24,300 - Net new MRR ……………… £1,840 - Active accounts ……………… 312 - Trial → paid conversion … 8.4% - Runway (months) ……………… 14 - - 5 numbers. 1 button. 90 minutes to ship. - - Bill: $420 + + + Same Friday brief. Two builds. + The brief's shape decides the build - and the bill + + + + + FEATURE + "Build a CSV + export button" + 13 words. No persona, + no context, no metric. + What the engineer builds: + + + + Dash x3 + + Email + + Filters + + Exports + + Columns + + Roles + + Dates + + Queue + + Audit + + 9 features. 6 weeks of build. + You used 1 - the CSV button. + The other 8 = support cost + drag. + Bill: $18,400 + + + + + OUTCOME + "When I prepare the weekly + investor report, I want the + top 5 metrics in 30 seconds, + to paste into the deck + before the 4pm call." + Names the moment, action, + result, and deadline. + What the engineer builds: + + + + Copy top 5 metrics + MRR: £24,300 + Net new MRR: £1,840 + Active accounts: 312 + Trial to paid: 8.4% + Runway: 14 months + 5 numbers. 1 button. 90 min to ship. + Bill: $420 + + Basis: the same Friday brief, written two ways diff --git a/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/bad-vs-good-email.svg b/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/bad-vs-good-email.svg index 61060fed7..6324f24bd 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/bad-vs-good-email.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/bad-vs-good-email.svg @@ -1,69 +1,63 @@ - + Bad vs Good: contractor email on the AWS root account compared with the founder's company email on the same account + Two panels. Bad, a hostage situation: account email aws@bigdevshop.com, billing on the agency AmEx, your access an IAM user that never logged into root; if they ghost, 10 minutes to lock you out and 3-5 business days for AWS to recover with incorporation papers. Good, you hold the keys: account email aws@yourcompany.com, billing on your company AmEx, root password in 1Password plus MFA; if they ghost, revoke their IAM user, rotate the root password, ship a hotfix the same afternoon. Same account, same software - one field changes everything downstream. Basis: AWS root account ownership. - AWS root account - who owns the email? + - - - - BAD - Hostage situation - - Account email - aws@bigdevshop.com - - - Billing card - **** 4421 (agency AmEx) - + AWS root account - who owns the email? - Your access - IAM user, never logged into root - - - Recovery if they ghost - 10 minutes for them to lock you out. - 3-5 business days for AWS support to - recover with incorporation papers. + + + + BAD + Hostage situation + Account email + aws@bigdevshop.com + + Billing card + **** 4421 (agency AmEx) + + Your access + IAM user, never + logged into root + + Recovery if they ghost + 10 minutes for them to lock + you out. 3-5 business days for + AWS to recover with papers. - - - GOOD - You hold the keys - - Account email - aws@yourcompany.com - - - Billing card - **** 0987 (your company AmEx) - - - Your access - Root password in 1Password + MFA - - - Recovery if they ghost - Revoke their IAM user. Rotate the - root password. Ship a hotfix the same - afternoon. They never had the key. - - Same account. Same software. One field changes. Everything downstream changes with it. + + + GOOD + You hold the keys + Account email + aws@yourcompany.com + + Billing card + **** 0987 (company AmEx) + + Your access + Root password in + 1Password + MFA + + Recovery if they ghost + Revoke their IAM user. Rotate + the root password. Ship a hotfix + the same afternoon. + + Same account, same software. One field changes - everything downstream changes with it. diff --git a/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/ownership-zones.svg b/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/ownership-zones.svg index 409821304..59ec69927 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/ownership-zones.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/ownership-full/ownership-zones.svg @@ -1,75 +1,67 @@ - + The four ownership zones a non-technical founder must control: code, cloud, secrets, and domain + Four zone cards. Zone 1 Code: GitHub org, repos, branch rules - if the agency owns the org they can delete every repo on Tuesday; audit items 1-3. Zone 2 Cloud: AWS root, IAM, billing card - the root account email is the master key, whoever owns it owns the stack; audit items 4-6. Zone 3 Secrets: database creds, API keys, .env - if only one person knows the prod DB password that is a hostage situation, not a database; audit items 7-9. Zone 4 Domain: registrar, DNS, third-party SaaS - a registrar transfer takes 14 days, so a held domain means customers cannot reach you for two weeks; audit items 10-12. A contractor's email on any one means you do not own the company. Basis: the 12-item ownership audit. - The four zones you must own by Friday - If a contractor's email is on any one of these, you do not own the company + + + The four zones you must own by Friday + A contractor's email on any one = you don't own the company - - - ZONE 1 - CODE - GitHub org - repos - branch protection - If the agency owns the org, they can - delete every repo on Tuesday morning. - Owner email = founder@yourcompany.com - Members = engineers (any company) - Item #1-3 of the audit + + + ZONE 1 + CODE + GitHub org, repos, branch rules + If the agency owns the org, they + can delete every repo on Tuesday. + Audit items 1-3 - - - ZONE 2 - CLOUD - AWS root - IAM - billing card - Root account email is the master key. - Whoever owns it owns the whole stack. - Root = aws@yourcompany.com - Bill paid by your company AmEx - Item #4-6 of the audit + + + ZONE 2 + CLOUD + AWS root, IAM, billing card + Root account email is the master + key - owns it, owns the stack. + Audit items 4-6 - - - ZONE 3 - SECRETS - Database creds - API keys - .env - If only Marcos knows the prod DB - password, you do not have a database. - You have a hostage situation. - Stored in Secrets Manager / 1Password - Item #7-9 of the audit + + + ZONE 3 + SECRETS + DB creds, API keys, .env + If only one person knows the prod + DB password, that's a hostage + situation, not a database. + Audit items 7-9 - - - ZONE 4 - DOMAIN - Registrar - DNS - 3rd-party SaaS - A registrar transfer takes 14 days minimum. - If the agency holds your domain hostage, - your customers cannot reach you for 2 weeks. - WHOIS = your name and your email - Item #10-12 of the audit + + + ZONE 4 + DOMAIN + Registrar, DNS, 3rd-party SaaS + A registrar transfer takes 14 days. + Hold it hostage and customers + can't reach you for 2 weeks. + Audit items 10-12 - 12 items. 45 minutes. One Friday afternoon. Your credit card and a Notion doc. + Basis: the 12-item ownership audit - 45 minutes, one Friday afternoon diff --git a/content/course/tech-for-non-technical-founders-2026/reference/product-brief-full/good-vs-bad-prd.svg b/content/course/tech-for-non-technical-founders-2026/reference/product-brief-full/good-vs-bad-prd.svg index a703e90d9..5770e49a5 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/product-brief-full/good-vs-bad-prd.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/product-brief-full/good-vs-bad-prd.svg @@ -1,91 +1,70 @@ - - Bad Vibe PRD vs Good Vibe PRD - side-by-side comparison of a vague brief and a specific one. - A side-by-side comparison. Left card is the bad Vibe PRD: a single line saying "Build a CRM" with no persona, no context, no metric, no no-go list. Right card is the good Vibe PRD with the five sections filled in - named persona, 60-second user context, one paragraph of build scope, one success metric, a no-go list of five items. + + Bad Vibe PRD vs Good Vibe PRD - side-by-side comparison of a vague brief and a specific one. + A side-by-side comparison of two product briefs. Left, the bad Vibe PRD titled "Build a CRM": problem blank, a vague user paragraph, a vague build, success metric "lots of happy users", no-go list blank - so Lovable builds a settings page, 17 toggles and a dashboard, a quarter wasted on the wrong demo. Right, the good Vibe PRD, a Stripe-QuickBooks reconciler, all five sections filled: named pre-seed persona losing 6 hours a week, a 9pm Tuesday context, a one-paragraph build scope, one measurable success metric with the event conversion_completed, and a five-item no-go list - so it ships in 4 days and gets a real test in 30. Basis: the same feature request, written two ways. - + - - Vibe PRD - Bad vs Good + Vibe PRD - Bad vs Good - - - - BAD - - "Build a CRM" - - 1. The problem - (blank) - - 2. The user + context - "Founders need a better way to - manage customer relationships." - - 3. What you're building - "A modern CRM with great UX, - integrations, and AI features." - - 4. Success metric - "Lots of happy users." - - 5. What you're NOT building - (blank) - - Result: Lovable builds a settings - page, 17 toggles, and a dashboard. - Nothing the persona actually does. - Quarter wasted on the wrong demo. + + + BAD + "Build a CRM" + 1. The problem + (blank) + 2. The user + context + "Founders need a better way + to manage relationships." + 3. What you're building + "A modern CRM with great UX, + integrations, AI features." + 4. Success metric + "Lots of happy users." + 5. What you're NOT building + (blank) + Result: Lovable ships a settings + page, 17 toggles, a dashboard. + Quarter wasted on the wrong demo. - - - - GOOD - - Stripe - QuickBooks reconciler - - 1. The problem - Pre-seed SaaS founders, 6 hrs/week - on Stripe - QB reconciliation. - 8/10 confirmed, May 2026 sample. - - 2. The user + context - Founder, 9pm Tuesday, browser, - Stripe + QB tabs open. Wants to - be done in 10 min, not 40. - - 3. What you're building - Paste Stripe payout CSV. Get - QB journal CSV back. USD only. - Magic-link auth. No CSV stored. - - 4. Success metric - 10 of first 20 signups convert - 1+ file in 30 days. Event: - conversion_completed. - - 5. What you're NOT building - Multi-currency - multi-Stripe - - auto-sync - settings page - roles - - mobile beyond 1024px - marketing - site beyond signup. - Result: 4-day ship. Real test in 30 days. + + + GOOD + Stripe-QB reconciler + 1. The problem + Pre-seed SaaS founders lose + 6 hrs/week to Stripe-QB recon. + 8/10 confirmed, May 2026. + 2. The user + context + Founder, 9pm Tuesday, Stripe + + QB tabs open. Wants 10 min, + not 40. + 3. What you're building + Paste Stripe payout CSV, get + QB journal CSV back. USD only. + Magic-link auth. No CSV stored. + 4. Success metric + 10 of first 20 convert 1+ file + in 30 days. Event: + conversion_completed + 5. What you're NOT building + Multi-currency, multi-Stripe, + auto-sync, settings, roles, + mobile, marketing site. + Result: 4-day ship. Real test in 30 days. diff --git a/content/course/tech-for-non-technical-founders-2026/reference/prototype-build-full/wireframe-strip.svg b/content/course/tech-for-non-technical-founders-2026/reference/prototype-build-full/wireframe-strip.svg index b2f39812b..ccc2b4c0a 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/prototype-build-full/wireframe-strip.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/prototype-build-full/wireframe-strip.svg @@ -1,78 +1,69 @@ - - A passing 3-screen prototype: Screen 1 entry point (fake file list + a Match transactions button) leads to Screen 2 core action (a Stripe-vs-QuickBooks match table where testers stall) leads to Screen 3 result (a summary card and Download report), which is where a passing tester lands without coaching. + + A passing 3-screen prototype: entry point to core action to result, where a passing tester lands without coaching. + Three wireframed screens joined by arrows. Screen 1, entry point: a list of 3 CSV files with a Match transactions button - can they start? Screen 2, core action: a Stripe versus QuickBooks match table, 12 matched and 3 flagged, with an Approve matches button - where testers stall. Screen 3, result, highlighted green as the pass target: a summary card, 12 matched and 3 flagged, with a Download report button - can they name what it did? Pass means reaching Screen 3 uncoached. Basis: a 3-screen clickable prototype test. + + + - A passing 3-screen prototype, wireframed + - - - - - Screen 1 · Entry point - - 3 CSV files listed - (hard-coded fake data) - - Match transactions - - First click - can they start? + A passing 3-screen prototype - - - - - + + + + 1 - Entry point + + 3 CSV files listed + (fake data) + + Match transactions + Can they start? - - - - - Screen 2 · Core action - - Stripe vs QuickBooks - 12 matched · 3 flagged - - Approve all matches - - Where testers stall + + + + 2 - Core action + + Stripe vs QuickBooks + 12 matched, 3 flagged + + Approve matches + Where testers stall - - - - - + + + + 3 - Result + + Summary card + 12 matched, 3 flagged + + Download report + Can they name it? - - - - - Screen 3 · Result - - Summary card - 12 matched, 3 flagged - - Download report - - Can they name what it did? + + + - - - PASS = reaches here uncoached + + + PASS = tester reaches Screen 3 uncoached + + Basis: a 3-screen clickable prototype test diff --git a/content/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/channel-icp-matrix.svg b/content/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/channel-icp-matrix.svg index 3bf28f870..5de6095a8 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/channel-icp-matrix.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/smoke-test-channel-guide/channel-icp-matrix.svg @@ -1,72 +1,66 @@ - - Channel-by-ICP matrix - the right paid channel for the audience your hypothesis names - Four handwritten cards, one per audience type. Top-left B2C consumer: Meta, 0.70 to 1.90 dollars per click, split 60/40 Reels and feed. Top-right B2B sold by job title: LinkedIn for unaware audiences or Google Search for active searchers, 3 to 22 dollars per click. Bottom-left developer tools: Reddit Ads, 1.25 to 3 dollars per click, in r/programming, r/webdev, r/SaaS. Bottom-right niche vertical: Google Search on long-tail intent, 1 to 5 dollars per click. Footer: skip Twitter/X for first-time validation in 2026 - targeting signal too noisy. + + Channel-by-ICP matrix - the right paid channel for the audience your hypothesis names + Four cards, one per audience type. B2C consumer products: Meta (Facebook and Instagram), $0.70 to $1.90 per click, split 60/40 Reels and feed. B2B sold by job title: LinkedIn for unaware audiences or Google Search for active searchers, $3 to $22 per click. Developer tools: Reddit Ads in r/programming, r/webdev, r/SaaS, $1.25 to $3 per click. Niche vertical such as real estate, dentists, contractors: Google Search on long-tail intent, $1 to $5 per click. Skip Twitter/X for first-time validation in 2026 - targeting signal too noisy. Basis: 2026 paid-channel CPC ranges. - Where the audience actually lives - Pick the channel where your customer scrolls - not the one YOU scroll. + - - - - B2C consumer products - Meta (Facebook + Instagram) - Cheap CPMs, fast learning. - Split 60% Reels / 40% feed. - $0.70 - $1.90 per click - Best targeting for broad consumer reach. - + Where the audience actually lives + Pick the channel where your customer scrolls - not you - - - - B2B, sold by job title - LinkedIn or Google Search - LinkedIn: unaware audience. - Google: already searching for a fix. - $3 - $22 per click - Job-title + company-size targeting. - + + + B2C consumer products + Meta (FB + Instagram) + Cheap CPMs, fast learning. + Split 60% Reels / 40% feed. + $0.70 - $1.90 per click + Broad consumer reach. - - - - Developer tools / technical - Reddit Ads - r/programming, r/webdev, - r/SaaS - where devs already are. - $1.25 - $3 per click - Skip if procurement is non-technical. - + + + B2B, sold by job title + LinkedIn or Google Search + LinkedIn: unaware audience. + Google: already searching. + $3 - $22 per click + Job-title + company-size targeting. - - - - Niche vertical - (real estate, dentists, contractors) - Google Search - Long-tail keywords with - clear purchase intent. - $1 - $5 per click - + + + Developer tools + Reddit Ads + r/programming, r/webdev, + r/SaaS - where devs are. + $1.25 - $3 per click + Skip if procurement is non-technical. - - - Twitter / X: skip for first-time validation in 2026 - targeting signal too noisy. + + + Niche vertical + (real estate, dentists, contractors) + Google Search + Long-tail keywords with + clear purchase intent. + $1 - $5 per click + + + + Skip Twitter / X for first-time validation in 2026 - signal too noisy. + + Basis: 2026 paid-channel CPC ranges diff --git a/content/course/tech-for-non-technical-founders-2026/reference/stripe-price-test-full/price-test-flow.svg b/content/course/tech-for-non-technical-founders-2026/reference/stripe-price-test-full/price-test-flow.svg index 6772ab835..2e310205e 100644 --- a/content/course/tech-for-non-technical-founders-2026/reference/stripe-price-test-full/price-test-flow.svg +++ b/content/course/tech-for-non-technical-founders-2026/reference/stripe-price-test-full/price-test-flow.svg @@ -1,97 +1,81 @@ - - The Stripe price-test flow: build the Payment Link, wire it to the page, read the click rate, then act on the band it lands in. - Three numbered step cards in a row: create the Stripe Payment Link with a one-time product at your hypothesis price, wire it to the landing-page button in live mode, and read the visit-to-Stripe-click rate. The rate forks into three outcome bands. Under 5 percent, amber: iterate - cut the price by half, add founding-member framing; below 2 percent means the audience or hypothesis is wrong, not the price. Five to ten percent, green: advance - the price is validated, move to Module 2 interviews and email everyone who clicked but did not buy. Over 10 percent, purple: verify - run a second cold channel; if both hold the signal is real, if one spikes the targeting was hot, not the pricing. + + The Stripe price-test flow: build the Payment Link, wire it to the page, read the click rate, then act on the band it lands in. + Three numbered step cards in a row - create the Stripe Payment Link with a one-time product at your hypothesis price, wire it to the landing-page button in live mode, and read the visit-to-Stripe-click rate. The rate forks into three outcome bands. Under 5 percent, amber, iterate: cut the price by half and add founding-member framing; below 2 percent means the audience is wrong, not the price. Five to ten percent, green, advance: the price is validated, move to Module 2 interviews and email everyone who clicked but did not buy. Over 10 percent, purple, verify: run a second cold channel; if both hold the signal is real, if one spikes the targeting was hot, not the pricing. Basis: one 7-day price test on a live Payment Link. - - + + - The Stripe price test, step by step - An email costs nothing; a card entry costs intent. Measure the one that counts. + - - - - - - - 1 - Create the Payment Link - one-time product, your price - + The Stripe price test, step by step + A card entry costs intent - measure the one that counts + + + + + 1 + Create the Link + one-time, your price - - - - - 2 - Wire it to the button - live mode, not test mode + + + 2 + Wire to button + live mode, not test - - - - - 3 - Read the click rate - page visits → Stripe clicks + + + 3 + Read click rate + visits to clicks - - + + - - - - + + + + - - - - - Under 5% - iterate - Cut the price 50%, add a - "founding member" framing. - Below 2% after that = the - audience is wrong, not the price. - - - - - 5 - 10% - advance - Price-validated. Move to - Module 2 customer interviews. - Email everyone who clicked - but didn't buy - your best group. - - - - - Over 10% - verify - Run a second cold channel. - Both hold → the signal is real. - One spikes → hot targeting, - not your pricing. - + + + Under 5% - iterate + Cut price 50%, add + founding-member hook. + Below 2% = wrong + audience, not price. + + + 5 - 10% - advance + Price validated. + Go to Module 2 + interviews. Email the + click-not-buyers. + + + Over 10% - verify + Run a 2nd cold + channel. Both hold = + real signal. One spike + = hot targeting. + + Basis: one 7-day price test on a live Payment Link diff --git a/content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/walkthrough-milestones.svg b/content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/walkthrough-milestones.svg index f66b916b5..7aacba0ba 100644 --- a/content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/walkthrough-milestones.svg +++ b/content/course/tech-for-non-technical-founders-2026/self-serve-stack-walkthrough/walkthrough-milestones.svg @@ -1,66 +1,71 @@ - - The walkthrough phase by phase. Phase 1 Lovable UI, five sessions, demo a clickable staging URL. Phase 2 Supabase, five sessions, demo the first real signup. Phase 3 Stripe, five sessions, demo a one-dollar paid flow. Phase 4 go live, five sessions, demo five ICP users clicking. Twenty build sessions of about ninety minutes each - roughly ten weeks evenings-only or four weeks full-time. - Four milestone cards on a timeline - Phase 1 Lovable UI, Phase 2 Supabase, Phase 3 Stripe, Phase 4 go live - each carrying a five-sessions chip and its demo checkpoint, joined by arrows. A note underneath reads roughly ten weeks evenings-only or four weeks full-time, the same twenty sessions either way. + + The walkthrough phase by phase: four milestones, one demo closes each. + Four milestone cards on a timeline. Phase 1 Lovable UI, five sessions, demo a clickable staging URL. Phase 2 Supabase plus auth, five sessions, demo the first real signup. Phase 3 Stripe checkout, five sessions, demo a one-dollar paid flow that clears. Phase 4 go live, five sessions, demo five ICP users clicking. Twenty build sessions of about ninety minutes each - roughly ten weeks evenings-only or four weeks full-time, the same twenty sessions either way. - + - The walkthrough, phase by phase - 20 build sessions (~90 min each) - one demo closes each phase. + + - - - - Phase 1 - - 5 sessions - Lovable UI - clickable staging URL + The walkthrough, phase by phase + 20 build sessions - one demo closes each phase + + + + + Phase 1 + + 5 sessions + Lovable UI + ✓ clickable + staging URL - - - Phase 2 - - 5 sessions - Supabase + auth - first real signup + + + Phase 2 + + 5 sessions + Supabase + ✓ first real + signup - - - Phase 3 - - 5 sessions - Stripe checkout - $1 paid flow clears + + + Phase 3 + + 5 sessions + Stripe + ✓ $1 paid + flow clears - - - Phase 4 - - 5 sessions - Go live - 5 ICP users click + + + Phase 4 + + 5 sessions + Go live + ✓ 5 ICP + users click - - - + + + - ~10 weeks evenings-only - ~4 weeks full-time - the same 20 sessions either way. + ~10 weeks evenings-only - ~4 weeks full-time - same 20 sessions diff --git a/content/course/tech-for-non-technical-founders-2026/sow-reading-guide/eight-clause-risk-map.svg b/content/course/tech-for-non-technical-founders-2026/sow-reading-guide/eight-clause-risk-map.svg index 30ae53842..a2b9fff15 100644 --- a/content/course/tech-for-non-technical-founders-2026/sow-reading-guide/eight-clause-risk-map.svg +++ b/content/course/tech-for-non-technical-founders-2026/sow-reading-guide/eight-clause-risk-map.svg @@ -1,69 +1,77 @@ - - The 8-clause SOW risk map: each clause and what it quietly costs + + The 8-clause SOW risk map: each clause and what it quietly costs you if you skim it. + Eight clause cards, each with the cost of skimming it in ruby. 1 Scope: vague scope is a blank check. 2 Milestone acceptance: you paid for staging no one uses. 3 Change requests: $185 an hour, no cap, no compare. 4 IP ownership: the agency holds the repo hostage. 5 Third-party accounts: rented accounts plus a 15 percent fee. 6 Termination: you can't exit for bad work. 7 Warranty: the clock runs out before launch. 8 Disputes: their city, their lawyer. An amber callout: $78K invoiced, 4 of 5 milestones, runway cut from 12 months to 7 - one email with all 8 questions, before you sign, catches this. - The 8-clause SOW risk map - Each clause, and what it quietly costs you if you skim it. + + - - - 1. SCOPE - Vague scope = blank - check. - - - 2. MILESTONE - ACCEPTANCE - Paid for staging no - one uses. - - - 3. CHANGE - REQUESTS - $185/hr, no cap, - no compare. - - - 4. IP - OWNERSHIP - Agency holds repo - hostage. + The 8-clause SOW risk map + Each clause, and what it quietly costs if you skim it + + + + 1. Scope + Vague scope = a blank check + + + + 2. Milestone acceptance + Paid for staging no one uses + - - 5. 3RD-PARTY - ACCOUNTS - Rented accounts - + 15% fee. - - - 6. TERMINATION - Can't exit for - bad work. - - - 7. WARRANTY - Clock runs out - before launch. + + + 3. Change requests + $185/hr, no cap, no compare + + + + 4. IP ownership + Agency holds the repo hostage + + + + + 5. Third-party accounts + Rented accounts + 15% fee + + + + 6. Termination + Can't exit for bad work + + + + + 7. Warranty + Clock runs out before launch + + + + 8. Disputes + Their city, their lawyer + - - 8. DISPUTES - Their city, - their lawyer. + + + + $78K invoiced. 4 of 5 milestones. Runway 12mo -> 7mo. + One email with all 8 questions, before you sign, catches this. + - - - $78K invoiced. 4 of 5 milestones. Runway 12mo to 7mo. - One email with all 8 questions, before you sign, catches this. + Basis: one real fixed-bid SOW - the eight clauses that quietly move the risk to you diff --git a/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/daily-weekly-cadence.svg b/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/daily-weekly-cadence.svg index 57f727a42..6a7d0e87b 100644 --- a/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/daily-weekly-cadence.svg +++ b/content/course/tech-for-non-technical-founders-2026/three-questions-turn-standup-into-proof/daily-weekly-cadence.svg @@ -1,84 +1,81 @@ - + The weekly oversight cadence: five daily standups feed one Friday demo, then the loop resets Monday. - On the left, a daily-standup panel labelled Mon to Fri holds the three questions asked at the end of every standup: show the staging URL of what shipped, walk through one PR you reviewed and what you flagged, and what did we cut to ship it. An arrow labelled five days of proof feeds a green Friday demo card - the week's working software. That feeds a purple weekly report card - what shipped, what is next. A dashed loop returns from the weekly report to the daily standup with the caption: Monday, the loop resets - you already know what should be on staging. + A daily-standup panel labelled Mon to Fri holds the three questions asked at the end of every standup: show the staging URL of what shipped, walk through one PR you reviewed and what you flagged, and what did we cut to ship it. An arrow labelled five days of proof feeds a green Friday demo card - the week's working software. That feeds a purple weekly report card - what shipped, what is next. A dashed loop returns to the daily standup: Monday the loop resets, you already know what should be on staging. - + - + - - The weekly oversight cadence - Five daily standups feed one Friday demo - then the loop resets. + + + + The weekly oversight cadence + Five daily standups feed one Friday demo - - - Daily standup - Mon to Fri - Ask these 3 at the end, every day. + + + Daily standup - Mon to Fri + Ask these 3 at the end, every day. - - 1 - Staging URL of what shipped? + + 1 + Staging URL of what shipped? - - 2 - One PR reviewed - what you flagged? + + 2 + One PR reviewed - what you flagged? - - 3 - What did we cut to ship it? + + 3 + What did we cut to ship it? - 5 days - of proof - + 5 days + of proof + - - - - Friday demo - the week's - working software + + + + Friday + demo + the week's + working sw - + - - - - Weekly report - what shipped, - what's next + + + + Weekly + report + what shipped, + what's next - - Monday: the loop resets - you already know what should be on staging. + + Monday: the loop resets - you already know what's on staging. diff --git a/content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/tools-in-sequence.svg b/content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/tools-in-sequence.svg index cd697bd04..6fec8eb5f 100644 --- a/content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/tools-in-sequence.svg +++ b/content/course/tech-for-non-technical-founders-2026/validation-tools-field-guide/tools-in-sequence.svg @@ -1,81 +1,78 @@ - - The three validation tools in the recommended order: first VenturusAI (free, about 30 seconds) catches missed competitors and weak differentiation; second Preuve AI's free scan (free, about 60 seconds) reads market signal and flags a customer that is too broad; third DimeADozen's Starter report (9 dollars, optional, about 2 minutes) catches kill risks and weak unit economics. None of them validates the hypothesis - only 10 Mom Test interviews do that. - A left-to-right strip of three numbered tool cards joined by arrows. Card 1 VenturusAI: catches missed competitors and weak differentiation; chips read about 30 seconds and Free. Card 2 Preuve AI free scan: reads market signal, flags customer too broad; chips read about 60 seconds and Free scan. Card 3 DimeADozen (optional): catches kill risks and unit economics; chips read about 2 minutes and 9 dollar Starter. + + The three validation tools in the order that pays off. + A left-to-right strip of three numbered tool cards joined by arrows. Card 1 VenturusAI catches missed rivals and weak edge - about 30 seconds, Free. Card 2 Preuve AI catches market signal and too-broad customer - about 60 seconds, Free scan. Card 3 DimeADozen (optional) catches kill risks and unit economics - about 2 minutes, 9-dollar Starter. None of them validates the hypothesis - only 10 Mom Test interviews do that. - + - - The 3 tools, in the order that pays off - Run them in sequence, not all at once - each catches what the next one can't. + + - - - - - 1 - VenturusAI - CATCHES - Missed rivals, weak edge - - ~30 seconds - - Free + 3 tools, in paying order + Run in sequence - each catches what the next can't + + + + + + 1 + VenturusAI + CATCHES + Missed rivals, weak edge + + ~30 sec + + Free - - - - - 2 - Preuve AI - CATCHES - Market signal, too broad - - ~60 seconds - - Free scan + + + + + 2 + Preuve AI + CATCHES + Market signal, too broad + + ~60 sec + + Free scan - - - - - 3 - DimeADozen - optional - CATCHES - Kill risks, unit economics - - ~2 minutes - - $9 Starter + + + + + 3 + DimeADozen + optional + CATCHES + Kill risks, unit economics + + ~2 min + + $9 Starter - - + + - - None of these validates your hypothesis - only 10 Mom Test interviews do that. + None validate your hypothesis - only 10 Mom Test interviews do. diff --git a/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/vibe-prd-skeleton.svg b/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/vibe-prd-skeleton.svg index 2cb5c5dfd..09cd58197 100644 --- a/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/vibe-prd-skeleton.svg +++ b/content/course/tech-for-non-technical-founders-2026/vibe-prd-template/vibe-prd-skeleton.svg @@ -1,49 +1,66 @@ - - The one-page brief skeleton - five labeled sections + + The one-page brief skeleton - five labeled sections. + Five section cards. 1 The Problem, copied word for word from your validated statement, do not soften it. 2 User plus context, the 60 seconds before and after they reach for it, moment of use not TAM. 3 What you are building, one verb-led paragraph, outcome-shaped not a feature list. 4 Success metric (green), one metric, one target number, one 30-day calendar reminder. 5 What you are not building (ruby), the no-go list, name what a competent agent would add. Sections 1-2 come from research, 3-5 written fresh, 90 minutes hard cap. - The one-page brief, five sections - Sections 1-2 from research. 3-5 written fresh. 90 minutes, hard cap. + + - - - 1 - THE PROBLEM - Copied word for word from - your validated statement - - do not soften it. - - - 2 - USER + CONTEXT - The 60 seconds before and - after they reach for it - - moment of use, not TAM. + The one-page brief, five sections + Sections 1-2 from research, 3-5 fresh - 90 min cap - - 3 - WHAT YOU'RE BUILDING - One verb-led paragraph. - ✓ outcome-shaped - ✗ feature list + + + + 1 - THE PROBLEM + Copied word for word + from your validated + statement - do not + soften it. + + + + 2 - USER + CONTEXT + The 60 seconds before + and after they reach + for it - moment of + use, not TAM. + + + + 3 - BUILDING + One verb-led + paragraph. + ✓ outcome-shaped + ✗ feature list + - - 4 - SUCCESS METRIC - One metric. One target number. - One 30-day calendar reminder. - - - 5 - WHAT YOU'RE NOT BUILDING - The no-go list - name what a - competent agent would add. + + + + 4 - SUCCESS METRIC + One metric. One target number. + One 30-day calendar reminder. + ✓ the one thing you check + + + + + 5 - NOT BUILDING + The no-go list - name what a + competent agent would add. + ✗ scope you refuse now + diff --git a/content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/hiring-region-map.svg b/content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/hiring-region-map.svg index 505a3cf7a..3bc89dc6c 100644 --- a/content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/hiring-region-map.svg +++ b/content/course/tech-for-non-technical-founders-2026/where-to-hire-developer-2026-map/hiring-region-map.svg @@ -1,85 +1,80 @@ - - Where to hire in 2026: four region cards - Onshore US/EU, Nearshore LATAM, Tier-2 India, Mass-market Upwork - each with rate band, pick-when, and watch-out. - A 2x2 grid of region cards. Onshore US/EU: $130K-$210K+/yr, 30-60 days, pick for regulated industry or board-mandated US team, watch for low accept rate and worst cost-to-output. Nearshore LATAM, tagged Default 2026: $45-$100/hr ($90K-$200K/yr annualized), 2-5 days, pick for real-time overlap, watch for rates compressed in top metros. Tier-2 India: $15-$70/hr ($30K-$140K/yr annualized), 1-5 days, pick for backend-heavy async-OK work in Jaipur, Kochi, Indore, or Coimbatore, watch for no 9am Pacific standups and async PR culture. Mass-market Upwork: $35-$120/hr project-based, 1-3 days, pick for a one-off landing page, logo, or scraper, watch that it is not for backend, payments, or auth. A legend below explains the four border colors and that green text marks the pay rate. + + Where to hire in 2026: four region cards - Onshore US/EU, Nearshore LATAM, Tier-2 India, Mass-market Upwork - each with a rate band, a pick-when, and a watch-out. + A two-by-two grid of region cards, the pay rate in green. Onshore US/EU, ruby border for highest cost: $130-210K+ a year, 30-60 days; pick for a regulated industry or a board-mandated US team; watch for a low accept rate and the worst cost-to-output. Nearshore LATAM, neutral border and a Default 2026 badge: $45-100 an hour, roughly $90-200K a year annualized, 2-5 days; pick for real-time overlap on pairing, calls and standups; watch that rates compress in the top metros. Tier-2 India, purple border for the async alternative: $15-70 an hour, roughly $30-140K a year, 1-5 days; pick for backend-heavy async-OK work in Jaipur, Kochi, Indore or Coimbatore; watch for no 9am Pacific standups. Mass-market Upwork, amber border for heaviest watch-outs: $35-120 an hour project-based, 1-3 days; pick for a one-off landing page, logo or scraper; watch that it is not for backend, payments or auth. A legend maps the four border colors and notes green marks the pay rate. - - Where to hire in 2026 - 4 regions - rate band, pick-when, watch-out + + - - - - Onshore (US / EU) - $130K-$210K+/yr - 30-60 days - Pick: regulated industry or board-mandated - US team - Watch: low accept rate, worst cost-to-output + Where to hire in 2026 + Four regions - rate band, pick-when, watch-out + + + + + Onshore (US / EU) + $130-210K+/yr - 30-60 days + Pick: regulated or board- + mandated US team + Watch: low accept, worst cost - - - - - Default 2026 - Nearshore (LATAM) - $45-$100/hr ($90K-$200K/yr) - 2-5 days - Pick: real-time overlap for pairing, - customer calls, standups - Watch: rates compress in top metros - - screen English fluency + + + + + Default 2026 + Nearshore (LATAM) + $45-100/hr ($90-200K/yr) - 2-5d + Pick: real-time overlap for + pairing, calls, standups + Watch: rates compress in metros - - - - Tier-2 India - $15-$70/hr ($30K-$140K/yr) - 1-5 days - Pick: backend-heavy, async OK - Jaipur, - Kochi, Indore, Coimbatore (not Bangalore) - Watch: no 9am Pacific standups - async - PR culture + + + + Tier-2 India + $15-70/hr ($30-140K/yr) - 1-5d + Pick: backend-heavy, async OK - + Jaipur, Kochi, Indore, Coimbatore + Watch: no 9am Pacific standups - - - - Mass-market (Upwork) - $35-$120/hr project-based - 1-3 days - Pick: one-off landing page, logo, or - scraper - Watch: not for backend, payments, or auth + + + + Mass-market (Upwork) + $35-120/hr project-based - 1-3d + Pick: a one-off landing page, + logo, or scraper + Watch: not backend/payments/auth - - - Red - highest cost, most caution - - - Neutral - recommended default - - - Purple - alt async path - - - Amber - heaviest watch-outs + + + Ruby: top cost + + Neutral: default + + Purple: async alt + + Amber: caution - Green text = the pay rate + + Basis: 2026 market rates - green marks the pay rate; annual figures are annualized 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 92e4c2dc5..67d34aa1f 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 @@ -12,7 +12,7 @@ 1. **Item 16 — Landing full-migration to the shuffle2 reference. ✅ DONE, MERGED (PR #444, squash `902686f3`, 2026-08-12).** Paul approved the render + flagged `bin/check-landing-parity` as redundant → removed (YAGNI). Design panel (conversion/taste/UX) decided Fork A = Option 2 + embedded CTA (dark NOT-cover, endcap merged into the dark base, no light sliver), Fork B = relocate all 4 off-reference sections, section reorder to reference order. Shipped T1-T6 (relocate 4 sections + 5 anchor repoints, reorder, gradient H1, 3-col mistakes, hero stat cells, dark band + merged endcap + 4 dead-selector cleanup, de-farmed chapter links). Linux baselines re-recorded via CI `update-baselines` (40-file env-drift re-sync incl. the intended `desktop/course/landing`) and rode the merge. Result render: `40-49-review/40.32-item16-result-full.jpeg`. Both reviewer agents failed on Fable quota → all blocking checks self-run with grep evidence. **Landing is live.** -2. **Item 18 — Under-floor SVGs → O2 flat-vector. RUNS NEXT, IN PROGRESS** (branch `course-svg-floor-item18`). Floor burn-down: 46 → SW-1 (5 walkthroughs) → 41 → **SW-2 (11 reference + hire-track-map, 2026-08-12) → 29**. **Remaining: SW-3 + SW-4 ≈ 29 SVGs** across continuation/lesson/global pages (outreach-sequence, friday-demo, five-tech-words, pivot-or-persevere, operating-kit, hiring/global, etc. — run `bin/check-svg-floor` for the live list). Executors dispatched on **Opus** (Fable quota exhausted — see [[feedback-agent-fallbacks-fable-and-hugo-expert]]). Spec = `.okf/design/house-visual-spec.md` "v3 exhibit spec" (W=720, basis rung ≥17px → ≥9.21px@390); template = the already-PASS FLAT SVGs. Gate per batch: `bin/check-svg-floor` + rendered review (SVGs are ``, not pixel-tested). When floor hits 0: flip `check-svg-floor` to blocking (`SVG_FLOOR_BLOCK=1`) + one PR. +2. **Item 18 — Course SVG corpus → O2 flat-vector. ✅ DONE, PR #445 OPEN** (branch `course-svg-floor-item18`). Floor burn-down **46 → 0** across 4 sub-waves (SW-1 5 walkthroughs, SW-2 11 reference+hire-track, SW-3 16 workflow/template, SW-4 13 hiring/sales/ownership); `bin/check-svg-floor` reports all 80 SVGs clear the 9px@390 floor. **Gate flipped to BLOCKING**: `bin/hugo-build` runs `check-svg-floor` with `SVG_FLOOR_BLOCK=1` and fails on any regression. Executors ran on Opus (Fable exhausted — [[feedback-agent-fallbacks-fable-and-hugo-expert]]); two main-checkout write-leaks caught + reverted. Gates: hugo-build green (8 validators + blocking floor), rendered review on 5 SVGs across diagram types, pixel suite N/A (masks ``). Rebased clean onto master (item16). **Awaiting: Paul review + merge of #445.** 3. **Item 13 — W4: V3-B wiring + media P1 (post-Aug-14).** New course-single.css + single.html, walkthrough visual hooks, 1.2/1.3/1.5 mid-body visuals, 5.7 mermaid horizontal, TL;DR accent. Carries the W2 input: responsive-table treatment (`overflow-x:auto` containers) fixing the 390px overflow on the two dense reference pages. Full visual pair at PR prep. Archive @L295.