/* CX Defense — Technology page · product lineup */ const { Nav, Rule, PageHero, Banner, CTA, Footer } = window; const PRODUCTS = [ { flip: false, img: 'assets/img/network-globe.png', kind: 'Digital Investigation', status: ['live', 'Live'], h: 'Specter Intel', tag: 'Show how you know what you know.', p: 'An investigation platform for OSINT and financial-crime work. Specter brings reconnaissance, entity mapping, evidence management, and reporting into one case-centred workspace — so analysts aren\u2019t juggling browser tabs, spreadsheets, and disconnected tools.', feats: [ 'Domain and IP intelligence, scam tracing, and blockchain analysis in one workspace', 'A relationship graph that holds the full picture of a case', 'Evidence filed with integrity; reports structured to withstand real scrutiny', 'For fraud investigators, compliance teams, and independent analysts — serious capability without enterprise complexity', ], }, { flip: true, img: 'assets/img/sphere-defense.png', kind: 'LLM & SQL Security', status: ['dev', 'In Development'], h: 'CXGuard', tag: 'Detection is advisory. Control is the guarantee.', p: 'An evidence-first security layer for applications that connect language models to real authority — tools, databases, documents, and outbound channels. Rather than trying to recognise every malicious prompt, CXGuard puts the real guarantee in deterministic control over where untrusted data is allowed to flow.', feats: [ 'PromptGuard — provenance / taint tracking, trust boundaries, tool-call controls, and DLP / egress checks', 'SQLGuard — parser-based SQL policy enforcement and SQLi detection, correlated across LLM and database', 'Evidence layer — hash-chained audit logs with external anchors and optional RFC-3161 timestamping', 'Untrusted data cannot silently become trusted, reach a privileged action, or leave without a deterministic check', ], }, { flip: false, img: 'assets/img/horizon-beam.png', kind: 'Threat & News Intelligence', status: ['avail', 'Built in the UK'], h: 'CyberProof', tag: 'What you read. What you acted on. What you can prove.', p: 'A local-first cyber threat and news-intelligence platform. CyberProof continuously collects external sources, ranks what actually matters by what\u2019s being exploited in the real world, and produces an auditable record of every decision your team makes along the way.', feats: [ 'Collects continuously — 200+ sources, the full CISA KEV catalogue, and European CERT advisories, hashed at capture', 'Ranks by what\u2019s exploited, not just what\u2019s severe — a deterministic, reproducible score, no black box', 'Proves it — an append-only, hash-signed evidence chain (SHA-256 + HMAC), verifiable offline by a third party', 'Self-hosted with zero data egress; sealed mode runs against a local model only — nothing leaves the machine', ], }, { flip: true, img: 'assets/img/ledger-archive.png', kind: 'Website Compliance', status: ['live', 'Live'], h: 'CXComply', tag: 'See your site through the eyes of a regulator.', p: 'Website compliance audited from the outside in. CXComply launches a real browser to observe exactly what a visitor — or a regulator — would encounter, then turns what it finds into a clear, actionable report.', feats: [ 'Goes beyond code — checks whether your cookie banner\u2019s \u201creject\u201d button actually works', 'Traces data flows across borders as they happen', 'Scrutinises your privacy policy against UK & EU GDPR, India\u2019s DPDP Act, Australia, and US state law', 'Every issue backed by evidence and a practical fix — from compliance confusion to clarity, and proof', ], }, ]; const CREDS = [ ['§', 'Privacy by Design', 'Data protection principles engineered into every system from the first line of architecture — not appended afterwards.'], ['◆', 'Human Oversight', 'Automation does the mechanical work; engineers make the judgements. Every finding that matters is reviewed by a person who signs their name to it.'], ['✓', 'Evidence Chain', 'Findings hashed, timestamped, and tamper-evident from the moment of collection — so every conclusion can be traced back to its source.'], ]; function Product({ p }) { const img =
; const body = (
{p.kind}
{p.status[1]}

{p.h}

{p.tag &&
{p.tag}
}

{p.p}

); return (
{p.flip ? <>{body}{img} : <>{img}{body}}
); } function App() { return (
); } ReactDOM.createRoot(document.getElementById('root')).render();