Files
zeekay 7bf80b399b feat(brand): host-aware landing — zap-proto.io vs zerocopy.app
Single static deploy serves three custom domains; brand swaps client-side
on first effect:

  zap-proto.io          → developer brand ("Infinitely faster.")
  zap-proto.dev         → developer brand
  zerocopy.app          → marketing brand (ZApps, "future of I/O is here")
  zap-protocol.github.io → developer (legacy fallback, 301-target zap-proto.io)

Adds:
- lib/brand.ts: hostname → brand resolver + per-brand copy
- components/brand-hero.tsx: hero swaps tagline/headline/CTA per brand
- components/zapps-pillars.tsx: less-memory / lower-latency / future-proof
- components/protocol-family.tsx: zap-{http,ws,fix,rns,mcp,acp,a2a,base}
  showcase, status badges, links to github.com/zap-proto/<slug>
- public/CNAME: zap-proto.io (canonical apex)

Repo references migrated zap-protocol → zap-proto throughout site code,
docs, MDX. Old org redirects automatically; explicit stub READMEs land
via migration/migrate.sh once org membership is in place.

Build verified: pnpm build → 13 static pages, no errors.
2026-05-06 12:44:59 -07:00

34 lines
811 B
TypeScript

import { source } from '@/lib/source';
import { DocsLayout } from '@hanzo/docs-radix-ui/layouts/docs';
import type { ReactNode } from 'react';
import { Zap } from 'lucide-react';
export default function Layout({ children }: { children: ReactNode }) {
return (
<DocsLayout
tree={source.getPageTree()}
nav={{
title: (
<div className="flex items-center gap-2">
<Zap className="w-5 h-5 text-blue-500" />
<span className="font-bold">ZAP Protocol</span>
</div>
),
url: '/',
}}
links={[
{
text: 'GitHub',
url: 'https://github.com/zap-proto',
external: true,
},
]}
sidebar={{
defaultOpenLevel: 1,
}}
>
{children}
</DocsLayout>
);
}