// pages/inner.jsx — about, program, speakers, riyadh, partner, resources, faq, contact // ───────── About ───────── function About() { return (
A trade show for the science
that's about to ship.} sub="Future Labs Summit is a 4-day, public-facing gathering for the new discovery stack — AI, automation, decentralized science, augmented reality and the people building on top of them." />
§ Thesis

Science needs
a CES.

For 50 years, breakthroughs in physics and computing earned their own consumer-facing moment. The Detroit Auto Show. CES. WWDC. They mattered because they told the rest of the world, in plain language, what is about to be possible.

Biology — and the broader discovery stack — never got that. The most interesting work of the next decade is happening in lab basements, hospital corridors and on-chain DAOs that almost nobody outside the field can see.

Future Labs Summit is built to change that. Four days. One floor. Cameras on. The decade ahead, laid out for everyone who has a stake in it — which, given the subject, is everyone.

{/* Photo band — lab in motion */} Most science
never gets its premiere.} sub="We are building the venue for the kind of work that has, until now, lived in PDFs nobody outside the lab will ever read." /> {/* Manifesto */}
What we will, and will not, do.} />
{[ ['WILL', 'Show running platforms.', 'Every pavilion must run live. If it can\'t demo, it can\'t exhibit.'], ['WILL NOT', 'Pretend slides are products.', 'Roadmaps are not exhibits. Keynotes are the only place for promises.'], ['WILL', 'Let students walk in.', 'Verified student ID gets you a pass. No questions, no fees.'], ['WILL NOT', 'Sell the audience.', 'Your badge data is not for sale. Sponsor leads are opt-in, period.'], ['WILL', 'Hold a public day.', 'Day 4 is open. Free. For schools, families, the curious. Always.'], ['WILL NOT', 'Be a charity gala.', 'We respect philanthropy. This is not it. This is a working trade show.'], ].map(([kind, t, b], i) => (
{kind === 'WILL' ? '◆ Will' : '✕ Will not'}

{t}

{b}

))}
{/* Team */}
{[ { i: 'F.A.', r: 'Convenor · Programme', city: 'Riyadh' }, { i: 'M.K.', r: 'Convenor · Exhibitors', city: 'London' }, { i: 'D.R.', r: 'Operations · Floor', city: 'Riyadh' }, { i: 'S.B.', r: 'Press · Public Day', city: 'Cairo' }, ].map((p) => (
{p.city}
{p.i}
{p.r}
))}
); } // ───────── Page hero (shared by inner pages) ───────── function PageHero({ index, kicker, title, sub, id }) { return (
§ {index} · {kicker} FLS · Edition 01 · 19 — 22 Mar / 2027

{title}

