Return On IntelligenceView the deck →

Build spec & rules

Everything a production rebuild of the Unlock investor walkthrough needs — design system, narrative, interactive logic, gate architecture and the verbatim compliance rules. Target stack: Lovable (React + Vite + Tailwind + shadcn/ui) + Supabase.

Companion to the working prototype (deck.html). Source of record: unlock-live-deck-BUILD-BRIEF.md, unlock-invest-site-spec-and-sitemap-V1.md, unlock-live-deck-PRODUCTION-SPEC.md. Governed by the Unlock Financial Promotion Playbook V1.

1 · Stack & porting reality 2 · Design system (tokens) 3 · Narrative arc (15 slides) 4 · Interactive pieces & EIS model 5 · Compliance (verbatim) 6 · Server-side gate (Supabase) 7 · CTA / booking 8 · Open decisions 9 · Build & test checklist

1 · Stack & porting reality

Target: Lovable (where unlockdd.com already lives) — React/Vite/TypeScript/Tailwind/shadcn/ui, with Supabase as the backend.

Lovable is export-only. It cannot import an existing repo — it builds an app and pushes out to a GitHub repo it creates. So this prototype is the reference spec that Lovable rebuilds from; it is not imported. The backend carries over directly: stand up the Supabase project independently, and Lovable connects to that same project (paste Project URL + anon key).

2 · Design system

Reuse the existing unlockdd.com shadcn tokens. Type: Inter 400–900.

shadcn CSS variables (HSL)

/* index.css :root */
--background:80 27% 95%;   /* #F3F6EF sage */
--foreground:270 3% 13%;   /* near-black ink */
--card:0 0% 100%;
--primary:157 100% 37%;    /* brand green ≈ #00BD74 */
--primary-foreground:0 0% 100%;
--secondary:0 0% 96%;  --muted:0 0% 93%;  --muted-foreground:0 0% 40%;
--accent:157 100% 27%;     /* darker green */
--destructive:0 84% 60%;
--border:0 0% 85%;  --ring:157 100% 37%;  --radius:.5rem;

Plain tokens used in the prototype

TokenValueUse
bg#F3F6EFpage sage
ink#1c1b1dtext
greenhsl(157 100% 37%)primary
green-darkhsl(157 100% 27%)accent / text-on-light
green-softhsl(157 55% 94%)chips / fills
green-brighthsl(157 100% 55%)on-dark highlight
amber#E6A21Acaution status
red#E5484Drisk / downside

Components & motion

3 · Narrative arc — 15 slides

Driven by → ← arrows, a top tab menu, and a grouped side menu with progress dots. Skip to any section or walk it linearly.

  1. Mission — "Built to be one of the 1 in 10 that deliver 10×+ / not a build round."
  2. What & who — personas: Estate Architect (£1–3M), Operator-Owner (£1–5M), Multi-Family Principal (£5–20M+).
  3. The problem — fragmented / conflicted / inaccessible + concentration-risk visual.
  4. Why unsolved — four truths.
  5. The solution — animated asset-load.
  6. The product — 3 live systems (Asset Register, Decumulation Planner, Tax Intelligence Engine).
  7. Why we win — owned data universe (30k / 600k / 1.6M) + AI-native 23-agent workforce + disruption framing.
  8. How we grow — get / convert / keep engine + flywheel.
  9. Why now — three windows (regulatory / competitive / founding round).
  10. The market — TAM 600k / SAM 180k / target 45k nested-circle viz.
  11. EIS model — the interactive centrepiece (§4).
  12. The bet — downside / upside, downside led.
  13. Returns & exit — two horizons (~10× at 5k subs, ~89× at 45k).
  14. Terms & Sandbox — KIC, SEIS-now / EIS-later, hi-fi Sandbox mock.
  15. Book a call — close + booking capture.

(The earlier "Five named founding investors" proof slide has been removed; named investors still appear contextually on the Product slide. If the tested-funnel proof is wanted back, re-add it as a card on "How we grow".)

4 · Interactive pieces & EIS model

EIS model logic (illustrative, additional-rate)

