import { useState, useEffect, useRef, useCallback, useMemo } from 'react'; // ============================================================================ // INLINE SVG ICONS — independent of lucide-react package. // ============================================================================ const ChevronDown = ({ size = 16, className = '' }) => ( ); const Check = ({ size = 12, strokeWidth = 3, className = '' }) => ( ); // ============================================================================ // CONTENT DATA — extracted from SKUs.md // ============================================================================ const META = { title: 'Sublayer GTM Workbook', subtitle: 'A studio notebook for the Agent Operator plan', vol: 'Vol. 01', date: 'May 2026', }; const KEY_NUMBERS = [ { value: '$30K', unit: '/month', label: 'Monthly burn' }, { value: '3', unit: 'months', label: 'Runway' }, { value: '$45K', unit: 'MRR', label: 'Day-90 target' }, { value: '2', unit: '× $15K', label: 'Retainers to break-even' }, ]; const SKUS = [ { id: 'diagnostic', num: 'i', name: 'Agent Operator Diagnostic', short: 'Paid front door.', price: '$3,000', priceUnit: 'one-time', timeline: '5 business days', capacity: '5–8 / month', buyer: 'Founder · CTO · COO · product / ops leader', purpose: 'Paid entry point', promise: 'We map how your team is currently using AI agents, identify the highest-leverage workflows and failure patterns, and give you a practical 30-day plan.', deliverables: [ '60-minute leadership intake', '2–4 practitioner interviews or workflow walkthroughs', 'Review of existing prompts, workflows, agent usage, automations, docs, or internal tools', 'Workflow opportunity map', 'Failure-pattern map', 'Agent Operator maturity score', '30-day adoption plan', 'Recommendation: do nothing, workshop, 90-day program, or internal hire', ], fit: [ 'Teams experimenting but not organized', 'Founders asking "what should we do with agents?"', 'Product / ops / design teams with messy internal AI usage', 'Engineering teams not yet ready for telemetry', ], salesLine: 'You do not need a six-month AI transformation plan. You need to know where agents are already helping, where they are creating chaos, and what the next 30 days of practice should look like.', }, { id: 'baseline', num: 'ii', name: 'Agentic Workflow Baseline', short: 'The premium diagnostic.', price: '$7,500–$10,000', priceUnit: 'one-time', timeline: '1–2 weeks', capacity: '2–4 / month', buyer: 'Teams already using agents heavily', purpose: 'Deeper diagnostic — artifacts, sessions, workflow review', promise: 'We establish a baseline of how agentic work is actually happening, then identify what would make it safer, faster, more repeatable, and more valuable.', deliverables: [ 'Session / workflow / artifact review', 'Baseline metrics', 'Failure taxonomy', 'Workflow maturity rubric', 'Context / tool / data map', 'Reusable-practice opportunities', 'Team playback session', '30 / 60 / 90-day improvement plan', ], metricsEng: [ 'Completion rate', 'Rescue rate', 'Loop rate', 'Verification rate', 'Diff risk', 'Task granularity', 'Context quality', 'Session abandonment', 'Reusable artifact creation', ], metricsOps: [ 'Workflow cycle time', 'Number of handoffs', 'Manual copy/paste steps', 'Context gaps', 'Data/tool fragmentation', 'Output review burden', 'Repeatability', 'Human judgment points', 'Reusable agent workflow candidates', ], salesLine: 'Most AI adoption is vibes. This gives you a baseline.', }, { id: 'program', num: 'iii', name: '90-Day Agent Operator Program', short: 'The flagship. The path to profitability.', price: '$15,000', priceUnit: '/ month · 3-mo min', priceDetail: '$45,000 total — or $40,000 paid upfront for the full 90 days', timeline: '90 days', capacity: '3 concurrent', buyer: 'Teams that already have a CTO and want the operating practice installed', purpose: 'Operating-practice install for teams with existing technical leadership', promise: 'We install the Agent Operator function inside your team: workflows, playbooks, operating rhythms, evaluation loops, and trained internal champions.', deliverables: [ 'Weekly 90-minute working session', 'Async support channel', 'Monthly leadership readout', 'Agent Operator playbook', 'Workflow library', 'Custom agent / workflow artifacts', 'Team training', 'Before / after measurement', 'Internal champion development', '90-day roadmap for continuing without you', ], months: [ { label: 'Month 1 — Baseline', items: [ 'Map existing agent usage', 'Identify highest-leverage workflows', 'Find failure patterns', 'Create initial playbook', 'Pick 2–3 workflows to improve', ], }, { label: 'Month 2 — Intervention', items: [ 'Train team on context, delegation, verification, tool use, review', 'Build reusable templates / commands / workflows', 'Create shared rituals', 'Turn private workflows into team practice', ], }, { label: 'Month 3 — Institutionalize', items: [ 'Re-measure', 'Document playbook', 'Train internal Agent Operator champions', 'Create ongoing operating cadence', 'Identify whether they need a hire, a tool, or continued advisory', ], }, ], salesLine: 'The goal is not for me to be your AI person forever. The goal is for your team to develop the internal Agent Operator muscle.', }, { id: 'office-hours', num: 'iv', name: 'Agent Operator Office Hours', short: 'The only $3K/mo recurring SKU. Low-touch by design.', price: '$3,000', priceUnit: '/ month', timeline: 'Ongoing', capacity: 'Cap at 5 clients', buyer: 'Smaller teams · founders · alumni · warm leads', purpose: 'Lightweight recurring support', promise: 'This keeps your team current and unstuck without a full program.', deliverables: [ '2 monthly office-hour sessions', 'Async questions with response SLA', 'Monthly tool / practice briefing', 'Lightweight workflow review', 'Access to shared Agent Operator examples / templates as they emerge', ], fit: [ 'Smaller teams', 'Founders', 'Alumni of diagnostics', 'Companies not ready for the 90-day program', 'Warm leads you do not want to lose', ], salesLine: 'This keeps your team current and unstuck without a full program.', warning: 'Do not let this become custom consulting in a fake mustache.', }, { id: 'intensive', num: 'v', name: 'Team Intensive', short: 'Cash injection + conversion path.', price: '$12K remote · $25K onsite', priceUnit: 'half- or full-day', timeline: 'Half-day or full-day', capacity: 'On demand', buyer: 'Teams wanting a workshop or offsite', purpose: 'Cash injection + conversion path', promise: 'We train your team on agentic workflows using their real work, then leave behind a shared playbook and next-step plan.', deliverables: [ 'Pre-call intake', 'Custom workshop', 'Hands-on workflow exercises', 'Team playbook starter', '30-day adoption map', 'Optional conversion to 90-day program', ], salesLine: 'This is not an AI inspiration talk. Your team leaves with shared practices and reusable workflows.', }, { id: 'exec', num: 'vi', name: 'Executive Agent Strategy Advisory', short: 'Optional, low-capacity advisory.', price: '$3,000–$5,000', priceUnit: '/ month', timeline: 'Ongoing', capacity: '1–2 clients', buyer: 'Founder / exec', purpose: 'Optional, low-capacity advisory', promise: 'A monthly cadence with the founder/exec to shape strategy, prioritize bets, and translate AI experimentation into operating decisions.', deliverables: [ 'Monthly strategic working session', 'Async exec-level dialogue', 'Operating decision framing', 'Light pattern-recognition across the team', ], salesLine: 'You do not need a Chief AI Officer. You need a thinking partner with operating reps.', }, { id: 'embedded', num: 'vii', name: 'Embedded Agent Operator', short: 'Done-for-you. I become the function for 90 days.', price: '$25,000', priceUnit: '/ month · 3-mo min', priceDetail: 'Premium tier at ~$40K/month for ~3 days/week. Month-to-month after the initial 90.', timeline: '90 days, then month-to-month', capacity: '1 concurrent (max 2)', buyer: 'Founder · CTO · COO at a funded company', purpose: 'Fractional Agent Operator — done-for-you', promise: 'For 90 days I become your Agent Operator. I map your workflows, build the agentic systems your team needs, and leave you with a working playbook when I’m done — or stay embedded if it’s working.', deliverables: [ '~2 days / week embedded with the team', 'Direct workflow construction — I do the build, not just the planning', 'Live evaluation and iteration loops', 'Custom agent / workflow artifacts shipped weekly', 'Async availability between in-person days', 'Team enablement on the systems I build (so you don’t need me forever)', 'Monthly leadership readout', '90-day roadmap + handoff at end of term', ], fit: [ 'Teams that want the work done, not the training', 'Companies on a hiring freeze who still need the function', 'Founders who plan to hire an Agent Operator and want a "what does this role look like" demonstration first', 'Buyers with budget for fractional executives ($20–40K/mo range)', ], salesLine: 'You do not need a six-month training program. You need this built. I will build it. When the systems are running and your team can keep them running, I leave.', }, { id: 'channel', num: 'viii', name: 'FDE Channel Partner', short: 'Forward-deployed engineer for your agentic product.', price: '$20,000', priceUnit: '/ month retainer', priceDetail: 'Or $30–50K per scoped customer deployment, 2–4 weeks each. Retainer preferred for ongoing partners.', timeline: 'Ongoing retainer, or per-engagement', capacity: '1–2 partner relationships', buyer: 'AI tooling company · agent framework · agentic SaaS founder', purpose: 'Channel partner for tooling companies — you sell, I deploy', promise: 'You build the agentic tool. I become the FDE who actually deploys it inside your customers — ramping up on your product, shaping the workflow inside the customer team, and reporting back what works and what breaks.', deliverables: [ 'Onboarding to your product (paid ramp time)', '1–2 days / week dedicated to your customer deployments', 'Forward-deployed implementation inside customer teams', 'Joint sales support for prospects who need an FDE in the loop', 'Implementation feedback loop — what your product needs to win', 'Customer-facing playbook reflecting your product, with your branding', ], fit: [ 'Tooling companies losing deals because customers want hands-on implementation help', 'Tooling companies whose engineers are stretched thin doing customer rollouts', 'Agentic SaaS where the product is great but adoption requires workflow design', 'Companies that want a partner before they staff their own FDE function', ], salesLine: 'You built the tool. I’ll deploy it. You sell more, your customers actually adopt, and I bring back the implementation patterns that tell you what to build next.', }, { id: 'fcto', num: 'ix', name: 'Modern Fractional CTO', short: 'Fractional CTO for the new world — build with agents, leave the team operating that way.', price: '$15,000', priceUnit: '/ month · 3-mo min', priceDetail: 'Premium tier at $20–25K/month for higher-touch engagements. Equity component (0.25–1%) sometimes added for early-stage clients with cash constraints. Daily rate $1,500–2,000 for spot work.', timeline: '3-month minimum, typically 3–6 months', capacity: '2 concurrent (target — two retainers covers burn)', buyer: 'Pre-Series-A founder · non-technical CEO · early team without a CTO', purpose: 'The outbound wedge. Lead product. Agent Operator work bundled inside.', flagship: true, promise: 'I’m a fractional CTO for the new world — I help startups build fast with agents, set up the technical foundation, and train the team so they can keep operating that way after I’m gone.', deliverables: [ 'Weekly working session with the founder / CEO', 'Technical strategy and architecture decisions — designed for an agentic build', 'Hands-on implementation: building the foundation with agents, not just advising', 'Hiring help — sourcing, interviewing, leveling', 'Code review and engineering-practice guidance', 'Vendor / tool selection (especially the AI tooling stack)', 'Team training on the agentic workflow as part of the engagement', 'Documentation, playbook, and process so the team keeps operating after I step back', 'Due-diligence support for fundraising', ], fit: [ 'Pre-Series-A startups with budget but no full-time CTO yet', 'Non-technical founders who need CTO-level oversight on technical decisions', 'Teams that need to build the foundation right, fast, with agents from day one', 'Founders heading into a fundraise who need CTO due-diligence support', 'Accelerator companies (ERA, etc.) needing senior technical guidance', ], salesLine: 'I’m a fractional CTO for the new world. I help startups build fast with agents, set up the technical foundation, and train the team so they can keep operating that way after I’m gone.', }, ]; const PRICING_SCENARIOS = [ { mix: '2 × Modern Fractional CTO retainers', mrr: 30, label: 'default alive — the wedge path', tone: 'good' }, { mix: '1 × Fractional CTO + 1 × 90-Day Program', mrr: 30, label: 'wedge + program — mixed retainers', tone: 'good' }, { mix: '1 × Fractional CTO + 1 × Embedded Operator', mrr: 40, label: 'oxygen — full bandwidth', tone: 'good' }, { mix: '2 × 90-Day Programs at $15K/month', mrr: 30, label: 'break-even — existing CTO buyers', tone: 'good' }, { mix: '2 × FDE Channel Partners', mrr: 40, label: 'channel-driven — predictable', tone: 'good' }, { mix: '3 × Fractional CTO retainers', mrr: 45, label: 'oxygen — fundraising leverage', tone: 'good' }, { mix: '1 × $15K retainer + 1 onsite workshop / month', mrr: 27, label: 'positive, not stable', tone: 'warn' }, ]; const TARGETS = [ { day: 'Day 30', revenue: '$30–45K cash collected', why: 'Prove willingness to pay' }, { day: 'Day 60', revenue: '$30K MRR', why: 'Cover burn' }, { day: 'Day 90', revenue: '$45K+ MRR', why: 'Profitability / fundraising leverage' }, ]; const PHASES = [ { id: 'p1', range: 'Days 0–30', title: 'Sharpen the spear · sell diagnostics', goal: 'Convert trust into paid discovery.', kpis: [ ['Prospects identified', '200'], ['Personalized outbound sent', '100'], ['Replies / conversations', '25–35'], ['Discovery calls', '15–20'], ['Diagnostics sold', '5–8'], ['Baselines sold', '1–2'], ['90-day programs closed', '1'], ['Cash collected', '$30K–$45K'], ], revenuePath: [ ['5 diagnostics × $3K', '$15K'], ['2 baselines × $7.5K', '$15K'], ['1 retainer (M1)', '$15K'], ['Total potential', '$45K'], ], learning: [ 'Which buyers understand Agent Operator immediately?', 'Which domains have budget?', 'Which workflows repeat?', 'Which pitch gets calls?', 'Which objections kill deals?', 'Which diagnostics convert to retainers?', ], content: [ 'The Agent Operator Is the New Interface Layer', 'Your Team’s AI Experiments Are Not Compounding', 'AI Adoption Should Start With Film Study', 'It Wasn’t an AI Failure. It Was a Workflow Failure Wearing a Hat', 'The Next Excel Macro Is a Tiny Agent', 'I’m Opening 5 Agent Operator Diagnostic Slots', ], cta: 'I’m running paid diagnostics for teams already experimenting with AI agents. Reply with team size, tools used, and what feels most chaotic.', }, { id: 'p2', range: 'Days 31–60', title: 'Convert diagnostics into retainers — any mix', goal: 'Default alive. $30K+ MRR by any honest combination.', kpis: [ ['MRR (any mix)', '$30K+'], ['Active retainers (any SKU)', '2 — primary: 2× Modern Fractional CTO at $15K each. Or any mix that hits $30K.'], ['Completed diagnostics', '8–10'], ['Case studies / writeups', '2'], ['Office Hours clients', '2–3'], ['Cash collected this month', '$45K–$75K'], ], motion: [ 'Every diagnostic ends with one of three recommendations:', '1. Not ready — internal next steps', '2. Workshop — if they need alignment / training', '3. 90-day program — if they have urgency and budget', ], proof: '“What we found reviewing 20 agentic workflows.” — anonymized, structural, becomes sales collateral, investor evidence, and curriculum seed.', }, { id: 'p3', range: 'Days 61–90', title: 'Stabilize revenue · make the fundraise story credible', goal: 'Profitability or a clear path to it. Default alive with margin.', kpis: [ ['MRR (any mix)', '$45K+'], ['Active retainers (any SKU)', '3 — primary: 3× Modern Fractional CTO. Mix flexes as Agent Operator pipeline matures.'], ['Completed diagnostics', '12–15'], ['Published case studies', '3'], ['Agent Operator curriculum outline', 'v0'], ['Bootcamp / community waitlist', '100+'], ['Investor update sent', 'yes'], ['Fundraise story', 'traction-backed'], ], closer: '“I found the teams already feeling the pain, they paid us to diagnose it, they paid us to build the practice, and the repeated work is becoming the curriculum for the Agent Operator ecosystem.”', }, ]; const PERSONAS = [ { id: 'cto', title: 'CTO · Engineering Leader', short: 'CTO', pain: 'Engineers are using coding agents in private rituals. No shared practice, no measurement.', pitch: 'Your engineers are already using coding agents. The question is whether that usage is getting better as a team, or just producing isolated pockets of skill. We establish a baseline, identify failure patterns, train shared workflows, and build the playbook for agentic engineering practice.', why: 'Engineering leaders feel the pain first because coding agents have moved from curiosity to daily use. The challenge is that pockets of skill don’t compound into team capability without measurement and shared practice.', skuPath: ['baseline', 'program'], template: 'engineering', }, { id: 'coo', title: 'COO · Operations Leader', short: 'COO', pain: 'Spreadsheet macros, manual handoffs, copy/paste rituals, undocumented judgment.', pitch: 'Your workflows are full of spreadsheet macros, manual handoffs, copy/paste rituals, and undocumented judgment. Agents can help, but only if someone redesigns the workflow around context, tools, review, and maintenance.', why: 'Ops leaders own efficiency and process. They feel the cost of manual work most acutely, but they often lack a vocabulary for thinking about agentic redesign.', skuPath: ['diagnostic', 'program'], template: 'product', }, { id: 'product', title: 'Product Leader', short: 'Product', pain: 'Drowning in research, feedback, specs, synthesis, prioritization, prototype loops.', pitch: 'Product teams are drowning in research, feedback, specs, synthesis, prioritization, and prototype loops. We help turn one-off AI usage into repeatable product workflows with clear inputs, review loops, and reusable artifacts.', why: 'Product is the function with the most varied AI experimentation — every PM has their own GPT or research workflow. Almost none of it is shared. Agentic workflows turn this into compounding team capability.', skuPath: ['diagnostic', 'program'], template: 'product', }, { id: 'design', title: 'Design Leader', short: 'Design', pain: 'Wants to use AI for exploration, critique, and handoff — without flattening taste.', pitch: 'AI can accelerate exploration, critique, design-system maintenance, and implementation handoff, but only if the workflow preserves taste and review. We help design teams build agentic workflows that augment judgment rather than flatten it.', why: 'Design leaders are right to be cautious. The risk of generic output is real. The opportunity is to design workflows that use agents for the labor while preserving the team’s eye and review.', skuPath: ['diagnostic', 'intensive'], template: 'product', }, { id: 'founder', title: 'Founder · Small Team', short: 'Founder', pain: '"What should we even do with agents?"', pitch: 'Teams are already experimenting with agents, but the learning is trapped in private rituals. We turn that scattered usage into measurable work practices — and train the people who keep those practices improving.', why: 'Founders are pulled in five directions and need a clear, low-overhead way to make agents an institutional capability rather than a personal hack of the most curious engineer.', skuPath: ['diagnostic', 'office-hours'], template: 'warm', }, { id: 'gtm', title: 'GTM · RevOps Leader', short: 'GTM', pain: 'Account research, customer workflows, CRM hygiene — done by hand.', pitch: 'Sales and RevOps teams are doing high-volume, judgment-heavy work — account research, outreach, CRM hygiene, customer-success workflows. We help turn that into agentic workflows with clear inputs, reviews, and reusable artifacts.', why: 'GTM is high-volume, repetitive, and full of context handoffs. It rewards agentic workflows more than almost any other function once the patterns are mapped.', skuPath: ['diagnostic', 'program'], template: 'product', }, { id: 'ai-tooling', title: 'AI Tooling Founder · Head of Solutions', short: 'Tooling co.', pain: 'Customers ask for implementation help. We don’t have FDEs to send. Engineers are stretched thin or we lose deals.', pitch: 'You built the agentic tool. The hard part now is getting it adopted inside customer teams. We become your forward-deployed implementation arm — ramping up on your product, doing the deployment work inside customers, and feeding back what wins. You sell more, your customers actually adopt, your engineers stay focused on the product.', why: 'Tooling companies hit a wall at the customer-adoption layer. The product works, but it needs someone in the room with the customer to design the workflow around it. FDEs are expensive to hire and train. A channel partnership unlocks deployments without staffing a services arm.', skuPath: ['channel'], template: 'channel', }, { id: 'fcto-buyer', title: 'Pre-Series-A Founder · Non-technical CEO', short: 'Fractional CTO', pain: 'Technical decisions piling up, no full-time CTO yet, can’t afford to make the wrong architectural call.', pitch: 'You don’t need a full-time CTO yet — but you do need CTO-quality decisions. I\'ve been the CTO at an acquired startup and a senior engineering leader at Adobe. For ~10 hours a week, you get strategy, hiring help, code review, and vendor / tool selection — plus someone to talk through the hard calls before they harden into expensive mistakes.', why: 'Pre-Series-A founders frequently delay hiring a full-time CTO until product-market fit. During that delay, technical decisions compound. A fractional CTO is the bridge that lets the early team make decisions they’ll be proud of in two years. Most buyers find this role through accelerator and advisor networks, not cold outreach.', skuPath: ['fcto'], template: 'fcto', }, ]; const CALL_QUESTIONS = [ 'Where are people already using AI agents?', 'Which tools?', 'Which functions: engineering, product, ops, design, GTM?', 'Where does it feel magical?', 'Where does it create rework or risk?', 'Is usage individual or shared?', 'Do you have playbooks?', 'Do you have any way to tell whether the team is improving?', 'Who is the internal person everyone goes to for this?', 'What would "better" look like in 30 days?', ]; const QUAL_GOOD = [ 'They already use agents', 'They can name real workflows', 'They can name pain', 'They worry about repeatability', 'They ask about measurement', 'They ask about privacy / security', 'They have budget authority', 'They want this in the next 30 days', ]; const QUAL_BAD = [ '"We’re just curious"', '"Can you do a lunch-and-learn?"', '"Can you send materials?"', '"We need to educate the committee"', '"We do not use any tools yet"', '"We want a full AI strategy roadmap before doing anything"', '"This is interesting, but no budget"', ]; const TEMPLATES = [ { id: 'fcto', name: 'Modern Fractional CTO (lead)', subject: 'Fractional CTO availability', body: `Hey [Name], I’m taking on 1–2 new fractional CTO engagements this quarter. I know you’re [context — heading into Series A / between technical leads / building the team rapidly / haven’t hired a CTO yet — etc.] — wanted to flag in case it’s useful. I’m a fractional CTO for the new world: I help startups build fast with agents, set up the technical foundation, and train the team so they can keep operating that way after I’m gone. Quick background: ex-CTO at Sayspring (acquired by Adobe in 2018), Senior Engineering Manager at Adobe for 3+ years, now founder of Sublayer where I work on agentic dev tooling. ERA Lead Mentor for 7 years. Typical engagement: ~10 hours/week, $15K/month, 3-month minimum. You get someone who builds the thing AND leaves your team with the skills, systems, and docs to keep going in an agentic way. Worth a quick call to see if there’s a fit?`, }, { id: 'warm', name: 'Warm buyer (Agent Operator diagnostic)', subject: 'Agent Operator diagnostic', body: `Hey [Name], I’m starting to work with teams on something I’m calling the Agent Operator function. The pattern I’m seeing: companies already have people using Claude Code, Cursor, ChatGPT, custom GPTs, Zapier, internal agents, etc. Some of it is useful. Some of it is chaos. Almost none of it is turning into shared practice. I’m offering a small number of paid diagnostics where I map how a team is using agents today, identify the repeated workflow / failure patterns, and produce a practical 30-day plan. I think this might be relevant for [Company] because [specific reason]. Worth comparing notes?`, }, { id: 'engineering', name: 'Engineering-specific', subject: 'AI agent usage on your engineering team', body: `Hey [Name], Quick question: is your team already using Claude Code, Cursor, Codex, or similar tools in real engineering work? I’m running Agentic Workflow Baselines for teams that have moved past casual experimentation but do not yet have a shared practice. The diagnostic looks at how engineers are actually using agents, where sessions succeed / fail, what workflows should become team-wide, and what should be measured or improved over 30–90 days. It is less “AI training” and more film study + operating system design. Is this something you are actively thinking about?`, }, { id: 'product', name: 'Product / ops / design', subject: 'AI workflows beyond engineering', body: `Hey [Name], I’m working with teams that are trying to turn AI-agent experiments into actual operating practices. Engineering is the obvious starting point, but I’m increasingly interested in product, design, ops, and internal GTM workflows: research synthesis, customer feedback loops, internal tools, spreadsheet / macro replacement, account research, design handoff, support workflows, etc. The diagnostic maps where agents are already showing up, what workflows are good candidates, what context / tools / data are missing, and who internally should operate and maintain the system. I’m trying to talk to teams where this is already becoming real. Is there someone on your team who is quietly doing this work already?`, }, { id: 'referral', name: 'Referral ask', subject: 'A quick ask', body: `Hey [Name], I’m looking for teams where AI-agent usage has moved beyond curiosity and into “we need an operating model for this.” Best fit: a founder, CTO, COO, product / ops leader, or head of engineering whose team is already using agents but does not yet have shared practices, playbooks, or measurement. Do you know 1–2 people wrestling with that?`, }, { id: 'channel', name: 'Channel partner (AI tooling co.)', subject: 'FDE for [Product] customers', body: `Hey [Name], The pattern I see at agentic-tool companies: customers buy the product, but the actual rollout needs someone in the room with them to redesign the workflow around it. Engineers get pulled into deployments and lose product time. Sales loses deals when it can’t credibly say “and we’ll help you deploy.” I’m working with a small number of agentic-tool teams as their forward-deployed engineer — ramping up on the product, doing the deployment work inside customer teams, and feeding implementation patterns back to product. For [Product] specifically, this might be useful because [specific observation — their integration story, customer profile, current rollout pattern]. Structured as a monthly retainer for ongoing customer flow, or scoped per-engagement if you want to test. Not an agency — one person, closer to your sales motion, bringing implementation patterns back to inform the roadmap. Worth a 20-minute call?`, }, ]; const DAILY_RHYTHM = [ ['New personalized outreach', '10'], ['Follow-ups', '5'], ['Discovery calls', '1–3'], ['Public post / commenting', '1'], ['CRM updates', 'daily'], ['Referral asks', '3'], ]; const ASSET_GROUPS = { linkedin: { label: 'LinkedIn', lane: 'brand', laneNote: 'Stays Agent Operator. Headline, About, Featured links, post cadence — all point at the category, the role, the ecosystem.', items: [ { id: 'li-headline', title: 'Update headline', payload: 'Building the Agent Operator ecosystem — helping teams turn AI agents into measurable work practices | Founder, Sublayer', note: 'Names the category, says what you do, doesn’t narrow you to engineering.', }, { id: 'li-about', title: 'Replace About section', payload: `I’m the founder of Sublayer. We’re building the professional ecosystem for Agent Operators: the emerging role responsible for designing, running, evaluating, and improving workflows that use AI agents. Agent Operators sit between human intent and machine execution. They map how work actually happens, shape the context agents need, connect tools and data, supervise execution, verify outputs, document repeatable practices, and keep workflows improving as models and tools change. They may come from engineering, product, design, operations, GTM, support, data, or IT. The background provides domain judgment. The Agent Operator discipline provides the method. Right now, Sublayer is starting with services for teams already experimenting with AI agents. We help them turn scattered individual usage into measurable work practices through diagnostics, workflow design, team training, baselines, playbooks, and ongoing enablement. Longer term, we’re building the media, community, bootcamp, hiring network, and tools for this new professional category. I also write Works on My Machine, run Artificial Ruby in NYC, and build open source tools around prompt objects, agentic software, and the future of work.`, }, { id: 'li-featured', title: 'Set Featured links', payload: [ 'Book an Agent Operator Diagnostic', 'The Agent Operator thesis post', 'Works on My Machine', 'Artificial Ruby', 'Relevant open source — go-minitrace, prompt_objects, skills', ], }, { id: 'li-cadence', title: 'Run the post cadence', payload: [ '3 posts/week on Agent Operator category', '2 posts/week on concrete workflow failures', '1 post/week on services / diagnostic availability', 'Daily comments on CTOs, AI-tooling founders, devtools people, ops leaders', ], }, ], }, 'sublayer-com': { label: 'sublayer.com', lane: 'brand', laneNote: 'Stays Agent Operator. Homepage, sections, narrative — the long compounding category-creation work happens here.', items: [ { id: 'site-hero', title: 'Rewrite homepage hero', payload: `Headline: Building the professional ecosystem for Agent Operators. Subhead: AI agents are entering every function. The bottleneck is no longer access to models — it is the people and practices that turn messy workflows into reliable agentic systems. Body: Sublayer helps teams turn scattered AI-agent experiments into measurable work practices through diagnostics, workflow design, training, playbooks, and ongoing enablement. Services today. Community, bootcamps, tools, and hiring infrastructure next. CTAs: Primary → Book an Agent Operator Diagnostic Secondary → Read the Agent Operator Thesis Tertiary → Join the community / follow Works on My Machine`, }, { id: 'site-sections', title: 'Structure homepage sections', payload: [ 'What is an Agent Operator?', 'Why now — teams already using agents, learning not compounding', 'Services — Diagnostic · Baseline · 90-Day Program', 'The ecosystem — media · community · services · training · tools · hiring', 'Starting points — one role, many backgrounds (eng, product, design, ops, GTM, support)', 'Proof / assets — WoMM, Artificial Ruby, open source, case studies', ], }, ], }, 'services-page': { label: 'Services page', lane: 'outreach', laneNote: 'Leads with Modern Fractional CTO. The conversion surface — where buyers go from "interested" to "let\'s talk."', items: [ { id: 'svc-rewrite', title: 'Rewrite services page — one offer, one soft entry', note: 'List only what you currently sell. Other SKUs stay in the workbook until delivered once and learned from.', payload: `Title: Modern Fractional CTO Hero: A fractional CTO for the new world. Subhead: I help startups build fast with agents, set up the technical foundation, and train the team so they can keep operating that way after I'm gone. The Agent Operator work — workflows, playbooks, evaluation loops, training — happens inside the engagement, not as a separate add-on. Primary offer: Modern Fractional CTO $15K/month · 3-month minimum Build the foundation right, fast, with agents from day one. Train your team to keep operating that way after I step back. CTA → Book a fractional CTO conversation. Soft entry / de-risk: Not ready for a three-month commitment? Start with an Agent Operator Diagnostic — $3K, five business days. I'll map your team's current state and we'll figure out the right next step together. CTA → Book a diagnostic. "Not for you" section: · Not for teams looking for a one-hour AI inspiration talk. · Not for teams that want a proprietary framework installed and forgotten. · Not for teams hoping agents will replace judgment. · For teams that need someone to build the foundation right, fast, with agents from day one. Note (internal): Other SKUs from the workbook ladder — Baseline, 90-Day Program, Office Hours, Intensive, Advisory, Embedded, Channel — stay off the public page until they've been delivered and proven once. Add them to the page when you have a real story to tell about each, not before.`, }, ], }, }; const WEEK = [ { id: 'mon', day: 'Monday', items: [ 'Change LinkedIn headline', 'Publish Agent Operator announcement post', 'Create prospect spreadsheet', 'List 150 names', 'Rewrite homepage hero', 'Rewrite services hero', 'Send 20 warm emails', ]}, { id: 'tue', day: 'Tuesday', items: [ 'Send 20 more outreaches', 'Ask 10 people for referrals', 'Book calls', 'Write one-page services PDF', 'Create Stripe / invoice flow', ]}, { id: 'wed', day: 'Wednesday', items: [ 'Run calls', 'Sell diagnostics', 'Send proposals same day', 'Publish "AI experiments are not compounding" post', ]}, { id: 'thu', day: 'Thursday', items: [ 'Send 20 more outreaches', 'Follow up with everyone', 'Schedule Artificial Ruby / online "Agent Operator Film Study" event', 'Draft diagnostic report template', ]}, { id: 'fri', day: 'Friday', items: [ 'Review pipeline', 'Identify top 10 likely buyers', 'Send direct asks', 'Close first diagnostic', 'Publish "I’m opening 5 diagnostic slots" post', ]}, ]; const KILL = [ { id: 'd14', day: 'Day 14', expected: [ '50+ outreaches sent', '10+ calls booked', '2+ diagnostics verbally interested', '1 paid diagnostic closed', ], fallback: 'Simplify the pitch. Move from category language to pain language: "I help teams using Claude Code / Cursor / ChatGPT figure out what is working, what is risky, and what to standardize."', }, { id: 'd30', day: 'Day 30', expected: [ '5 diagnostics sold', '1 baseline or workshop sold', '1 retainer in serious conversation', ], fallback: 'Narrow ICP to engineering teams already using coding agents.', }, { id: 'd45', day: 'Day 45', expected: ['First 90-day program closed or in contracting'], fallback: 'Sell workshops aggressively for cash.', }, { id: 'd60', day: 'Day 60', expected: [ '2 active retainers, OR 1 active retainer plus enough workshops / diagnostics to cover burn', ], fallback: 'Cut burn, raise bridge, or take a larger bespoke consulting engagement.', }, ]; const TIERS = [ { id: 'informal', num: 'i', name: 'Informal advisor', short: 'Where you start. Coffee, not contracts.', cost: 'Coffee', commitment: 'Ad hoc', promise: 'Learn from people who’ve done this. Find out which friends actually have a usable network for your ICP.', pitch: '"I’m starting sales for the first time. Before I formalize anything, I just want to learn from people who’ve done this well. Can I buy you a beer once a month and pick your brain?"', terms: [ 'No agreement', 'Friend-to-friend', 'Periodic ad hoc help', 'No expectation either way', ], whenRight: 'Always at the start. Use this tier to figure out which friends actually fit the higher tiers.', keyMove: 'Revealed preference > stated preference. The friend who says "I’d love to help" but never makes an intro is not your future partner. The friend who, after one coffee, sends three warm intros unprompted is.', }, { id: 'advisor', num: 'ii', name: 'Formal advisor', short: 'FAST agreement. Advisor equity.', cost: '0.25–0.5% equity', commitment: '~5–10 hrs / month', promise: 'A friend who keeps showing up gets a clear structure. They commit to time and intros; you commit to visibility and using their advice seriously.', pitch: '"You’re already giving me real advice. I’d like to make this formal — standard advisor agreement, 0.25% over two years. I want you in the loop on actual deals, and I want a structure where it’s clear you’re owed something for the value you’re adding."', terms: [ '0.25% equity for ~5 hrs/month — advice + occasional intros', '0.5% for ~10 hrs/month — active involvement, discovery-call cameos, pitch review', '2-year vesting, monthly cliff', 'No board seat, no operational role', 'Standard FAST template — Founder/Advisor Standard Template, free online', ], whenRight: 'When one or two informal advisors keep showing up. Formalize with those. Don’t formalize with everyone — five formal advisors is two too many.', }, { id: 'referral', num: 'iii', name: 'Referral partner', short: 'Commission only. No equity.', cost: '10–20% of year-1 revenue', commitment: 'Their choice', promise: 'A friend with a great network refers prospects. You pay commission only on closed-won deals. Real money for warm intros that close.', pitch: '"You know everyone in [their world]. If you make warm intros that close, I’ll pay you 15% of the first year of revenue. No equity, no obligation, no monthly check-in. You hand-pick which deals to bring me. I close them."', terms: [ '10–20% of first-year revenue (industry-standard range)', 'Sometimes 5% of year 2 if they stay involved', 'Capped or uncapped — your call', 'Paid only on closed-won', 'Light written agreement — 1–2 page MSA', ], math: [ ['90-Day Program ($45K)', '$6,750'], ['Embedded Operator (3-mo, $75K)', '$11,250'], ['FDE Channel retainer ($240K / yr)', '$36,000 / yr'], ['Diagnostic ($3K)', '$450 (probably waive)'], ], whenRight: 'When a friend has an unusually rich network in your ICP but doesn’t want advisor-shaped involvement. Transactional, clean, less awkward than equity.', }, { id: 'fractional', num: 'iv', name: 'Fractional sales partner', short: 'Probably premature. Real eventually.', cost: '$7–12K / mo + 0.5–1.5% equity', commitment: '~10–15 hrs / week', promise: 'Someone semi-embedded who coaches you AND closes deals AND builds the pipeline. Real fractional executive role.', pitch: '"Here’s where the business is, here’s where I’m stuck on the sales motion, and here’s the role I think you’d be perfect for. I can offer $X cash plus equity. Want to figure out a shape that works?"', terms: [ '$7–12K / month cash retainer', '0.5–1.5% equity over 2–4 years', '~10–15 hrs / week typical', 'Light operational role — pipeline review, deal coaching, occasional close', ], whenRight: 'After ~$30–50K MRR, when the pipeline pays for the role. Revisit at day 90 if a friend really wants in and traction supports it.', warning: 'Cash you don’t have to spare. Premature without traction.', }, ]; const CASTING_STEPS = [ ['Coffees with 5–8 sales-savvy friends', 'Next 4 weeks. Tier i only. No agreements.'], ['Notice who shows up', 'Who sends intros without being asked? Whose thoughts change how you sell? Who actually understands your category vs. pattern-matches it to their own?'], ['Formalize with the 1–2 best fits', 'By day 60. Tier ii (advisor equity). 0.25% is a real number to a friend; treat it as one.'], ['Set up tier-iii referral fees', 'For rich-network friends who don’t want advisor-shaped involvement. Transactional, clean, lower stakes for both sides.'], ['Don’t formalize with everyone', 'Five formal advisors is two too many. Cap-table noise > cap-table signal.'], ]; const TAXONOMY = [ ['Enterprise SaaS to F500', 'Different beast. Long cycles, big committees, RFPs. Partially transferable; watch for over-formalizing instincts.'], ['Mid-market SaaS — especially CTO / eng buyers', 'Close to your shape. Highly transferable.'], ['Consulting / advisory / professional services', 'Highly relevant. Same value-anchored, trust-driven motion. These friends are gold.'], ['Ad-tech, fin-services, high-volume SDR-driven', 'Mostly different motion. Useful for grit and discipline; less for category creation.'], ]; // ============================================================================ // SECTIONS — IA + tab metadata // ============================================================================ const SECTIONS = [ { id: 'thesis', num: '01', title: 'The thesis', hook: 'The sharp thing, in one sentence — and the numbers behind it.', tabs: [{ id: 'main', label: 'Thesis' }], }, { id: 'skus', num: '02', title: 'The SKU ladder', hook: 'Nine SKUs. Lead with Fractional CTO; bundle the Agent Operator work inside.', tabs: [ { id: 'compare', label: 'Compare all' }, ...SKUS.map((s) => ({ id: s.id, label: `${s.num}. ${s.short.includes('flagship') || s.flagship ? s.name : s.name.replace(/Agent Operator |Agentic Workflow |Executive Agent Strategy /,'')}` })), ], }, { id: 'math', num: '03', title: 'Pricing & math', hook: 'Default alive first. Any honest mix that gets to $30K MRR counts.', tabs: [ { id: 'targets', label: 'Targets' }, { id: 'paths', label: 'Paths to break-even' }, ], }, { id: 'plan', num: '04', title: 'Thirty / sixty / ninety', hook: 'What has to be true at each checkpoint, and how the work compounds.', tabs: PHASES.map((p) => ({ id: p.id, label: p.range })), }, { id: 'personas', num: '05', title: 'Buyer personas', hook: 'One role, many backgrounds. Who buys, why, and which SKU fits.', tabs: [ { id: 'all', label: 'All buyers' }, ...PERSONAS.map((p) => ({ id: p.id, label: p.short })), ], }, { id: 'playbook', num: '06', title: 'Sales playbook', hook: 'Call structure, qualification, the four templates, and the daily rhythm.', tabs: [ { id: 'call', label: 'Call structure' }, { id: 'qual', label: 'Qualification' }, { id: 'outreach', label: 'Outreach' }, { id: 'rhythm', label: 'Daily rhythm' }, ], }, { id: 'assets', num: '07', title: 'Asset updates', hook: 'LinkedIn and sublayer.com stay Agent Operator brand. Services page leads with Modern Fractional CTO. Two lanes.', tabs: [ { id: 'linkedin', label: 'LinkedIn' }, { id: 'sublayer-com', label: 'sublayer.com' }, { id: 'services-page',label: 'Services page' }, ], }, { id: 'week', num: '08', title: 'This week', hook: 'Five days. Five very specific days.', tabs: [ { id: 'overview', label: 'Overview' }, ...WEEK.map((d) => ({ id: d.id, label: d.day.slice(0, 3) })), ], }, { id: 'kill', num: '09', title: 'Kill criteria', hook: 'Hard checkpoints. Steering, not pessimism.', tabs: KILL.map((k) => ({ id: k.id, label: k.day })), }, { id: 'partnerships', num: '10', title: 'Sales partnerships', hook: 'Working with the salespeople you know — without over-formalizing too soon.', tabs: [ { id: 'compare', label: 'Compare all' }, { id: 'informal', label: 'i. Informal' }, { id: 'advisor', label: 'ii. Advisor' }, { id: 'referral', label: 'iii. Referral' }, { id: 'fractional', label: 'iv. Fractional' }, { id: 'casting', label: 'Casting' }, ], }, ]; // Override SKU labels with cleaner short names for the tab strip SECTIONS[1].tabs = [ { id: 'compare', label: 'Compare all' }, { id: 'diagnostic', label: 'i. Diagnostic' }, { id: 'baseline', label: 'ii. Baseline' }, { id: 'program', label: 'iii. 90-Day Program' }, { id: 'office-hours',label: 'iv. Office Hours' }, { id: 'intensive', label: 'v. Intensive' }, { id: 'exec', label: 'vi. Advisory' }, { id: 'embedded', label: 'vii. Embedded' }, { id: 'channel', label: 'viii. Channel' }, { id: 'fcto', label: 'ix. Fractional CTO' }, ]; const FLAT_PAGES = SECTIONS.flatMap((s) => s.tabs.map((t) => ({ sectionId: s.id, sectionNum: s.num, sectionTitle: s.title, tabId: t.id, tabLabel: t.label, hasTabs: s.tabs.length > 1, })) ); const findPageIdx = (sectionId, tabId) => FLAT_PAGES.findIndex((p) => p.sectionId === sectionId && p.tabId === tabId); // ============================================================================ // PRIMITIVES // ============================================================================ function Hairline({ className = '' }) { return
; } function SectionHeader({ section }) { return (
{section.num}

{section.title}

{section.hook}

); } function TabStrip({ section, activeTab, onChange }) { if (section.tabs.length <= 1) return null; return (
{section.tabs.map((t) => { const active = t.id === activeTab; return ( ); })}
); } function Subhead({ children }) { return (

{children}

); } function Prose({ children, className = '' }) { return (
{children}
); } function PullQuote({ children }) { return (
{children}
); } function Tag({ children, tone = 'neutral' }) { const toneCls = { neutral: 'text-[var(--ink-soft)] bg-[var(--paper-deep)]', accent: 'text-[var(--accent)] bg-[var(--accent-faint)]', }[tone] || 'text-[var(--ink-soft)] bg-[var(--paper-deep)]'; return ( {children} ); } function FlagshipMark() { return ( Flagship ); } function Margin({ children, rotate = -2, dir = 'arrow' }) { return (
{dir === 'arrow' && } {children}
); } function Highlight({ children }) { return {children}; } function PaperGrain() { return ( ); } const PERSONA_COLORS = { cto: 'var(--ink)', coo: 'var(--accent)', product: 'var(--turmeric)', design: 'var(--pine)', founder: 'var(--teal)', gtm: 'var(--persimmon)', 'ai-tooling': 'oklch(40% 0.10 30)', // rust / sienna — distinct earth tone for the tooling-co. buyer 'fcto-buyer': 'oklch(35% 0.10 155)', // deeper forest green — bridge buyer, outside the core thesis }; function CrossRef({ to, tab, children, onJump }) { return ( ); } function CheckItem({ id, label, checked, onToggle }) { return ( ); } function MrrChart() { const W = 320; const H = 180; const padL = 30, padR = 10, padT = 10, padB = 24; const max = 50; const yTicks = [0, 15, 30, 45]; const plotW = W - padL - padR; const plotH = H - padT - padB; const yFor = (v) => padT + plotH - (v / max) * plotH; const slot = plotW / PRICING_SCENARIOS.length; const barW = 30; return ( {yTicks.map((t) => ( ${t}K ))} BREAK-EVEN {PRICING_SCENARIOS.map((s, i) => { const cx = padL + slot * i + slot / 2; const bx = cx - barW / 2; const by = yFor(s.mrr); const bh = yFor(0) - by; return ( {i + 1} ); })} ); } // ============================================================================ // PAGE: §01 THESIS // ============================================================================ function ThesisPage({ onJump }) { return ( <>

You are not selling AI training. You are not selling{' '} engineering consulting. You are not yet selling a bootcamp.

You are selling the first operational layer of the Agent Operator ecosystem.

Sublayer helps teams turn scattered AI-agent experiments into measurable work practices — and trains the people who will operate those practices.

The bigger company is the professional ecosystem around the Agent Operator role. The near-term cash product is services that install the Agent Operator function inside real teams.

The sharp thing:

AI agents create a new professional role. Sublayer defines, trains, and equips that role. Services are how we prove it.

Most teams already have experiments — one person’s Claude Code workflow, someone’s giant context doc, a few Cursor rituals, a custom GPT nobody else uses, a Zapier/Sheets/Notion monster, a half-working internal tool, a "never do that again" story that has not become a playbook. The problem is not that people are not experimenting. The problem is that{' '} the learning is not compounding. That is the wedge.

Customers first, category always, investors in the background. The goblin accountant is in the room. But he is holding a category design memo.

Operationally — two surfaces, one company

The public surface stays Agent Operator. Sublayer.com, LinkedIn, Works on My Machine, Artificial Ruby, the newsletter, the open-source work — all of it points at the category and the role. Slow, compounding, category-creation work.

The direct outreach is Modern Fractional CTO. Cold and warm emails, discovery calls, services-page conversion, day-to-day sales — all of it leads with the concrete fractional CTO offer. The Agent Operator work — building with agents, training the team to keep operating that way — happens inside the engagement.

Surface Lane Lead with
{[ ['Sublayer.com homepage', 'brand', 'Agent Operator ecosystem'], ['LinkedIn profile + posts', 'brand', 'Agent Operator'], ['Works on My Machine', 'brand', 'Agent Operator + thesis'], ['Artificial Ruby · newsletter', 'brand', 'Agent Operator community'], ['Services page', 'outreach', 'Modern Fractional CTO'], ['Cold + warm outreach', 'outreach', 'Modern Fractional CTO'], ['Discovery → close', 'outreach', 'Modern Fractional CTO'], ].map(([surface, lane, lead]) => (
{surface} {lane} {lead}
))}

Brand stays Agent Operator. Wedge is Fractional CTO. The public side does the long compounding work; the outreach side does the urgent revenue work. Both belong to the same company.

The numbers that frame this
{KEY_NUMBERS.map((n) => (
{n.value} {n.unit}
{n.label}
))}
The single goal of the next 90 days: default alive. Lead outbound with{' '} Modern Fractional CTO — two retainers at $15K/mo covers burn cleanly.{' '} Embedded,{' '} 90-Day Programs, and{' '} Channel partnerships all count toward the same goal. Diagnostics fund the runway while retainers compound.{' '} See the math.
); } // ============================================================================ // PAGE: §02 SKUs // ============================================================================ function SkuComparePage({ onJump }) { return ( <>

