// ProductModulePage.jsx // // Single template rendering any of the 15 REAL_MODULES entries (declared in // EarlyAccessGate.jsx, loaded before this file) - SPEC-07 Section 2's // "single content registry, no per-page hand-authoring" principle applied // to product detail pages. Adding a 16th real module means adding one // REAL_MODULES entry, not a 16th page file. // // Loaded as a classic (non-module) Babel-transformed script - see // index.html's header comment. React 19 ships no UMD global, so // `window.React` here is the bridge index.html's ESM import sets up; hooks // are called as `React.useState` etc. (fully qualified) for the same // shared-global-scope reason documented in Navbar.jsx. function ProductModulePage({ slug }) { const mod = REAL_MODULES.find((m) => m.id === slug); useDocumentMeta( mod ? `${mod.name} - SkelBiz Manufacturing Operations Platform` : "SkelBiz", mod ? `${mod.tagline} ${mod.blurb}` : "SkelBiz manufacturing operations platform." ); if (!mod) { return ; } const related = REAL_MODULES.filter((m) => m.id !== mod.id).slice(0, 3); return ( <>
← All Modules

{mod.name}

{mod.tagline}

See {mod.name} in a Demo

{mod.blurb}

{mod.painPoint && (

The problem this solves

{mod.painPoint}

)}

What it actually does

{mod.howItWorksDetail && ( <>

How it works

{mod.howItWorksDetail}

)} {mod.useCases && mod.useCases.length > 0 && ( <>

When you'd use this

)}
{mod.faqs && mod.faqs.length > 0 && (

Frequently asked

{mod.faqs.map((item) => (

{item.q}

{item.a}

))}
)}

Works alongside

{related.map((r) => (

{r.name}

{r.blurb}

))}

See {mod.name} on your own data.

A live walkthrough scoped to how you actually work - not a canned script.

Request a Demo
); }