{sub &&

{sub}

}
); } // ───────── Session roster ───────── // The 20 named sessions across the Main Stage and the child stages (B/C/D, // workshops, pavilions). Hosts and guests are deliberately unconfirmed — the // roster files 30 days out. Keep `host` / `guests` as 'TBC' until Comms sign // off; the Event JSON-LD in index.html mirrors this list, so update both. const STAGE_EVENTS = [ // ── Main Stage ────────────────────────────────────────────────────────── { id: 'fls-01', tier: 'main', no: '01', day: '19 MAR', t: '09:00', stage: 'Mainstage A', format: 'Opening Address', name: 'Opening Address — The Discovery Stack in 2027', host: 'TBC', guests: 'TBC', blurb: 'Where lab automation, research AI, decentralised science and augmented reality actually meet.' }, { id: 'fls-02', tier: 'main', no: '02', day: '19 MAR', t: '10:30', stage: 'Mainstage A', format: 'Fireside Chat', name: 'The Future of Labs — Fireside Chat', host: 'TBC', guests: 'TBC', blurb: 'Forty minutes, two chairs, no slides. What the bench looks like when the robots do the pipetting.' }, { id: 'fls-03', tier: 'main', no: '03', day: '19 MAR', t: '16:30', stage: 'Mainstage A', format: 'Keynote', name: 'Keynote 01 — Five Demos, Fifteen Minutes Each', host: 'TBC', guests: 'TBC', blurb: 'Five teams, live hardware, a hard stop at fifteen minutes. Nothing pre-recorded.' }, { id: 'fls-04', tier: 'main', no: '04', day: '20 MAR', t: '09:00', stage: 'Mainstage A', format: 'Keynote', name: 'The Self-Driving Lab — From Bench to Fleet', host: 'TBC', guests: 'TBC', blurb: 'What changes when a single automated lab becomes a hundred of them running the same protocol.' }, { id: 'fls-05', tier: 'main', no: '05', day: '20 MAR', t: '14:00', stage: 'Mainstage A', format: 'Live Demo', name: 'The Robotic Surgeon — Live Theatre, Narrated', host: 'TBC', guests: 'TBC', blurb: 'A procedure relayed from the operating theatre, narrated in plain language as it happens.' }, { id: 'fls-06', tier: 'main', no: '06', day: '20 MAR', t: '17:00', stage: 'Mainstage A', format: 'Fireside Chat', name: 'Longevity Moves to the Clinic — Fireside Chat', host: 'TBC', guests: 'TBC', blurb: 'The gap between a compelling mouse result and a therapy a regulator will sign.' }, { id: 'fls-07', tier: 'main', no: '07', day: '21 MAR', t: '10:00', stage: 'Mainstage A', format: 'Keynote', name: 'Keynote 02 — Models That Discover', host: 'TBC', guests: 'TBC', blurb: 'Foundation models that propose experiments rather than summarise papers.' }, { id: 'fls-08', tier: 'main', no: '08', day: '21 MAR', t: '12:00', stage: 'Mainstage A', format: 'Panel', name: 'Sovereign Capital Meets Deep Tech — Main Stage Panel', host: 'TBC', guests: 'TBC', blurb: 'Patient money, twenty-year horizons, and what founders give up to take it.' }, { id: 'fls-09', tier: 'main', no: '09', day: '21 MAR', t: '19:00', stage: 'Mainstage A', format: 'Hackathon Final', name: 'Hackathon Finals — Top 8 Pitch on the Main Stage', host: 'TBC', guests: 'TBC', blurb: 'Eight teams out of six hundred builders. Six minutes each, judged live.' }, { id: 'fls-10', tier: 'main', no: '10', day: '22 MAR', t: '16:00', stage: 'Mainstage A', format: 'Closing Address', name: 'Closing Address — Looking Ahead to Edition 02', host: 'TBC', guests: 'TBC', blurb: 'What we got wrong, what carried, and what returns in 2028.' }, // ── Child stages: B / C / D, workshops, pavilions ──────────────────────── { id: 'fls-11', tier: 'child', no: '11', day: '19 MAR', t: '15:00', stage: 'Stage B', format: 'Panel', name: 'The State of Biotech Capital, Q1 2027', host: 'TBC', guests: 'TBC', blurb: 'Where the money actually went last year, read off the term sheets.' }, { id: 'fls-12', tier: 'child', no: '12', day: '20 MAR', t: '09:00', stage: 'Stage B', format: 'Deep Dive', name: 'Foundation Models for Biology — Stage B Deep Dive', host: 'TBC', guests: 'TBC', blurb: 'Architecture, training data, and the benchmarks nobody agrees on yet.' }, { id: 'fls-13', tier: 'child', no: '13', day: '20 MAR', t: '09:00', stage: 'Stage C', format: 'Panel', name: 'Decentralised Science — Funding Without Gatekeepers', host: 'TBC', guests: 'TBC', blurb: 'DeSci past the hype cycle: what has actually funded a working experiment.' }, { id: 'fls-14', tier: 'child', no: '14', day: '20 MAR', t: '09:00', stage: 'Stage D', format: 'Deep Dive', name: 'Augmented Reality — The Surgeon’s Next Screen', host: 'TBC', guests: 'TBC', blurb: 'Overlays in the operating theatre, and the latency budget that makes or breaks them.' }, { id: 'fls-15', tier: 'child', no: '15', day: '20 MAR', t: '11:30', stage: 'Stage B', format: 'Roundtable', name: 'Wet Lab Meets Dry Lab — Stage B Roundtable', host: 'TBC', guests: 'TBC', blurb: 'The handoff problem: computational predictions that never survive contact with the bench.' }, { id: 'fls-16', tier: 'child', no: '16', day: '20 MAR', t: '15:30', stage: 'Stage D', format: 'Lightning Talks', name: 'Open Hardware for Labs — Stage D Lightning Talks', host: 'TBC', guests: 'TBC', blurb: 'Ten builders, five minutes each, on instruments you can fork.' }, { id: 'fls-17', tier: 'child', no: '17', day: '21 MAR', t: '13:00', stage: 'Workshop 1', format: 'Cohort', name: 'Protein Design, Hands-On — Workshop Cohort', host: 'TBC', guests: 'TBC', blurb: 'Bring a laptop. Leave with a designed binder and the pipeline that made it.' }, { id: 'fls-18', tier: 'child', no: '18', day: '21 MAR', t: '13:00', stage: 'Workshop 2', format: 'Cohort', name: 'Agentic Research Workflows — Workshop Cohort', host: 'TBC', guests: 'TBC', blurb: 'Wiring agents into a real research loop without losing the audit trail.' }, { id: 'fls-19', tier: 'child', no: '19', day: '21 MAR', t: '17:00', stage: 'Stage B', format: 'Panel', name: 'Data Sovereignty in Clinical AI — Stage B Panel', host: 'TBC', guests: 'TBC', blurb: 'Who holds the patient data when the model is trained in one jurisdiction and deployed in another.' }, { id: 'fls-20', tier: 'child', no: '20', day: '22 MAR', t: '11:00', stage: 'Pavilion F', format: 'Public Session', name: 'Science Communication in the Age of AI — Public Session', host: 'TBC', guests: 'TBC', blurb: 'Open to the public. How to tell a true story about research that is still uncertain.' }, ]; function StageEventTable({ id, tier, eyebrow, title, note }) { const rows = STAGE_EVENTS.filter((e) => e.tier === tier); return (

