Files
zeekay 49beb995f8 fix: production audit — security, content, and UX fixes
Security:
- Fix OAuth CSRF bypass: require state match instead of accepting when no state saved
- Remove query-param token fallback (tokens logged by CDN/analytics)
- Move auth token from localStorage to sessionStorage (XSS mitigation)
- Replace upstream model ID 'qwen3-32b' with branded 'zen' in chat widget
- Change analytics person_profiles from 'always' to 'identified_only' (GDPR)
- Replace deceptive auth page (collected + discarded credentials) with clean redirect

Content:
- Fix wrong Twitter handle (@hanaborobyai → @hanzoai)
- Fix privacy policy contradiction (removed "train on your data" claim)
- Remove internal Google Docs URLs from capabilities page
- Replace unverified "$50M Series B" with verified Techstars '17 milestone
- Replace 8 dead '#' news links with real product/resource links
- Fix Navbar "58 papers" → "130+ papers" to match all other surfaces
- Replace "Hanzo L1" (undefined product) with "Zen4 MoDE models" in hero
- Fix AI slop: "harness the power" → "deploy in production", "state-of-the-art" → "production-grade", "cutting-edge" → "frontier"
- Fix solutions page template filler descriptions
- Fix stat inconsistencies: careers AI models 50+ → 45+, help credits $10 → $5
- Fix zen-guard params 1B → 4B (matching canonical spec)
- Fix dead research sub-page links (/alignment, /safety → GitHub papers repos)
- Fix capabilities dead links → real product pages

UX:
- Wire contact form to api.hanzo.ai/v1/contact with Cal.com fallback
- Fix dead buttons on services page (Get Started → /contact, View Case Studies → /case-studies)
- Fix security whitepaper button → "Request Security Documentation" linking to /contact
- Fix help Live Chat button → hanzo.bot
- Fix Cal.com URLs (cal.com/hanzo → cal.com/hanzo/30min)
- Fix Cal.com template literal (${"dark"} → plain string)
- Replace console.error on 404 with analytics event tracking
2026-02-27 10:15:39 -08:00

133 lines
4.7 KiB
TypeScript

"use client";
import { Shield, Lock, Key, UserCheck, Server, FileCheck } from "lucide-react";
import { Button } from "@hanzo/ui";
import { cn } from "@/lib/utils";
export default function PageClient() {
const securityFeatures = [
{
icon: Shield,
title: "Enterprise-Grade Security",
description: "Best-in-class security practices and infrastructure to protect your data and applications"
},
{
icon: Lock,
title: "End-to-End Encryption",
description: "All data in transit and at rest is encrypted using industry-standard protocols"
},
{
icon: Key,
title: "Access Controls",
description: "Fine-grained permissions and role-based access control (RBAC) for team management"
},
{
icon: UserCheck,
title: "Identity & Authentication",
description: "Multi-factor authentication and single sign-on (SSO) support"
},
{
icon: Server,
title: "Data Protection",
description: "Regular backups and disaster recovery protocols to ensure data safety"
},
{
icon: FileCheck,
title: "Compliance",
description: "SOC 2 Type II certified, GDPR compliant, and ISO 27001 certified"
}
];
return (
<div className={cn("min-h-screen transition-colors duration-300", "bg-background text-foreground")}>
<main className="pt-32 pb-16 px-4 sm:px-6 lg:px-8">
<div className="max-w-7xl mx-auto">
<div className="text-center mb-16">
<h1 className="text-4xl font-bold mb-4">
Security First, Always
</h1>
<p className={cn("text-xl max-w-2xl mx-auto", "text-muted-foreground")}>
We prioritize the security and privacy of your data with enterprise-grade protection at every layer
</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{securityFeatures.map((feature, index) => {
const Icon = feature.icon;
return (
<div
key={index}
className={cn(
"border rounded-lg p-6 transition-colors",
"bg-foreground/5 border-border hover:border-border"
)}
>
<div className="flex items-center space-x-4 mb-4">
<div className={cn("p-2 rounded-lg", "bg-foreground/10")}>
<Icon className="h-6 w-6" />
</div>
<h3 className="text-lg font-medium">
{feature.title}
</h3>
</div>
<p className={cn("text-muted-foreground")}>
{feature.description}
</p>
</div>
);
})}
</div>
<div className="mt-16 text-center space-y-8">
<div className={cn(
"rounded-lg p-8",
"bg-gradient-to-r from-white/5 to-white/10"
)}>
<h2 className="text-2xl font-bold mb-4">
SOC 2 Type II Certified
</h2>
<p className={cn("mb-6", "text-muted-foreground")}>
Our security practices and controls have been audited and certified by independent third-party auditors
</p>
<a href="/contact">
<Button
variant="outline"
className={cn(
"text-foreground border-primary hover:bg-accent"
)}
>
Request Security Documentation
</Button>
</a>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<div className={cn(
"border rounded-lg p-6",
"bg-foreground/5 border-border"
)}>
<div className="text-3xl font-bold mb-2">99.99%</div>
<div className={cn("text-muted-foreground")}>Uptime SLA</div>
</div>
<div className={cn(
"border rounded-lg p-6",
"bg-foreground/5 border-border"
)}>
<div className="text-3xl font-bold mb-2">24/7</div>
<div className={cn("text-muted-foreground")}>Security Monitoring</div>
</div>
<div className={cn(
"border rounded-lg p-6",
"bg-foreground/5 border-border"
)}>
<div className="text-3xl font-bold mb-2">100%</div>
<div className={cn("text-muted-foreground")}>Data Encryption</div>
</div>
</div>
</div>
</div>
</main>
</div>
);
}