Nine SKUs. Operationally split into two layers:

The flagship sits at ix. Modern Fractional CTO. The Diagnostic is the paid front door. Everything else is supporting motion.

I’m a fractional CTO for the new world — I help startups build fast with agents, set up the technical foundation, and train the team so they can keep operating that way after I’m gone. Workbook menu vs. public products

The workbook is the internal menu of possibilities — every SKU you’ve thought through, the math, the buyer-mapping. It’s how you reason about the business.

The public services page is the conversion surface. It lists only what’s actually proven: Modern Fractional CTO{' '} (primary) and Agent Operator Diagnostic (soft entry). Two offers, decisive.

Other SKUs — Baseline, 90-Day Program, Office Hours, Intensive, Advisory, Embedded, Channel — stay off the public page until they’ve been delivered once and you have a real story to tell about them. The first FCTO engagement will surface what those SKUs actually want to be in practice. Add them to the page when you’ve earned the story, not before.

workbook = menu of possibilities. services page = what you’ve actually delivered.
# SKU Price Capacity
{SKUS.map((sku) => ( ))}

Click any row to drill into the SKU detail. Or use the tabs above.

); } function SkuDetailPage({ skuId, onJump }) { const sku = SKUS.find((s) => s.id === skuId); if (!sku) return null; return (
{sku.num}

{sku.name}

{sku.flagship && flagship}

{sku.short}

"{sku.promise}"
What you ship
    {sku.deliverables.map((d) => (
  • · {d}
  • ))}
{sku.fit && ( <>
Good fit
    {sku.fit.map((f) => (
  • — {f}
  • ))}
)} {sku.months && ( <>
90-day arc
{sku.months.map((m) => (
{m.label}
    {m.items.map((it) =>
  • — {it}
  • )}
))}
)} {sku.metricsEng && (
For engineering teams
{sku.metricsEng.join(' · ')}
For non-engineering teams
{sku.metricsOps.join(' · ')}
)}
Sales line
"{sku.salesLine}"
{sku.warning && (
Watch out: {sku.warning}
)} {sku.id === 'embedded' && ( the bridge while the 90-day pipeline fills — trade scaling math for cash flow, wean off as retainers stack )} {sku.id === 'fcto' && ( <>
Positioning — wedge vs. category

Brand stays Agent Operator. Sublayer.com, the thesis essay, the media presence — all of that points at the broader category and ecosystem play.

Outbound leads with Fractional CTO. Buyers know what that is. The Agent Operator work — building with agents, training the team to keep operating that way — happens inside the Fractional CTO engagement.

Sales motion

Fractional CTO is a known category. Almost no educational sale required. The motion is mostly trust calibration: can this person be my CTO-equivalent for ten hours a week?

  • — Buyers come mostly via referrals: accelerators (ERA), VC portfolio companies, advisor networks. Cold outreach works less well here than in the Agent Operator motion.
  • — Sales cycle is short: 1–3 conversations, 2–4 weeks to close.
  • — First call is mostly listening: what does their team look like, what are they stuck on, what would a CTO be doing for them.
  • — The close is direct: "I'd be useful here. ~10 hours a week, $15K/month, 3-month minimum. Want to start?"
  • — Your résumé does most of the selling. Lead with Sayspring → Adobe + 7 years of ERA mentorship.
  • — Differentiate with outcomes, not buzzwords: "you get someone who builds the thing AND leaves your team with the skills, systems, and docs to keep going in an agentic way."
two retainers at $15K = default alive. that's the math. )}
See buyer personas for who specifically buys this and why.
); } // ============================================================================ // PAGE: §03 PRICING & MATH // ============================================================================ function PricingTargetsPage() { return ( <>

The single goal of the next 90 days is default alive — covering the $30K/month burn with revenue. The mix doesn't matter. Programs, Embedded, Channel, mixed retainers, repeat diagnostics — all of it counts.

The targets below are checkpoints toward that goal, not specific quotas about which SKU to sell.

When Revenue Why
{TARGETS.map((t) => (
{t.day} {t.revenue} {t.why}
))}
Burn is roughly $30K/month with three months of runway. Ten $3K customers is how you accidentally invent a support zoo and become its tired zookeeper.
default alive — by whatever honest mix works ); } function PricingPathsPage({ onJump }) { return ( <>

Five mixes that hit (or approach) break-even. The clean target is two flagship retainers at $15K/month — the rest is cash, proof, and pipeline.

{PRICING_SCENARIOS.map((s) => (
{s.mix}
{s.label}
${s.mrr}K/mo
))}
Visualized
Bars are MRR per scenario. The dashed line is break-even ($30K/mo).
Default alive by day 60: $30K MRR via any mix above.{' '} Diagnostics fund the runway while retainers compound. The Embedded SKU is the fastest first retainer to close; the 90-Day Program is the most scalable once case studies exist.
); } // ============================================================================ // PAGE: §04 30/60/90 (per phase) // ============================================================================ function PhasePage({ phaseId }) { const p = PHASES.find((x) => x.id === phaseId); if (!p) return null; return (
{p.range}

