const { useEffect, useMemo, useRef, useState, useCallback } = React; // ========================================================= // useIsMobile hook // ========================================================= function useIsMobile() { const [mobile, setMobile] = useState(() => typeof window !== "undefined" && window.innerWidth < 768); useEffect(() => { const check = () => setMobile(window.innerWidth < 768); window.addEventListener("resize", check); return () => window.removeEventListener("resize", check); }, []); return mobile; } // ========================================================= // VIDEO MODAL // ========================================================= function VideoModal({ onClose }) { const [visible, setVisible] = useState(false); useEffect(() => { const t = setTimeout(() => setVisible(true), 30); const onKey = (e) => e.key === "Escape" && dismiss(); window.addEventListener("keydown", onKey); return () => { clearTimeout(t); window.removeEventListener("keydown", onKey); }; }, []); const dismiss = () => { setVisible(false); setTimeout(onClose, 350); }; return ( <>
e.stopPropagation()} style={{ width: "min(900px, 92vw)", opacity: visible ? 1 : 0, transform: visible ? "scale(1) translateY(0)" : "scale(0.96) translateY(16px)", transition: "opacity .4s ease, transform .4s cubic-bezier(.2,.8,.2,1)", }} > {/* Video frame */}
{/* Placeholder — swap src for real embed */}
[ VIDEO PLACEHOLDER — EMBED YOUR LOOM / VIMEO / YOUTUBE ]
{/* Caption row */}
How The Exitable Business System Works
12 MIN · THE FULL WALKTHROUGH
Close Explore the system
); } // ========================================================= // WATCH BTN — opens video modal // ========================================================= function WatchBtn() { const [open, setOpen] = useState(false); return ( <> {open && setOpen(false)} />} ); } // ========================================================= // NAV // ========================================================= function Nav() { const [scrolled, setScrolled] = useState(false); const [menuOpen, setMenuOpen] = useState(false); const isMobile = useIsMobile(); useEffect(() => { const s = () => setScrolled(window.scrollY > 24); s(); window.addEventListener("scroll", s, { passive: true }); return () => window.removeEventListener("scroll", s); }, []); return ( <>
EXITABLE {isMobile ? (
Book a call
) : ( <> Book a call )}
{/* Mobile dropdown menu */} {isMobile && (
{[["How we do it","#method"],["Work with us","#program"]].map(([label,href]) => ( setMenuOpen(false)} style={{ fontSize: 18, fontWeight: 600, padding: "14px 0", borderBottom: "1px solid var(--rule)", color: "var(--fg)", letterSpacing: "-0.01em" }}> {label} ))} setMenuOpen(false)} style={{ fontSize: 18, fontWeight: 600, padding: "14px 0", borderBottom: "1px solid var(--rule)", color: "var(--fg)", letterSpacing: "-0.01em" }}> Get an audit
)}
); } function LogoMark() { return ( ); } // ========================================================= // HERO — MANIFESTO (default, bold typographic) // ========================================================= function HeroManifesto() { const isMobile = useIsMobile(); if (isMobile) { return (
For owner-led businesses doing £5M–£75M

Build a business that runs without you.

We help owners step out of the day-to-day, grow profit, and build a business that no longer depends on them — so it's worth more and easier to exit when the time is right.

Book a strategy call See how it works
{/* Mobile info strip — 2 col */}
{[ { t: "Built for owner-led businesses", d: "For established companies where too much still depends on the founder, owner or key people." }, { t: "Focused on £5M–£75M revenue SMEs", d: "Where wasted time, weak systems, owner-dependency and missed profit are now costing real money." }, { t: "Choose your starting point", d: "Bottleneck Audit, Breakthrough Sprint, Scale-Up Programme or Strategic Growth & Exit Pathways." }, { t: "Implementation, not just advice", d: "We help prioritise, plan and deliver the changes needed to make the business run better without you." }, ].map((s, i) => (
{s.t}
{s.d}
))}
); } return (
For owner-led businesses doing £5M–£75M

Build a business that runs without you.

We help owners step out of the day-to-day, grow profit, and build a business that no longer depends on them — so it's worth more and easier to exit when the time is right.

Book a strategy call See how it works
{[ { t: "Built for owner-led businesses", d: "For established companies where too much still depends on the founder, owner or key people." }, { t: "Focused on £5M–£75M revenue SMEs", d: "Where wasted time, weak systems, owner-dependency and missed profit are now costing real money." }, { t: "Choose your starting point", d: "Bottleneck Audit, Breakthrough Sprint, Scale-Up Programme or Strategic Growth & Exit Pathways." }, { t: "Implementation, not just advice", d: "We help prioritise, plan and deliver the changes needed to make the business run better without you." }, ].map((s, i) => (
{s.t}
{s.d}
))}
); } // ========================================================= // HERO — CALCULATOR // ========================================================= function HeroCalculator() { const [rev, setRev] = useState(12); // £M const [margin, setMargin] = useState(14); // % const [mult, setMult] = useState(5); const ebitda = (rev * margin) / 100; const value = ebitda * mult; const upliftVal = value * 2.4; return (
Calculate your exit · live

