Agency (danielslater.dev) β handover log
Newest block on top. ~/dan-hub is not a git repo β biz/ is untracked; changes are just saved to disk, never committed/pushed.
β Market-scan debrief β 3 pending items answered + six findings prioritised (2026-07-26) β READ THIS FIRST
What this session was: a discussion/debrief, no code or files built. Resolved the three items left βΈοΈ PENDING in the 2026-07-24 firecrawl block below, and re-discussed that scan's six TL;DR findings to a prioritisation. Then Daniel closed the session. (Separate session/topic from the Lychee block directly below β don't conflate.)
The 3 pending items β now ANSWERED (don't re-ask):
- "What are the Meta changes?" β Two dated shifts this quarter (from
2026-07-17-whatsapp-sa.md): (a) Oct 1 2026 β Meta's free 24h service window dies; the bot's free-form AI replies + utility msgs go freeβmetered at ~R0.13/msg (SA), so WhatsApp unit economics compress hard in Oct and today's competitor/blog prices all assume the free regime. (b) Aug 1 2026 β Meta bills its own native "Business Agent" ($2/1M tok β 4β5c/msg), a click-to-enable booking/FAQ bot that disintermediates hand-built bots β but ~5β10Γ pricier than a self-built cheap-LLM bot, so DIY still wins if the pitch names why custom beats native (real calendar/PM write-back, payment choice, CRM push, POPIA). Plus: Meta's Jan-2026 AI policy bans "ask-me-anything" bots, blesses narrow booking/support bots (your use case is protected).- "Did we make any price changes?" β No. Scan validated every Β§4 anchor; only additive edits (dated validation note in PRICING.md Β§4 + PROSPECTS rows). Β§5/Β§5b/Β§6 untouched.
- "Talk about the six points again" β done; prioritisation below.
Six findings β recommended priority (scan Β§F now annotated to match):
- Act first (my ranking): #1 β #3 β #2.
- #1 BizAI (
bizai.co.za, Claude-powered platform bundling a free website R1,850+): needs a positioning answer, not a price cut β bespoke + WhatsApp-native + real calendar write-back + no CRM lock-in vs their template landing page. Draft one crisp "why us vs a platform module" paragraph.- #3 Free automated audit β cheapest/highest-leverage win: Kea Logic's "free audit" is only a
mailto:; a Signal-Audit-lite (free β funnels the paid R3,500 Signal Audit) leapfrogs the closest mirror competitor. Resolves the open PROSPECTS.md Q.- #2 Re-cost the R1,800 WhatsApp product β human answering starts R790/mo not R6k, so drop "cheaper than a receptionist"; lead with after-hours capture / no-show reduction / WhatsApp-native / booking write-back β and re-check unit economics against the post-Oct Meta regime before quoting hard.
- Lower urgency: #4 (prices held β nothing to do), #5 (Navitas = partner; bake "keep your Navitas/Bookem, we embed it" into Β§5b pitch), #6 (Jake/Actually Africa = warm relationship + tiny-agent collab, NOT a Repaint).
Status of the six: still open decisions β Daniel has not yet chosen to build any of them; #1/#3/#2 is a recommended order awaiting his go. Nothing moved to DECISIONS.md.
Persistent state unchanged (Firecrawl still LIVE on
zulzi-gpu:3102; stop withcd ~/firecrawl && docker compose down). Pointers:biz/research/2026-07-24-firecrawl-market-scan.mdΒ§F (annotated this session),biz/PRICING.mdΒ§4,biz/PROSPECTS.md,biz/research/2026-07-17-whatsapp-sa.md(Meta detail).
π Lychee.com / Henrik Bork β partnership-revival research (2026-07-26) β READ THIS FIRST
Goal: Daniel was looking at buying the domain
lychee.com; WHOIS dig surfaced a real dormant hotel-tech business behind it. Session = find who owns it β research the business + founder β decide whether to pitch a partnership (Daniel builds/operates, founder opens doors) β draft the outreach. Framing evolved from "buy domain" β "partner play, using Daniel's Nsuna experience as the value."β οΈ WIP / persistent state (on disk, not git β don't lose):
- The deliverable:
biz/research/2026-07-24-lychee-henrik-bork.mdβ full research + market thesis + Daniel/Henrik fit + the ready-to-send outreach message (Β§6) + open questions (Β§7). This is the only durable copy of the whole session's work. Dated 07-24 (research date) though wrapped 07-26.- Used self-hosted Firecrawl on
zulzi:3102(already live from the prior session's block β do NOT assume it's local; it's on zulzi, port 3102, prebuilt ghcr images) to scrape Wayback pages that WebFetch is blocked from. zulzi had ~28 GB free RAM, plenty of headroom; I left Firecrawl running.What shipped (findings): Lychee = a 2011 Beijing/HK curated luxury-hotel OTA β but its real moat was premium-card distribution (exclusive UnionPay white-label
23M cardholders + MasterCard "Dream Hotel Collection" via 22 banks/8M + Air China). Dead website since ~Jan 2023 but domain kept alive (Google Workspace email, renewed to 2027) = owner holding a dormant asset. Founder Henrik Bork (63, ex-SZ China correspondent) now runs consultancy Asia Waypoint, very active publicly but only on China tech/geopolitics β zero travel signal; appetite to operate a revival likely LOW β pitch him as advisor/door-opener, not co-founder. Market read: standalone curated luxury OTA is a dead model (Mr&Mrs SmithβHyatt, TabletβMichelin, Design HotelsβMarriott, KiwiβVisa engine) BUT Chinese HNW travel demand is strong β revival credible ONLY as "curation-as-a-service / VIP-benefits engine" (Thesis A) reviving Lychee's card/airline co-brand DNA. That's where Daniel's Nsuna build/operate experience is the complement.Open decisions awaiting Daniel: (1) send the outreach? (2) tune the two flagged bits first β his Nsuna role wording + one proof point; keep-or-drop the "domain-hunting" opener; (3) whether to also pursue the domain-buy fallback in parallel (broker) or purely the partnership.
Gotchas: WebFetch is blocked from
web.archive.orgβ use Firecrawl (ssh zulzi-gpu 'curl β¦ localhost:3102/v1/scrape', use Waybackβ¦/<ts>id_/β¦raw format for clean content +timeoutparam, pages are heavy). The Jan-2023 Lychee snapshot is already a dead/broken capture β operating-era content is in 2012β2015 snapshots. WHOIS is privacy-masked (Alibaba Cloud) β owner not publicly named. "Lychee connects students with Chinese employers" = aggregator mix-up with a DIFFERENT company, not a pivot.Next actions: (1) Daniel reviews
biz/research/2026-07-24-lychee-henrik-bork.mdΒ§6 message + decides send/tune; (2) optional: scrape the archived MasterCard (/about/MC_list.jsp) + Air China (/airchina.jsp) pages via Firecrawl for named specifics to drop into the call; (3) optional: add aHenrik Bork / Lycheepartner row toPROSPECTS.md(offered, not yet done).Pointers:
biz/research/2026-07-24-lychee-henrik-bork.md(the deliverable, Β§6 = the message) Β· prior handover block below (Firecrawl-on-zulzi setup) Β· memoryfirecrawl-selfhost-zulzi.
π₯ Self-hosted Firecrawl + live competitor/pricing scan (2026-07-24) β READ THIS FIRST
Goal: stand up self-hosted Firecrawl (Docker) and do a deeper competitor/pricing scan across 4 verticals + Daniel's friend "Jake" β replacing the US/UK proxy figures in the July research with live SA competitor data. (Daniel's ask; used the
competitor-profilingskill's method.)β οΈ WIP / persistent state (not in any git repo β don't lose):
- Firecrawl is LIVE and left RUNNING on
zulzi-gpuathttp://localhost:3102(~/firecrawl, prebuiltghcr.io/firecrawl/*images; its redis/rabbitmq/postgres are internal β no clash with the runninglocal-devNsuna stack). Batch driver + targets atzulzi:~/fc-scrape/(fc_driver.py,scrape-targets.txt). Stop withcd ~/firecrawl && docker compose down.- Freed ~15 GB on zulzi (disk was 100% full) β ONLY regenerable dirs in the danielslater profile (
~/.cache,~/go/pkg/mod,node_modules,.venv,build/,sr-e2e/run, docker cache). Left gpuadmin/zadmin, all source/data, surf-sim/out, and the local-dev stack untouched. Full log:zulzi:~/NOTES-daniel-claude-2026-07-24.md.- New/edited
biz/files (on disk, not git): createdbiz/research/2026-07-24-firecrawl-market-scan.md(the deliverable) +biz/research/2026-07-24-firecrawl-raw/(30 pages, md+json). Editedbiz/PROSPECTS.md(Kea correction + Jake row + market-map + free-audit open-Q + date) andbiz/PRICING.md(Β§4 additive validation note).- Memories already saved this session (before handover):
firecrawl-selfhost-zulzi,firecrawl-market-scan-2026-07-24(+ MEMORY.md index lines).What shipped: 29/30 competitor pages scraped live. No pricing NUMBERS were changed β the scan validated every PRICING.md Β§4 anchor; I only ADDED a dated note + PROSPECTS rows/corrections.
βΈοΈ PENDING (mid-conversation when Daniel called /handover) β answer these first next session:
- "What are the Meta changes?" β from
biz/research/2026-07-17-whatsapp-sa.mdlines 63β66, 82β84: (a) Oct 1 2026 β Meta removes the free 24-hour service window; utility + free-form service (AI-reply) messages go from free β metered at the utility/auth rate (~R0.13/msg SA), so today's free-window economics compress. (b) Aug 1 2026 β Meta's own native "Meta Business Agent" starts billing ($2/1M tokens β 4-5c/msg all-in) β a click-to-enable booking/FAQ agent that disintermediates hand-built bots (but ~5-10Γ pricier than a self-built cheap-LLM bot β DIY is better economics if Daniel can articulate why custom wins: real calendar/PM write-back, payment choice, CRM push, POPIA). Also: Meta's AI policy (in force since Jan 2026) bans general "ask-me-anything" bots but allows/encourages narrow booking/support bots.- "Did we make any price changes?" β No. Answer: scan validated the existing prices; the only edits were an additive
> Live-scan validation 2026-07-24note in PRICING.md Β§4 + PROSPECTS rows. Nothing in Β§5/Β§5b/Β§6 touched.- Daniel said: "we will talk about your final six points again" β i.e. re-discuss the TL;DR six findings in the scan doc (esp. #1 BizAI bundling free sites, #2 re-cost R1,800 vs R790 human reception, #3 Kea's manual audit β free-audit funnel, #6 Jake = relationship not rebuild).
Gotchas: zulzi disk chronically near-full (ext4 5% root reservation makes non-root
availlag freed space β free MORE than you think); host port 3002 taken on zulzi (β firecrawl on 3102);avily.co.za500'd (server-side, skipped); BrighterVision main tiers are JS-gated (didn't capture $ cleanly, only add-ons $14.99β24.99); TherapyRoute rendered prices in KES (geo-detect) β treat as ~R120 equiv.Next actions: (1) answer the 3 pending items above; (2) re-discuss the six findings; (3) optional follow-up scans (deep-profile BizAI platform pages; ed-psych rebuild cluster) β firecrawl is a
python3 fc_driver.pyaway.Pointers:
biz/research/2026-07-24-firecrawl-market-scan.md(Β§F = open decisions) Β·biz/research/2026-07-24-firecrawl-raw/Β·biz/research/2026-07-17-whatsapp-sa.md(Meta detail) Β·biz/PRICING.mdΒ§4 Β·biz/PROSPECTS.mdΒ·zulzi:~/NOTES-daniel-claude-2026-07-24.mdΒ· memoriesfirecrawl-selfhost-zulzi,firecrawl-market-scan-2026-07-24,reference-scan-2026-07-20,therapist-pricing-research.
π Client-progress views mockup (swimlanes Β· gantt Β· critical path) (2026-07-24) β READ THIS FIRST
Goal: design the Timeline / objectives panel flagged in
DASHBOARD.mdβ how to see every client's progress at a glance (swimlanes / gantt / critical-path), as a clickable Artifact mockup on realbiz/data.β οΈ WIP (don't lose it):
biz/mockups/agency-progress-views.htmlβ the ONLY durable copy of the mockup source (built in a session scratchpad, copied here at handover;~/dan-hubnot git). Published Artifact (private, updatable from any session by passing this URL):https://claude.ai/code/artifact/767f2c10-5f85-48ec-a087-b43d8254265c.β NEXT-SESSION replan DONE (2026-07-24, later session): duplicated + redone as
biz/mockups/agency-progress-views-v2-skills.html(only durable copy, same dir; v1 file + artifact untouched) β NEW Artifacthttps://claude.ai/code/artifact/e9d3cca6-c66a-425c-8aeb-4abc528bdef8(favicon π§²). What changed with the 47 skills in play (repo has 47, not 46): A gains aball Β· agenttag (Physios + ed-psych lanes un-gate; Build header cap-1 β "parallel"); B adds two outbound lanes (agent-drafted, Daniel-sent β new "sends" ink in the queue), a danielslater.dev own-funnel lane (weekly content/SEO loop + free-audit feeder), and stripedloopbars post-live = grow retainer, gated on billing; C redrawn to 6 columns (+06 Β· Grow), each with a β "on the shelf" state β old gap cards become skill-backed wire-ups, same 4 ink gates (channel β contract β keys β rails) + new cards: Grow retainer SKU, referral loop; appendix adds the full 47-skill wiring map (product-marketing + marketing-loops = load-bearing),.agents/product-marketing.mdcontext docs as step 0, andmode: loopin MILESTONES.md. Awaiting Daniel's reaction to v2 (esp. the 06 Grow column + the "loops behind billing" rule). Follow-up (same session): 4 parallel agents shipped the plan'sball Β· agentitems β.agents/product-marketing.md+biz/marketing/context/(step-0 context docs, incl. a contradiction audit: DECISIONS 17-Jul R28k model vs PRICING.md proposal, WA R1,800 vs R450),biz/outbound/physioscpt/(SSL defect re-verified live 24 Jul β 1 stale xneelo A record, 4/5 visits broken, opener has a shelf life: re-verify morning of send),biz/outbound/ed-psych/(5 dossiers re-verified β Wessels' old openers died, new = title "Index" + form relaying via mobirise.com; first send = Wessels Tue; pre-flight = ask Nadia's blessing to show the demo),biz/sales/(Nadia scope one-pager + Dave pitch pack; β οΈ Surfaris pricing frame unresolved: process/02 R28k vs PRICING Β§5 R7.5k β pick before quoting Dave). ALL drafts, nothing sent β sends await Daniel's signature + the wa#/inbox gate.What shipped (in the mockup, not in the dashboard site): 4 tabs β
- View A Β· Swimlanes β one lane per engagement on a shared 8-stage ladder (Leadββ¦βRecurring); chip = current stage, tag = whose move it is. Daniel: "A looks pretty good." Derivable today with zero new data (PROSPECTS.md stage + clients/README + next-action cells).
- View B Β· Gantt "loops, not builds" β redesigned to Daniel's principles: agent builds are parallel slivers (no build-slot cap β Claude Code makes builds days-fast); the chart area is waiting (client feedback loops, third-party clocks like Meta WA verify 2β14d β start at signature); un-automatables (DNS, Google Business Profile, CMS auth, showing work) are ink blocks mirrored into a top "hands-on queue" lane (name provisional β alternates offered: founder queue / keys & calls / human lane).
- View C Β· Critical path = the AGENCY machine, not clients β 5 pipeline stages (Capture β Preview factory β Close β Launch β Operate & bill), β-lists of automation running today vs gap-cards; heavy ink = 4 gates: owned enquiry channel β contract+rights template β launch-keys playbook β billing rails. Preview factory β no gaps (that's the point); Close stays human-forever.
- Appendix β data model:
clients/<x>/MILESTONES.mdwith amodecolumn (auto | hands-on | waiting); hands-on queue derives asmode=hands-onfiltered across clients. Recommendation: build A now, B next, C hand-curated (mermaid in ROADMAP.md).Blockers / open decisions awaiting Daniel:
- Sign off View A β build as client-panel v2 on
dashboard.danielslater.dev(see 2026-07-22 block: dashboard is hardcoded Svelte, NOT markdown-parsed).- B/C reaction after the redesign (B was redesigned to his spoken principles this session, unreviewed).
- Name for the needs-Daniel lane.
NEXT SESSION (Daniel's explicit instruction): duplicate the artifact and redo the whole plan from scratch assuming full use of the skills in
~/dan-hub/marketingskills(clone of coreyhaines31/marketingskills β 46 skills underskills/: cold-email, prospecting, lead-magnets, marketing-plan, marketing-loops, offers, pricing, cro, seo-audit, programmatic-seo, ai-seo, directory-submissions, launch, referrals, emails, social, analytics, competitor-profiling, customer-research, copywriting, free-tools, β¦). Reuse this session's work where it makes sense β the mockup structure/views stand, but the content (esp. View C's Capture column + the gaps map, and B's loop assumptions) changes when 46 marketing capabilities join "running today". Publish as a NEW artifact (duplicate = new file path β new URL), keep the original for comparison.Gotchas:
- Artifact host wraps the file (no doctype/head/body needed); CSP blocks all external fetches; favicon param must stay
πon redeploys of the ORIGINAL (a duplicate gets its own).- Categorical palettes were validated with the dataviz skill validator (light
#5c66c4,#078a78,#c07a18,#2f7fc1,#d95f43,#a24f95on white; dark#7b84e8,#2aa595,#c2882c,#4a8fd0,#d4674b,#c06ad0on#171b21) β reuse, don't re-derive; client colours are entity-fixed (nadia coral, mozguide teal, surfaris ochre, berlein indigo, aerias blue, bree plum).- Screenshot loop: no playwright in scratch β import from
/Users/ds/dan-hub/claude-orchestrator/node_modules/playwright/index.mjs,channel:"chrome", wrap body in a doctype shell first (script pattern preserved atbiz/mockups/β¦ no β it lived in scratchpad; trivial to rewrite, pattern documented here).- All future dates in B are planning fictions (targets), fine under nothing-invented as long as they're marked
plan; client-facing dates never leave the private view.Pointers:
biz/DASHBOARD.md(panel spec + exposure note: CF Access before money data),biz/PROSPECTS.md,biz/clients/README.md,biz/process/02-delivery-recipe.md(stage ladder the swimlanes mirror),biz/PAYMENTS.md(unsigned rights boxes β View C gap),marketingskills/README.md+skills/.
π Agency dashboard + browser-comment system + process playbooks (2026-07-22) β READ THIS FIRST
Goal: turn the settled strategy into operational process docs, then build a markdown-ish dashboard and a way to comment on any doc/dashboard from the browser and have Claude sweep + apply the comments.
β οΈ CONFLICT with the pricing-pivot block below (read both). The process playbooks + the dashboard's pipeline/money were built on the R28k Repaint / 8-SKU model in
BUSINESS-MODEL.md. The π° block below records Daniel pivoting away from that to a low-tier volume-subscription model (R2,500 + R250/mo). Sobiz/process/03-pricing-payments-discounts.md,biz/PAYMENTS.md, and the dashboard pipeline values (~R28k) are now partly stale β reconcile them once the pivot is logged inDECISIONS.md. Not done here.β οΈ UNCOMMITTED / UNTRACKED WIP (don't lose it):
~/dan-hub/dashboard-site/β NEW, not a git repo, all on disk. The whole dashboard (SvelteKitadapter-static). Data for the new panels:src/lib/dashboard.ts. Page:src/routes/+page.svelte. Widget:src/lib/CommentWidget.svelte.~/dan-hub/dsdev-comments/β NEW, not a git repo, all on disk. The comments Worker (src/index.js+wrangler.toml). Deployed, but source only lives here.~/dan-hub/docs-site/β git repo (local-only,master), uncommitted:src/lib/CommentWidget.svelte(new),src/routes/+layout.svelte,src/app.css,svelte.config.js, + generatedcontent/.~/dan-hub/daniel-dev-skills/comment-sweep/β NEW skill (SKILL.md+comments.mjs), untracked in a repo that HAS a remote (dan-slater/daniel-dev-skills) β pushable.biz/(not git):process/(01β05 + README),DASHBOARD.md,PAYMENTS.md,TRACKING-ROADMAP.md,clients/README.md; edits toDECISIONS.md(stage note),ROADMAP.md(strategic objectives).What shipped (all LIVE, noindexed):
- Process playbooks β
biz/process/(6-agent workflow: acquisition Β· delivery-recipe Β· pricing Β· recurring Β· services + a reconcile/index README). On docs.danielslater.dev.- Browser comment β sweep loop. Worker
dsdev-commentsatcomments.danielslater.dev+ KV namespaceCOMMENTS(ec72e5ccef41432197591a534c091891); origin-locked to docs+dashboard.CommentWidget.svelte(π¬ select text β "Comment on this" β passage stays highlighted via CSS Custom Highlight API β stores{path,quote,section,context,text}) on both sites.comment-sweepskill:node comments.mjs list/resolve <key>, maps reader route β~/dan-hub<path>.md, apply β redeploy. Verified end-to-end. Already swept 5 real comments this session.- Dashboard β CF Pages project
danielslater-dashboard, LIVE at dashboard.danielslater.dev (cert took ~27 min). Panels: KPIs Β· Awaiting-Daniel (7 decisions + 7 unblockers, seeded from realCOMMANDS.mditems) Β· Pipeline Β· Clients Β· Timeline (filter chips: All/Global/per-client) Β· Money Β· Requests Β· Tracking.- New biz docs + edits: DASHBOARD/PAYMENTS/TRACKING-ROADMAP/clients-README; DECISIONS stage-note ("keep the log light, it's early"); ROADMAP strategic objectives; PAYMENTS founding-case-studies + equity (Aerias = direct + equity, NOT via agency);
handleMissingId:'warn'fix in docs-site.Open decisions awaiting Daniel:
- Reconcile the pricing pivot into process/03 + PAYMENTS + dashboard (the big one; gated on logging the pivot in DECISIONS.md).
- CF Access on the dashboard before real money data lands (which emails?). It's noindex-only right now.
- The ~21 Proposed decisions in
biz/process/README.md(+ new: equity-as-payment, foundingβsubscription) β ratify into DECISIONS.md.- Commit/push? (comment-sweep β daniel-dev-skills remote; git-init dashboard-site + dsdev-comments?)
Gotchas:
- CF custom-domain cert: "active" in the API β actually serving β dashboard took ~27 min. Be patient; verify on the
*.pages.devURL meanwhile.- Sandbox curl β CF custom domains returns
000(IPv6/edge). Verify via<project>.pages.dev,curl -4, or WebFetch β the sites are fine.- WAF blocks header-less
curlPOSTs tocomments.danielslater.dev(error 1104); real browsers fine β test POSTs with a browser User-Agent.- KV
list()//countis eventually-consistent (lags); the sweep reads via the CF API keys endpoint (immediate).- Dashboard content =
+page.svelte(hardcoded panels) +src/lib/dashboard.ts(timeline/awaiting). It is NOT parsed frombiz/markdown despite the "backed by markdown" framing β edit source + redeploy (or sweep).- Dashboard pipeline/clients are already stale vs
PROSPECTS.md(missing nadia, african-surfaris, the ed-psych cluster added by parallel sessions).PROSPECTS.mdchanges under you β re-read.- All CF deploys: Global-API-Key env from
~/.config/cloudflare/{email,api-token}+ account084af6c166c202c97486fc413d55ed36; both Pages projects are direct-upload (push β deploy) β wrangler one-liners in each repo's README / docs-site README.Next actions (ordered):
node ~/dan-hub/daniel-dev-skills/comment-sweep/comments.mjs listβ clear any new comments first.- Once Daniel greenlights the pivot: reconcile pricing across process/03 + PAYMENTS + dashboard
+page.svelte.- Refresh dashboard pipeline/clients from current
PROSPECTS.md.- Add CF Access to the dashboard (+ emails) before real money data.
- Push comment-sweep to the skills remote; decide git for dashboard-site/dsdev-comments.
Pointers:
dashboard-site/Β·dsdev-comments/Β·docs-site/Β·biz/process/README.mdΒ·biz/DASHBOARD.mdΒ·biz/PAYMENTS.mdΒ·biz/TRACKING-ROADMAP.mdΒ·daniel-dev-skills/comment-sweep/SKILL.mdΒ· the π° pivot block β Β· memoriesdocs-reader-reconsider,agency-operating-system.
π° Product ladder pivot + client pamphlet (2026-07-22) β READ THIS FIRST
Goal: Figure out the agency's packages/product ladder, then produce an emailable client services & pricing pamphlet (styled like the Aerias brand pamphlet). Plus: log a batch of new prospects; clone + plan the
marketingskillsrepo.β οΈ UNCOMMITTED WIP (
~/dan-hubβ not git, so everything here is just on disk):
biz/pamphlet/β the live deliverable.index.html(5-page A4 pamphlet, v1) +render.mjs+page-1..5.png. Do NOT blow it away. All prices in it are placeholders awaiting Daniel. No PDF exported yet (render.mjs now emits one on next run).biz/PROSPECTS.mdβ appended several rows this session (see below). β οΈ This file was also edited externally mid-session (anadiaoedpsych.co.zahottest-inbound row + africansurfaris rewording appeared). Re-read before editing β it changes under you.biz/research/2026-07-21-*.mdβ 4 new research notes (african-surfaris, kliptown-youth-program, linenclub, therapist-scrape).What shipped (this session):
- New product-ladder DIRECTION (Daniel's pivot, big): he rejected the researched R28k Repaint model (
biz/BUSINESS-MODEL.md) as wrong for his real clients. New model = low-tier-led, volume subscription: entry "fix + host" at R2,500 once-off + R250/mo, aim for 100β200 low-maintenance sites β MRR base, then upsell brand/copy/SEO/tracking/marketing. Reframed the 8-SKU ladder into a 3-rung value ladder (AuditβBuildβRecurring) but Daniel then re-cut it cheaper still. NOT yet logged in DECISIONS.md (awaiting his greenlight).- The pamphlet (
biz/pamphlet/index.html): 5 pages β Cover ("Your website should be making you money") Β· The approach Β· Packages (Refresh/Rebuild/Store&custom) Β· Grow (add-on menu) Β· Why + Let's talk. On DS brand (Bricolage/Inter/Spline Mono; sand#ede8dc, ink#122a33, sea-deep#0b4586, teal, Fynbos-green#505d46kickers). Rendered + sent to Daniel.marketingskillsrepo cloned to~/dan-hub/marketingskills(HEAD6726476). Decision: reference-only (NO install, NO plugin). 47 marketing skills + tools registry; the pamphlet's add-on tiers map onto its skills (copywriting, seo-audit, schema, analytics, product-marketing).- Prospects logged (all with research notes, all in
biz/PROSPECTS.md):
- africansurfaris.com β warm outbound lead, owner Dave Renaud (Daniel knows him). Wix, mailto-only. Multi-brand upside: Dave also owns
shakasurfcamps.com(dated WP = 2nd Repaint candidate),howtosurfbetter.com(decent WP, his enquiry hub),surfcoachinternational.com(unverified/possibly defunct). Top of prospects table.- Kliptown Youth Program β via aunt Ingrid Chadwick. Healthy Squarespace + NGO = no Repaint pain β logged as partner/network vector, not a prospect.
- linenclub.co.za (owner Gary) β Shopify, healthy, owner built it himself & is happy β PARKED, low conviction, bottom of table.
- Ed-psych Repaint cluster β ~40 SA therapist sites scraped (3 parallel agents, Psychology Today + Google). Logged the 5 educational-psychologist leads (Wessels, De Bruin, Miller, Green, van Niekerk) as ONE grouped row = the repeatable nadia-template play.
Open decisions awaiting Daniel:
- Confirm/correct all pamphlet prices β only Refresh (R2,500+R250/mo) came from him; Rebuild (R7,500+R350/mo) + all add-on prices (brand R3,500, copy R1,500, SEO R1,500, tracking R900, WhatsApp R350/mo, marketing R900/mo) were inferred.
- WhatsApp number β pamphlet has a gold
[ number ]placeholder; email-primary (daniel@danielslater.dev) until he supplies one.- Paid Signal Audit (R3,500) β dropped in favour of the free "send me your site" look; confirm.
- Log the pricing pivot in
DECISIONS.md? (would resolve the contradiction with BUSINESS-MODEL.md).- Ben Sheffer lookup β UNRESOLVED; ambiguous name, awaiting a disambiguator (LinkedIn / city / what he does).
- His last reply to me was pending: I asked "change prices or design/wording first?"
Gotchas:
~/dan-hubnot git β just save; never commit/pushbiz/.PROSPECTS.mdedits arrive externally/concurrently β re-read before each edit.- Pamphlet fonts load from Google Fonts CDN β rendering needs network; the PNG/PDF bakes them in.
- Playwright only resolves from
aerias-demo/node_modulesβrender.mjsimports it by absolute path. Run:node /Users/ds/dan-hub/biz/pamphlet/render.mjs.surfcoachinternational.comunreachable from sandbox (DNS β sentinel7.7.7.7) β verify manually.marketingskills/CLAUDE.mdtells agents to fetch itsVERSIONS.mdfrom GitHub once/session (a quiet background net call).Next actions (ordered):
- Get Daniel's price confirmations + WhatsApp number β edit
biz/pamphlet/index.htmlβ re-runrender.mjs(emits PNGs and the emailable PDF).- Send the print-ready PDF.
- (If greenlit) log the pricing pivot in
DECISIONS.md.- Resolve Ben Sheffer once Daniel gives a pointer.
- Optional polish: page-2 right-column gap, page-4 bottom whitespace.
Pointers:
biz/pamphlet/index.htmlΒ·biz/PROSPECTS.mdΒ·biz/BUSINESS-MODEL.md(the R28k model this pivots away from) Β·biz/DECISIONS.mdΒ·BRAND-STRATEGY.md(brand tokens/voice) Β·biz/research/2026-07-21-*.mdΒ· Aerias pamphlet reference:~/aerias/design/pamphlet/Β· memories:danielslater-dev-business-model,danielslater-dev-brand-strategy,agency-operating-system,reference-scan-2026-07-20.