mirror of
https://github.com/hanzo-apps/industries.git
synced 2026-11-02 21:21:46 +00:00
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
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
"use client";
|
|
|
|
import { useEffect } from "react";
|
|
import { Button } from "@hanzo/ui";
|
|
import { ExternalLink } from "lucide-react";
|
|
|
|
export default function PageClient() {
|
|
useEffect(() => {
|
|
// Auto-redirect after 2 seconds
|
|
const timer = setTimeout(() => {
|
|
window.location.href = "https://hanzo.id";
|
|
}, 2000);
|
|
return () => clearTimeout(timer);
|
|
}, []);
|
|
|
|
return (
|
|
<div className="min-h-screen flex items-center justify-center px-4 bg-background">
|
|
<div className="max-w-md w-full space-y-8 text-center">
|
|
<div>
|
|
<h2 className="mt-6 text-3xl font-extrabold text-foreground">
|
|
Sign in to Hanzo
|
|
</h2>
|
|
<p className="mt-4 text-muted-foreground">
|
|
Authentication is handled securely through Hanzo ID.
|
|
You will be redirected automatically.
|
|
</p>
|
|
</div>
|
|
<div>
|
|
<a href="https://hanzo.id">
|
|
<Button className="w-full bg-primary text-primary-foreground hover:bg-primary/90">
|
|
Continue to Hanzo ID <ExternalLink className="w-4 h-4 ml-2" />
|
|
</Button>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|