{p.title}

Goal — {p.goal}

KPIs
{p.kpis.map(([k, v]) => (
{k} {v}
))}
{p.revenuePath && (
Revenue path
{p.revenuePath.map(([k, v], idx, arr) => (
{k} {v}
))}
)} {p.learning && (
What you’re learning
    {p.learning.map((l) =>
  • — {l}
  • )}
)} {p.motion && (
Main motion
    {p.motion.map((m, idx) => (
  • {m}
  • ))}
)} {p.proof && (
Hard proof to publish

{p.proof}

)} {p.closer && {p.closer}}
{p.content && (
Posts to publish in the first 30 days
    {p.content.map((c, idx) => (
  1. {String(idx + 1).padStart(2, '0')} "{c}"
  2. ))}
{p.cta && (
Every post ends with: "{p.cta}"
)}
)}
); } // ============================================================================ // PAGE: §05 PERSONAS // ============================================================================ function PersonasComparePage({ onJump }) { return ( <>

One role, many backgrounds. Each persona has a different starting pain — but the same underlying story: usage exists, learning is not compounding, the team needs an operating layer.

{PERSONAS.map((p) => (

{p.pain}

))}
); } function PersonaDetailPage({ personaId, onJump }) { const p = PERSONAS.find((x) => x.id === personaId); const skuById = useMemo(() => Object.fromEntries(SKUS.map((s) => [s.id, s])), []); const tpl = TEMPLATES.find((t) => t.id === p?.template); if (!p) return null; return (

{p.pain}

The pitch

"{p.pitch}"

Why this persona buys

{p.why}

Suggested SKU path
{p.skuPath.map((id, i) => ( {i > 0 && } ))}
{tpl && ( <>
Outreach template — {tpl.name}
Subject: {tpl.subject}
{tpl.body}
)}
); } // ============================================================================ // PAGE: §06 PLAYBOOK // ============================================================================ function CallStructurePage() { return ( <>