{title}

{eyebrow} · {rows.length} sessions
{note &&

{note}

}
    {rows.map((e) => (
  1. {e.no}
    {e.format}

    {e.name}

    {e.blurb}

    {[['Host', e.host], ['Guests', e.guests]].map(([k, v]) => (
    {k} {v === 'TBC' ? 'To be confirmed' : v}
    ))}
    {e.day}
    {e.t}
    {e.stage}
  2. ))}
); } // ───────── Program ───────── function Program() { const days = [ { d: '19 MAR', label: 'D01 · OPENING', color: 'var(--signal)', sessions: [ { t: '09:00', kind: 'KEY', name: 'Opening Address · Where the discovery stack is going', hall: 'Mainstage A' }, { t: '10:30', kind: 'KEY', name: 'Keynote 01 — Five demos, fifteen minutes each', hall: 'Mainstage A' }, { t: '12:00', kind: 'EXP', name: 'Pavilions open · 40,000m² goes live', hall: 'All halls' }, { t: '15:00', kind: 'PNL', name: 'The state of biotech capital, Q1 2027', hall: 'Stage B' }, { t: '18:00', kind: 'SOC', name: 'Opening reception · Outdoor courtyard', hall: 'Courtyard' }, ], }, { d: '20 MAR', label: 'D02 · PILLARS', sessions: [ { t: '09:00', kind: 'TRK', name: 'Track A · Lab Automation — Bench to fleet', hall: 'Stage A' }, { t: '09:00', kind: 'TRK', name: 'Track B · Research-Focused AI — Foundation models for biology', hall: 'Stage B' }, { t: '09:00', kind: 'TRK', name: 'Track C · Decentralized Science — Funding without gatekeepers', hall: 'Stage C' }, { t: '09:00', kind: 'TRK', name: 'Track D · Augmented Reality — The surgeon\'s next screen', hall: 'Stage D' }, { t: '14:00', kind: 'DEM', name: 'Robotic surgery, narrated · Live operating theatre', hall: 'Pavilion E' }, { t: '19:00', kind: 'SOC', name: 'Founders dinner · By invitation', hall: 'Rooftop' }, ], }, { d: '21 MAR', label: 'D03 · BUILD · CAPITAL', sessions: [ { t: '08:00', kind: 'HCK', name: 'Hackathon kickoff · 600 builders on the floor', hall: 'Hall 4' }, { t: '09:00', kind: 'FND', name: 'Founders & Capital · Day pass (invite-only)', hall: 'Hall 3' }, { t: '10:00', kind: 'KEY', name: 'Keynote 02 — Models that discover', hall: 'Mainstage A' }, { t: '12:00', kind: 'PNL', name: 'Sovereign capital meets deep-tech', hall: 'Stage A' }, { t: '13:00', kind: 'COH', name: 'Cohort · Protein design, hands-on (sold out)', hall: 'Workshop 1' }, { t: '13:00', kind: 'COH', name: 'Cohort · Agentic research workflows', hall: 'Workshop 2' }, { t: '15:00', kind: 'KEY', name: 'Keynote 03 — Longevity moves to the clinic', hall: 'Mainstage A' }, { t: '17:00', kind: 'PNL', name: 'AI doctors — what the FDA is actually saying', hall: 'Stage B' }, { t: '19:00', kind: 'HCK', name: 'Hackathon judging · Top 8 pitch on mainstage', hall: 'Mainstage A' }, { t: '21:00', kind: 'SOC', name: 'Awards & afterparty', hall: 'Pavilion E' }, ], }, { d: '22 MAR', label: 'D04 · PUBLIC', color: 'var(--signal)', sessions: [ { t: '10:00', kind: 'PUB', name: 'Open day · Free entry for the public', hall: 'All halls' }, { t: '11:00', kind: 'PUB', name: 'Family programme · Live science demonstrations', hall: 'Pavilion F' }, { t: '13:00', kind: 'PUB', name: 'School visits · Schedule on request', hall: 'Mainstage A' }, { t: '16:00', kind: 'KEY', name: 'Closing notes & looking ahead to Edition 02', hall: 'Mainstage A' }, { t: '18:00', kind: 'SOC', name: 'Pavilions close · See you in 2028', hall: 'All halls' }, ], }, ]; const KIND = { KEY: ['Keynote', 'var(--signal)'], TRK: ['Track', 'var(--ink)'], PNL: ['Panel', 'var(--ink)'], DEM: ['Live demo', 'var(--signal)'], EXP: ['Expo', 'var(--ink)'], HCK: ['Hackathon', 'var(--signal)'], COH: ['Cohort', 'var(--ink)'], FND: ['Founders', 'var(--ink)'], PUB: ['Public', 'var(--signal)'], SOC: ['Social', 'var(--muted)'], }; return (
Four days, six tracks,
no filler.} sub="Below is the working programme. It files in full on 1 February 2027. Bookmark this page — it updates weekly until then." />
§ 02.1 · Named Sessions · 20 Confirmed Slots