What's your business actually worth?

Most owners under-price their own company by 40–60%. Move the sliders. See what a buyer sees — and what we can build it into.

Book a strategy call How we do it
VALUATION MODEL · SIMPLIFIED
TODAY
£{value.toFixed(1)}M
AFTER 18 MO.
£{upliftVal.toFixed(1)}M
BASED ON MEDIAN 2.4× UPLIFT · COHORT 2022–2026
); } function CalcSlider({ label, unit, min, max, step, value, onChange }) { return (
{label} {unit === "£M" ? "£" : ""}{value.toFixed(unit === "×" || unit === "%" ? 1 : 1)}{unit === "£M" ? "M" : unit}
onChange(+e.target.value)} style={{ width: "100%", appearance: "none", height: 4, background: `linear-gradient(to right, var(--accent) 0 ${((value - min) / (max - min)) * 100}%, var(--rule-2) ${((value - min) / (max - min)) * 100}% 100%)`, borderRadius: 999, outline: "none", }} />
); } // ========================================================= // HERO — STACK (side-by-side pillars) // ========================================================= function HeroStack() { const pillars = [ { l: "SYSTEMS", t: "Everything your team does, written down and measured." }, { l: "LEADERSHIP", t: "A team that makes decisions without calling you." }, { l: "AI", t: "Automating the 40% of work that shouldn't be a human's job." }, ]; return (
For owner-led businesses · £5M – £75M

Your business shouldn't need you in it.

Three mechanisms. One outcome: a business that's more profitable, less dependent on you, and sellable whenever you want.

Book a call
{pillars.map((p, i) => (
0{i + 1} · {p.l}
{p.t}
))}
); } // ========================================================= // TICKER // ========================================================= function Ticker() { const isMobile = useIsMobile(); const items = ["REMOVE BOTTLENECKS", "BUILD BETTER SYSTEMS", "REDUCE OWNER DEPENDENCY", "GROW PROFIT", "STRENGTHEN YOUR TEAM", "SCALE WITH LESS CHAOS"]; const row = [...items, ...items, ...items]; const fontSize = isMobile ? 22 : 40; const gap = isMobile ? 24 : 40; return (
{row.map((t, i) => ( {t} ))}
); } // ========================================================= // PROBLEM // ========================================================= function Problem() { const isMobile = useIsMobile(); const bullets = [ "The business slows down when you step away.", "Every real decision comes back to you.", "Your team is busy, but not productive enough.", "Growth adds pressure instead of freedom.", "The same problems keep resurfacing.", "Key knowledge lives in people's heads.", "Profit margin needs improving.", "Customers and staff still rely too much on you.", "Good people are stuck doing low-value work.", ]; if (isMobile) { return (
The problem

You built a job,
not a business.