Do not pitch for 25 minutes. Run the call like a diagnostic.

0–3 min
Frame
"I’ll give you the short version, then I mostly want to understand how agents are already showing up in your team. If it seems useful, I can explain the diagnostic."
3–23 min
Ten questions
    {CALL_QUESTIONS.map((q, i) => (
  1. {String(i + 1).padStart(2, '0')} {q}
  2. ))}
23–30 min
Prescribe
"Based on what you described, I think the right first step is{' '} [Diagnostic / Baseline / 90-Day Program]." Do not give them five options. Give them the right next step.
); } function QualificationPage() { return ( <>

Run every call against this list. The bad-signs side is not "bad people" — it is "people who are not ready to buy what you’re selling."

Good signs
    {QUAL_GOOD.map((s) => (
  • + {s}
  • ))}
Bad signs
    {QUAL_BAD.map((s) => (
  • {s}
  • ))}

You can still nurture the bad-signs list. Just don’t build your survival plan around them.

); } function OutreachPage() { const [openId, setOpenId] = useState(TEMPLATES[0].id); const [copiedId, setCopiedId] = useState(null); const copy = useCallback((id, text) => { if (typeof navigator !== 'undefined' && navigator.clipboard) { navigator.clipboard.writeText(text) .then(() => { setCopiedId(id); setTimeout(() => setCopiedId(null), 1400); }) .catch(() => {}); } }, []); const t = TEMPLATES.find((x) => x.id === openId) || TEMPLATES[0]; return ( <>

Four templates. The referral ask is probably the highest-leverage email of all of them — use it.

start here. ask three people for referrals before lunch.
{TEMPLATES.map((tpl) => { const active = tpl.id === openId; return ( ); })}
Subject: {t.subject}
{t.body}
); } function DailyRhythmPage() { const totalTouches = '200+'; return ( <>

Daily targets, for the next 30 days. Stop thinking of this as marketing. Start thinking of it as structured search through your trust graph.

Activity Daily target
{DAILY_RHYTHM.map(([k, v]) => (
{k} {v}
))}
); } // ============================================================================ // PAGE: §07 ASSETS // ============================================================================ function AssetsGroupPage({ groupId, checks, toggle }) { const group = ASSET_GROUPS[groupId]; if (!group) return null; const total = group.items.length; const done = group.items.filter((it) => checks[it.id]).length; const laneColor = group.lane === 'brand' ? 'var(--pine)' : 'var(--accent)'; const laneLabel = group.lane === 'brand' ? 'Brand · Agent Operator' : 'Outreach · Modern Fractional CTO'; return ( <>