effectiveCost   = ticket × 0.70        // after 30% EIS income relief
netLossIfFails  = effectiveCost × 0.55 // loss relief 45% of net cost ≈ ticket × 0.385
exitValue       = ticket × outcome     // CGT-free after the qualifying hold

Render a value path across Years 0–5; show the effective-cost line; on success show Y2 (BPR / IHT-free) and Y3 (CGT-free) markers.

SEIS treatment — confirmed (2026-06-17): SEIS throughout. 50% income relief; on failure the value line floors at ≈ 72.5% capital retained (net loss ≈ 27.5p in the £, additional rate), not zero. Gains CGT-free after the qualifying hold. Above SEIS limits (~£250k) the round uses EIS (30%; loss ≈ 38.5p) — the prototype models SEIS. Implemented: effectiveCost = ticket×0.50; netLossIfFails = effectiveCost×0.55 ≈ ticket×0.275; failFloor = ticket − netLoss.

5 · Compliance — bind verbatim

s.21 FSMA is a criminal offence. An inducement to invest may only be communicated to a person who has validly self-certified as HNW or sophisticated before they see it. Gate first; risk warnings throughout; downside ≥ upside; all figures "illustrative, not a forecast".

Seven mandatory disclaimers (verbatim — "Important information" modal + persistent risk bar)

1 · Capital is at risk. The value of EIS investments can fall as well as rise, and investors may not get back the full amount invested.
2 · This is decision support, not financial advice. Unlock surfaces structured analysis; the decision is yours.
3 · Unlock operates outside the FCA perimeter by design. What we provide is structured decision support, not regulated financial advice.
4 · These figures are modelled, not guaranteed. Assumptions are visible alongside each projection.
5 · Tax outcomes depend on individual circumstances and may change in the future. The figures shown illustrate general planning logic and are not personalised tax advice.
6 · Past performance is not a reliable indicator of future results.
7 · From April 2027, under the Finance Act 2026 (enacted law, Royal Assent April 2026), defined-contribution pensions become part of the estate for inheritance tax purposes.
Canonical EIS line (LOCKED — quote exactly): "EIS income tax relief is 30% of the amount invested, up to £1,000,000 per tax year (£2,000,000 for Knowledge Intensive Companies)."
Prohibited phrases — never use, anywhere: "22p per pound" (wrong SEIS loss figure — correct ≈ 27.5p) · "7.8× average EIS return" (unsourced).

6 · Server-side certification gate (Supabase)

The prototype gate is client-side (a local session flag). Production must enforce server-side and store an auditable record before any promotional content renders.

Recommended: capture the binding statutory self-certification inside the SeedLegals Instant Investment flow (Unlock's instrument). The site gate then only controls who reaches the gated content.
Never retype the prescribed statement from memory. The Art 48 (HNW) / Art 50A (sophisticated) statements are statutory prescribed forms — capture via SeedLegals, or transcribe verbatim from SI 2024/301 Sch.3 (HNW) / Sch.4 (sophisticated).

Supabase schema

create table public.investor_certifications (
  id                uuid primary key default gen_random_uuid(),
  user_id           uuid references auth.users(id) on delete cascade,
  category          text not null check (category in ('hnw','sophisticated')),
  criterion         text,                 -- which Art 48/50A criterion + how
  statement_version text not null,        -- e.g. 'SI 2024/301 Sch.3'
  acknowledged      boolean not null default false,
  source            text not null default 'site',
  ip_address        inet,
  user_agent        text,
  created_at        timestamptz not null default now(),
  expires_at        timestamptz not null default (now() + interval '12 months')
);

RLS + enforcement

7 · CTA / booking

The deck's only conversion action is "Book a discovery call". Flow: discovery call (20 min) → platform demo with the investor's own asset classes (30 min) → reserve via SeedLegals Instant Investment. Wire the CTA to the real scheduler (Calendly/SeedLegals) and capture the booking in Supabase. In the prototype this is a modal that validates + confirms + stores locally; a single BOOKING_URL constant is the swap point for the live link.

8 · Open decisions (confirm before external launch)

9 · Build & test checklist

Unlock Services Limited · build spec 2026 · governed by the Unlock Financial Promotion Playbook V1.