Be honest. Does any of this sound familiar? If so, your business is built around you. But it's fixable.

    {bullets.map((b, i) => (
  • 0{i + 1} {b}
  • ))}
); } return (
The problem

You built a job,
not a business.

Be honest. Does any of this sound familiar? If so, your business is built around you. But it's fixable.

    {bullets.map((b, i) => (
  • 0{i + 1} {b}
  • ))}
); } // ========================================================= // METHOD — 3 PILLARS // ========================================================= // GEAR UTILITIES // ========================================================= function gearPath(cx, cy, teeth, pitch, addendum, dedendum) { const outerR = pitch + addendum; const innerR = pitch - dedendum; const holeR = pitch * 0.38; const step = (2 * Math.PI) / teeth; let d = ""; for (let i = 0; i < teeth; i++) { const a = i * step - Math.PI / 2; const r0a = a + step * 0.18; const r1a = a + step * 0.26; const r2a = a + step * 0.36; const r3a = a + step * 0.64; const r4a = a + step * 0.74; const r5a = a + step * 0.82; const pt = (r, angle) => [cx + r * Math.cos(angle), cy + r * Math.sin(angle)]; if (i === 0) { const [sx,sy] = pt(innerR, r0a); d += `M${sx.toFixed(2)},${sy.toFixed(2)} `; } const [x0,y0] = pt(innerR, r0a); const [x1,y1] = pt(outerR, r1a); const [x2,y2] = pt(outerR, r2a); const [x3,y3] = pt(outerR, r3a); const [x4,y4] = pt(outerR, r4a); const [x5,y5] = pt(innerR, r5a); d += `L${x0.toFixed(2)},${y0.toFixed(2)} `; d += `Q${(cx+(innerR+addendum*0.4)*Math.cos(r1a-.04)).toFixed(2)},${(cy+(innerR+addendum*0.4)*Math.sin(r1a-.04)).toFixed(2)} ${x1.toFixed(2)},${y1.toFixed(2)} `; d += `L${x2.toFixed(2)},${y2.toFixed(2)} L${x3.toFixed(2)},${y3.toFixed(2)} L${x4.toFixed(2)},${y4.toFixed(2)} `; d += `Q${(cx+(innerR+addendum*0.4)*Math.cos(r4a+.04)).toFixed(2)},${(cy+(innerR+addendum*0.4)*Math.sin(r4a+.04)).toFixed(2)} ${x5.toFixed(2)},${y5.toFixed(2)} `; } d += `Z M${(cx+holeR).toFixed(2)},${cy.toFixed(2)} A${holeR},${holeR} 0 1,0 ${(cx-holeR).toFixed(2)},${cy.toFixed(2)} A${holeR},${holeR} 0 1,0 ${(cx+holeR).toFixed(2)},${cy.toFixed(2)} Z`; return d; } // Inject gear CSS keyframes once if (typeof document !== "undefined" && !document.getElementById("gear-keyframes")) { const s = document.createElement("style"); s.id = "gear-keyframes"; s.textContent = "@keyframes gear-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }"; document.head.appendChild(s); } function GearStage({ phase = 0 }) { const cx = 120, cy = 155, teeth = 10, pitch = 82; const add = pitch * 0.16, ded = pitch * 0.13; const d = gearPath(cx, cy, teeth, pitch, add, ded); const delay = `-${((phase / 360) * 20).toFixed(2)}s`; return ( ); } // ========================================================= function Method() { const isMobile = useIsMobile(); const pillars = [ { n: "01", kicker: "SMARTER PROCESSES", title: "Stop wasting time in the wrong places.", body: "Remove the bottlenecks, delays and messy processes that waste time, kill momentum and keep dragging the owner back into the day-to-day." }, { n: "02", kicker: "SCALABLE SYSTEMS", title: "Make the business easier to run.", body: "We create the systems, automation and reporting needed to support better sales, better delivery, better margins and more consistent execution." }, { n: "03", kicker: "AUTONOMOUS LEADERSHIP", title: "Create a team-led business.", body: "We help your team take more ownership, make better decisions and reduce the number of issues that end up back on your desk." }, ]; const [open, setOpen] = useState(0); if (isMobile) { return (
How We Do It

3 ways we make your business less dependent on you...