{group.label}

{done} / {total} done
{group.lane && (
)} {group.laneNote && (

{group.laneNote}

)}
{group.items.map((a) => (
{a.title}
{a.note && (
{a.note}
)} {Array.isArray(a.payload) ? (
    {a.payload.map((p) =>
  • — {p}
  • )}
) : (
{a.payload}
)}
))}
); } // ============================================================================ // PAGE: §08 THIS WEEK // ============================================================================ function WeekOverviewPage({ checks, toggle, onJump }) { const totalAll = WEEK.reduce((acc, d) => acc + d.items.length, 0); const doneAll = WEEK.reduce( (acc, d) => acc + d.items.filter((_, i) => checks[`week-${d.id}-${i}`]).length, 0 ); return ( <>

By Friday, you want at least one person to have said:{' '} "Yes, send the invoice." Not "interesting." Not "let’s stay close." Invoice.

The invoice is the first honest user interview.

Week progress {doneAll} / {totalAll}
{WEEK.map((d) => { const total = d.items.length; const done = d.items.filter((_, i) => checks[`week-${d.id}-${i}`]).length; const pct = total ? done / total : 0; return ( ); })}
); } function DayPage({ dayId, checks, toggle }) { const d = WEEK.find((x) => x.id === dayId); if (!d) return null; const total = d.items.length; const done = d.items.filter((_, i) => checks[`week-${d.id}-${i}`]).length; return ( <>

{d.day}

{done} / {total}
{d.items.map((it, i) => ( ))}
); } // ============================================================================ // PAGE: §09 KILL CRITERIA // ============================================================================ function KillCheckpointPage({ killId }) { const k = KILL.find((x) => x.id === killId); if (!k) return null; return ( <>
{k.day}
Expected
    {k.expected.map((e) =>
  • — {e}
  • )}