Twenty sessions.
Ten on the main stage.

The slots below are locked — titles, formats, stages and times. Hosts and guests are not. We file the roster 30 days out so early-stage founders, first-time speakers and students get a fair shot at the same stages as the household names.

◆ Hosts & guests announced 30 days out — 17 Feb 2027
See the roster →
{days.map((day, di) => (
{day.d}
{day.label}
    {day.sessions.map((s, i) => { const [kindLabel, kindColor] = KIND[s.kind] || ['—', 'var(--ink)']; return (
  1. {s.t}
    {kindLabel}
    {s.name}
    {s.hall}
  2. ); })}
))}
◆ Programme files in full on 1 Feb 2027
Get notified →
); } // ───────── Speakers (full grid) ───────── function SpeakersPage({ t }) { const [filter, setFilter] = React.useState('all'); const sectors = ['all', ...Array.from(new Set(SPEAKERS.map((s) => s.sector)))]; const filtered = filter === 'all' ? SPEAKERS : SPEAKERS.filter((s) => s.sector === filter); return (
The people
in the room.} sub="Names are filed under wraps until 30 days out — a fairer game for the early-stage founders, the unknowns and the students. What you see below is who they are, what they run, and what they brought to show." /> The unveils,
in front of a live crowd.} />
Filter by sector {sectors.map((s) => ( ))} {filtered.length} / {SPEAKERS.length} speakers
{filtered.map((s) => )}
Are you a speaker?
Submit a talk. We read everything.
Submit a Talk →
); } // ───────── Riyadh page ───────── function Riyadh() { return (
The fastest-growing
science capital on the planet.} sub="Riyadh is at the center of the largest single deployment of capital into AI, biotech and advanced research the modern era has seen. We chose it because it's where the work is happening — and because it sits exactly between the room and the rest of the world." />
{[ ['SOVEREIGN CAPITAL', '$500B+', 'committed to AI, biotech, advanced research and infrastructure under Vision 2030.'], ['ACADEMIC DENSITY', '28', 'PhD-granting institutions within 90 minutes of the venue. KAUST, KFUPM, KSU, KAIMRC and counting.'], ['DIAGNOSTIC INFRASTRUCTURE', '210+', 'specialised research hospitals and clinical-trial sites — among the highest densities in Asia.'], ['VISAS', '90 DAYS', 'on-arrival researcher visa for the duration of the summit. No sponsor required.'], ['CONNECTIVITY', 'GMT+3', 'between Tokyo and Lagos. 6 hours from Mumbai, 7 from SFO, 4 from London.'], ['SAFETY', '#3', 'globally on the GPI 2025 personal-security index. Open until 4am.'], ].map(([tag, n, l], i) => (
{tag}
{n}
{l}
))}
{/* Venue */}
); } // ───────── Partner ───────── function Partner() { const tiers = [ { tag: 'PAVILION', name: 'Anchor a Pavilion', price: 'On request', sub: 'For platforms that want to own a hall.', bullets: [ 'Naming rights on one of the four pillars (Auto · AI · DeSci · AR)', '200m² hero footprint at hall entrance', '4 keynote-stage slots over four days', 'Co-branded press accreditation', 'Sovereign partner desk on Day 4', ], }, { tag: 'EXHIBIT', name: 'Run a Stall', price: 'From $14,000', sub: 'For companies with running platforms.', bullets: [ '36m² or 72m² standard stall, customisable', '8 staff passes · unlimited public day', 'Listing in printed and digital programme', 'Two demo slots on track-stages', '1:1 desk on Founders & Capital day (optional add-on)', ], featured: true, }, { tag: 'TRACK', name: 'Sponsor a Track', price: 'On request', sub: 'For funds, sovereigns, and platforms scaling up.', bullets: [ 'Naming on one of the six format tracks', 'Curate two panels and one keynote', 'Branded networking room for the duration', 'Hackathon prize co-sponsorship optional', 'Co-host the closing dinner', ], }, ]; return (
Your tools deserve
a loud speaker.} sub="The summit floor is where 7,500 of the world's most discerning research buyers, founders, funders and operators will walk past your stall. We're not selling visibility — we're selling proximity to the people who decide what gets bought next." /> Where running platforms
meet the people who buy them.} />
{tiers.map((t) => (
◆ {t.tag}

{t.name}

{t.sub}
{t.price}
    {t.bullets.map((b, i) => (
  • {b}
  • ))}
Talk to us →
))}
{/* Who exhibits */}
{[ ['LAYER 01', 'Compute & Foundation Models', 'AI labs, GPU/inference providers, biology foundation models'], ['LAYER 02', 'Lab Automation', 'Liquid handlers, cloud labs, robotic platforms, autonomous experimentation'], ['LAYER 03', 'Wet-bench Tools', 'Sequencing, synthesis, imaging, microscopy, single-cell'], ['LAYER 04', 'Therapeutics & Diagnostics', 'AI-native drug discovery, AI diagnostics, longevity platforms'], ['LAYER 05', 'Clinic & Care', 'AI doctors, robotic surgery, telemedicine, decentralized trials'], ['LAYER 06', 'Capital, Talent, Policy', 'Funds, sovereigns, training cohorts, regulatory bodies'], ].map(([l, n, d], i) => (
{l}

{n}

{d}

))}
{/* Inquiry form */}
); } function InquiryForm() { const [data, setData] = React.useState({ name: '', org: '', email: '', tier: 'EXHIBIT', note: '' }); const [sent, setSent] = React.useState(false); const onChange = (k) => (e) => setData({ ...data, [k]: e.target.value }); return (
◆ Partner inquiry

Tell us
what you'd ship.

A short note is plenty. We reply within 48 hours, in person, with a calendar invite. No deck required — yet.

{ e.preventDefault(); setSent(true); }} style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 18, }}> {sent ? (
◆ Received
Thanks, {data.name || 'partner'}.
We'll be in touch within 48 hours.
) : ( <>