{pillars.map((p, i) => (

{p.body}

))}
); } return (
How We Do It

3 ways we make your business less dependent on you...

{pillars.map((p, i) => { const active = open === i; return ( ); })}
); } // ========================================================= // PROOF — quote + logos + case study numbers // ========================================================= function Proof() { return (
Proof · not pitch
"I took six weeks off for the first time in eleven years. Revenue went up. A year later we sold for 3.1× what the company was worth when we started."
Daniel Morris
FOUNDER · WILDGRAIN (SOLD 2025)
{[ { k: "Revenue", v: "£8.2M → £14.6M" }, { k: "EBITDA", v: "9% → 22%" }, { k: "Founder hrs/wk", v: "68 → 14" }, { k: "Exit multiple", v: "3.1×" }, ].map((m, i) => (
{m.k.toUpperCase()}
{m.v}
))}
SELECTED OWNERS WE'VE WORKED WITH
{["WILDGRAIN", "NORTHWIND", "HELIX", "LONGWAVE", "FORMAT", "ASCENT", "MERIDIAN", "CIPHER"].map((x, i) => ( {x} ))}
); } // ========================================================= // PROGRAM — what's included // ========================================================= function Program() { const isMobile = useIsMobile(); const items = [ { t: "BOTTLENECK AUDIT", d: "Find out what's holding your business back from achieving more growth and being worth more. Identify where the business is still too dependent on you - and what to fix first." }, { t: "BREAKTHROUGH SPRINT", d: "A focused 90-day sprint to turn the findings from your Bottleneck Audit into visible progress, more growth opportunities, cleaner systems and less owner dependency." }, { t: "SCALE-UP PROGRAM", d: "Stop being the engine of the business. Build the systems, people and processes that let it grow without everything relying on you. A practical 12 month program for owners who want to take their business to the next level." }, { t: "STRATEGIC GROWTH &\nEXIT PATHWAYS", d: "For owners ready to build bigger strategic options. We help shape the right board structure, growth strategy, acquisition and joint venture opportunities, capital routes, public listing options and exit pathways - so the business becomes more valuable, more scalable and more attractive to future partners, investors or buyers." }, ]; if (isMobile) { return (
4 ways to work with us

4 WAYS TO work with us.