If not

{k.fallback}

{killId === 'd14' && ( this is steering, not pessimism. the road has corners. )} ); } // ============================================================================ // PAGE: §10 PARTNERSHIPS // ============================================================================ function PartnershipsComparePage({ onJump }) { return ( <>

Four shapes of partnership, very different commitment levels. Most early-stage founders accidentally collapse them into one — formalizing too early or letting valuable advice drift away.

start at tier i. let revealed preference pick the rest.
# Tier Cost Commitment
{TIERS.map((t) => ( ))}

Click any row for the detail. Or jump to the{' '} casting tab for how to choose who fits where.

); } function TierDetailPage({ tierId }) { const t = TIERS.find((x) => x.id === tierId); if (!t) return null; return (
{t.num}

{t.name}

{t.short}

{t.promise}
The pitch

{t.pitch}

Terms
    {t.terms.map((term) => (
  • · {term}
  • ))}
{t.math && ( <>
Math at 15%
{t.math.map(([k, v]) => (
{k} {v}
))}
)}
When it’s right

{t.whenRight}

{t.keyMove && (

{t.keyMove}

)} {t.warning && (
Watch out: {t.warning}
)}
); } function CastingPage() { return ( <>

Most founders mess this up by jumping to tier ii or iii too early — formalizing with whoever’s nearest, before they know which friends actually have a usable network in their ICP and which are good for advice but won’t move deals.

The pattern that works:

    {CASTING_STEPS.map(([step, detail], i) => (
  1. {i + 1}
    {step}
    {detail}
  2. ))}
One sharpening question to take into each coffee

Listen for whether their sales experience actually matches your motion. Two or three of your sales friends will be in the right bucket. Those are the ones worth investing the relationship in.

{TAXONOMY.map(([category, note]) => (
{category} {note}
))}
2–3 friends. quality of fit beats quantity of network. ); } // ============================================================================ // SECTION DISPATCHER // ============================================================================ function SectionPage({ section, activeTab, onJump, checks, toggle }) { switch (section.id) { case 'thesis': return ; case 'skus': if (activeTab === 'compare') return ; return ; case 'math': if (activeTab === 'paths') return ; return ; case 'plan': return ; case 'personas': if (activeTab === 'all') return ; return ; case 'playbook': if (activeTab === 'qual') return ; if (activeTab === 'outreach') return ; if (activeTab === 'rhythm') return ; return ; case 'assets': return ; case 'week': if (activeTab === 'overview') return ; return ; case 'kill': return ; case 'partnerships': if (activeTab === 'compare') return ; if (activeTab === 'casting') return ; return ; default: return null; } } // ============================================================================ // PREV / NEXT PAGER // ============================================================================ function PrevNext({ currentIdx, onJump }) { const prev = currentIdx > 0 ? FLAT_PAGES[currentIdx - 1] : null; const next = currentIdx < FLAT_PAGES.length - 1 ? FLAT_PAGES[currentIdx + 1] : null; const Cell = ({ page, dir }) => { if (!page) return
; const align = dir === 'next' ? 'text-right ml-auto' : 'text-left'; const isAlone = !page.hasTabs; const main = isAlone ? page.sectionTitle : page.tabLabel; const sub = isAlone ? page.sectionNum : `${page.sectionNum} · ${page.sectionTitle}`; return ( ); }; return ( ); } // ============================================================================ // SIDEBAR // ============================================================================ function Sidebar({ activeSection, activeTab, onJump }) { return ( ); } function MobileNav({ activeSection, activeTab, onJump, open, setOpen }) { return (
{META.vol} · {META.date}
{META.title}
{open && ( )}
); } // ============================================================================ // APP // ============================================================================ const STYLES = ` @import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700;800&family=Vollkorn:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Caveat:wght@500;700&family=B612+Mono:wght@400;700&display=swap'); :root { --paper: oklch(97% 0.012 75); --paper-deep: oklch(94% 0.020 70); --paper-edge: oklch(88% 0.025 65); --ink: oklch(25% 0.08 265); --ink-soft: oklch(48% 0.06 265); --ink-faint: oklch(65% 0.03 260); --accent: oklch(54% 0.15 38); --accent-faint: oklch(92% 0.05 35); --turmeric: oklch(76% 0.16 85); --turmeric-faint: oklch(94% 0.07 85); --pine: oklch(45% 0.11 155); --pine-faint: oklch(94% 0.04 155); --teal: oklch(58% 0.09 215); --persimmon: oklch(60% 0.16 28); } html { scroll-behavior: smooth; } body { background: var(--paper); color: var(--ink); font-family: 'Vollkorn', "Iowan Old Style", "Palatino Linotype", Georgia, serif; } .font-serif { font-family: 'Vollkorn', "Iowan Old Style", "Palatino Linotype", Georgia, serif; } .font-sans { font-family: 'B612 Mono', ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace; } .font-mono { font-family: 'B612 Mono', ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace; } .font-display { font-family: 'Big Shoulders Display', 'Big Shoulders', Impact, sans-serif; font-weight: 700; letter-spacing: -0.005em; } .font-hand { font-family: 'Caveat', 'Segoe Script', cursive; font-weight: 500; } .tabular-nums { font-variant-numeric: tabular-nums; } ::selection { background: var(--turmeric-faint); color: var(--ink); } .highlight-turmeric { background-image: linear-gradient(transparent 55%, var(--turmeric-faint) 57%, var(--turmeric-faint) 92%, transparent 94%); padding: 0 0.1em; } `; function App() { const [activeSection, setActiveSection] = useState('thesis'); const [tabBySection, setTabBySection] = useState({}); const [mobileOpen, setMobileOpen] = useState(false); const [checks, setChecks] = useState({}); const section = SECTIONS.find((s) => s.id === activeSection) || SECTIONS[0]; const activeTab = tabBySection[activeSection] || section.tabs[0].id; const currentIdx = findPageIdx(activeSection, activeTab); const toggle = useCallback((id) => { setChecks((c) => ({ ...c, [id]: !c[id] })); }, []); const onJump = useCallback((sectionId, tabId) => { const target = SECTIONS.find((s) => s.id === sectionId); if (!target) return; const finalTab = tabId || tabBySection[sectionId] || target.tabs[0].id; setActiveSection(sectionId); setTabBySection((t) => ({ ...t, [sectionId]: finalTab })); if (typeof window !== 'undefined') window.scrollTo({ top: 0, behavior: 'smooth' }); }, [tabBySection]); const setTab = useCallback((tabId) => { setTabBySection((t) => ({ ...t, [activeSection]: tabId })); if (typeof window !== 'undefined') window.scrollTo({ top: 0, behavior: 'smooth' }); }, [activeSection]); return ( <>
{/* Hero strip — only on the first page */} {activeSection === 'thesis' && (
Sublayer · Working notebook · {META.date}

Turning scattered AI-agent experiments into measurable work practices.

A field guide to the next ninety days — the SKU ladder, the math, the buyers, the playbook, and the calendar — laid out so it can be navigated, pointed at, and argued over.

)}
); } export default App;