{items.map((it, i) => (
0{i + 1}
{it.t}
{it.d}
))}
Find out more
); } return (
4 ways to work with us

4 WAYS TO work with us.

{items.map((it, i) => ( ))}
Find out more
); } function ProgramRow({ n, t, d, last }) { const [hover, setHover] = useState(false); return (
setHover(true)} onMouseLeave={() => setHover(false)} style={{ display: "grid", gridTemplateColumns: "80px 1.2fr 2fr 56px", gap: 24, padding: "28px 32px", borderBottom: last ? 0 : "1px solid var(--rule-2)", background: hover ? "var(--accent)" : "transparent", color: hover ? "var(--accent-ink)" : "var(--fg)", transition: "background .25s ease, color .25s ease", alignItems: "center", cursor: "pointer", }} > 0{n} {t} {d}
); } // ========================================================= // FAQ // ========================================================= function FAQ() { const isMobile = useIsMobile(); const qs = [ { q: "How do I know if we need a Bottleneck Audit?", a: "You are probably ready if your team is busy but not moving fast enough.\n\nCommon signs include duplicated work, manual admin, slow decisions, repeated questions, too many tasks sitting with the owner, poor handovers, inconsistent follow-up, or good people spending too much time on work that should be automated, simplified or delegated.\n\nIf the business is growing but feels heavier than it should, there are almost certainly bottlenecks worth finding." }, { q: "Is this an AI consultancy?", a: "No. AI is part of the toolkit, not the whole offer.\n\nThe Bottleneck Audit looks at how your business actually works: where time is wasted, where decisions get stuck, where your team is pulled into low-value work, and where the business still depends too heavily on you.\n\nSometimes the answer is AI. Sometimes it is automation. Sometimes it is better process, clearer ownership, cleaner reporting, or removing unnecessary steps altogether.\n\nThe goal is not to \"add AI\". The goal is to make the business run better." }, { q: "What will the audit actually show us?", a: "It will show you where productivity, profit and value are being lost.\n\nWe look at the tasks, workflows, decisions and systems that create drag inside the business. Then we identify what should be simplified, automated, delegated or redesigned.\n\nThe output is a clear view of what to fix first, what will create the biggest impact, and what is likely to make the business more scalable, profitable and less dependent on you." }, { q: "Will this just create more work for my team?", a: "No. That would defeat the point.\n\nWe will need input from you and selected members of your team, but the aim is to keep that focused and efficient. We are not trying to bury people in workshops, forms or theory.\n\nWe need enough insight to understand how the work really gets done — then we do the heavy lifting." }, { q: "Do we need clean data or advanced systems already in place?", a: "No.\n\nMost owner-led businesses do not have perfect systems, clean data or fully documented processes. That is often part of the problem.\n\nThe audit starts with where you are now. We look at your existing tools, processes and working habits, then identify practical improvements that can be made without overcomplicating the business." }, { q: "Will you recommend specific AI tools or software?", a: "Only if they are genuinely useful.\n\nWe are not tied to one platform, tool or vendor. The starting point is always the business problem, not the technology.\n\nIf a simple process change solves the issue, we will say so. If automation or AI can save time, improve accuracy or remove a bottleneck, we will show you where it fits." }, { q: "What happens after the audit?", a: "You will have a clearer view of what is slowing the business down and what should be fixed first.\n\nSome clients use the audit as a standalone roadmap. Others ask us to help implement the improvements, build better systems, redesign workflows, introduce automation, or support the wider move towards a business that runs with less reliance on the owner.\n\nEither way, you are not left with vague theory. The point is practical action." }, { q: "How quickly will we see value?", a: "The audit itself should give you value quickly because it highlights the bottlenecks that are costing time, money and momentum.\n\nIn many cases, the first improvements are obvious once the work is mapped properly: repeated admin, slow handovers, unnecessary approvals, poor use of existing software, or tasks sitting with the wrong people.\n\nThe bigger gains usually come from implementing the right changes in the right order." }, { q: "Is this only relevant if I want to sell my business?", a: "No.\n\nEven if you have no immediate plan to sell, the same improvements still matter.\n\nA business that runs with less owner-dependence, stronger systems, better productivity and clearer decision-making is usually easier to manage, easier to scale, more profitable and more valuable.\n\nExit-readiness is not just about selling. It is about building a better business with more options." }, { q: "Will this make my team worry about being replaced?", a: "It should not be positioned that way.\n\nThe aim is to remove low-value work, not remove good people. Most teams are already stretched. They do not need more tasks; they need better systems, clearer priorities and fewer repetitive jobs that drain time and attention.\n\nDone properly, automation should help people spend more time on work that needs judgement, relationships, creativity and commercial thinking." }, { q: "What kind of businesses is this for?", a: "It is built for owner-led businesses where too much still depends on the founder, senior team or a few key people.\n\nThat usually means established businesses with real operations, real teams, and enough complexity that small improvements in process, productivity and decision-making can create meaningful value.\n\nIt is probably not right for very early-stage businesses, solo operators or companies looking for a quick software recommendation." }, ]; const [open, setOpen] = useState(0); return (
{isMobile ? ( <> Questions

Things owners ask first.

) : (
Questions

Things owners ask first.

)}
{qs.map((f, i) => (
{f.a.split("\n\n").map((para, pi) => (

{para}

))}
))}
); } // ========================================================= // CTA / BOOK A CALL (form) // ========================================================= function Call() { const isMobile = useIsMobile(); const [f, setF] = useState({ name: "", email: "", company: "", revenue: "5-10", goal: "grow", note: "" }); const [err, setErr] = useState({}); const [sent, setSent] = useState(false); const u = (k) => (e) => setF({ ...f, [k]: e.target.value }); const submit = async (ev) => { ev.preventDefault(); const e = {}; if (!f.name.trim()) e.name = "required"; if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(f.email)) e.email = "needs an email"; if (!f.company.trim()) e.company = "required"; setErr(e); if (Object.keys(e).length === 0) { await fetch("https://formspree.io/f/mzdyobky", { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json" }, body: JSON.stringify({ ...f, _subject: "New Exitable Strategy Call Request" }), }); setSent(true); } }; const formBlock = (
{!sent ? (
setF({ ...f, revenue: v })} options={[["u5","Under £5M"],["5-10","£5–10M"],["10-25","£10–25M"],["25-50","£25–50M"],["50-75","£50–75M"],["75+","£75M+"]]} /> setF({ ...f, goal: v })} options={[["revenue","Increase revenue or reduce costs"],["free","Get my time back"],["automate","Automate specific high-value tasks"],["exit","Prep for exit"],["valuation","Increase valuation"],["all","All of the above"]]} />
CONTEXT (OPTIONAL)