mirror of
https://github.com/hanzo-apps/network.git
synced 2026-10-30 14:41:02 +00:00
0.3.62 still loaded GA4 and the Meta Pixel for a visitor sending Global Privacy Control outside the eu, holding only ad personalization off. From 0.3.63 GPC or Do Not Track loads no platform in any region. 0.3.66 also lets an eu visitor who accepts reach Meta, and 0.3.65 adds the audience events. Every export Consent and Measure import is unchanged.
4.1 KiB
4.1 KiB
hanzo.network
Marketing site for Hanzo Network, the decentralized AI compute marketplace (hanzo.network). Provides the public-facing site for distributed GPU compute, AI inference, and provider marketplace features.
Stack
- React 18 + TypeScript (Vite 5, SWC)
- React Router v6 (client-side routing)
- Tailwind CSS v4 + Radix UI primitives
- Framer Motion (animations), Three.js (3D)
Structure
src/
App.tsx # Root router -- NetworkLanding as homepage
pages/
NetworkLanding.tsx # Homepage (/) -- GPU compute marketplace landing
... # Shared pages (same as other Hanzo sites)
components/ # Shared component library
Key Routes
/-- NetworkLanding (decentralized compute: GPU marketplace, pricing, provider network)- All other routes -- Shared product/marketing/account pages from common codebase
Commands
pnpm install
pnpm dev # Vite dev server
pnpm build # Production build to dist/
node scripts/check.mjs # the gate CI runs over dist/
pnpm preview
pnpm lint
NetworkLanding Focus
The homepage highlights:
- Distributed GPU compute (training + inference)
- Cryptographic verification of workloads
- Decentralized P2P infrastructure (no single point of failure)
- Instant scaling (1 to 1000 GPUs)
- Global edge network (sub-100ms latency)
- Provider marketplace (contribute idle compute, set prices)
- Stats: 100K+ GPU hours, 50+ regions, 99.9% SLA, $0.10/GPU-hour
Serving chain
push to main (hanzo-apps/network, GitHub is home)
-> .github/workflows/cicd.yml hanzoai/ci build.yml@v2, reads hanzo.yml
test: pnpm build + scripts/check.mjs over dist/
site: slug `network`, dir dist -> Sites plane (api.hanzo.ai/v1/projects)
-> s3://hanzo-sites/hanzo/network org hanzo (hanzo-apps maps to it) + slug
-> hanzoai/ingress staticFiles universe infra/aws/routes/sites.yaml,
hanzo-network-static, spaMode (deep links
reach index.html for the router)
No image and no pod. Cloudflare proxies hanzo.network to the AWS balancer.
Sign-in, CTAs, measurement
- Sign-in is hanzo.ai's page:
LOGINinsrc/components/Try.tsx(https://hanzo.ai/login, which goes on to pay)./login,/signup,/account/*,/dashboard,/user-profileand/organization-profilerenderAway, which replaces the location with it. Nothing links to hanzo.id. - Every call to action is
<Try>: it reads "Try Hanzo" and carries the visitor's anonymous id to hanzo.ai (@hanzo/eventlink) while Analytics is allowed. - Measurement is @hanzo/event, mounted by
Measureinsrc/components/Measure.tsx: the stream to api.hanzo.ai/v1/event (one pageview per route) and the tag manager, which loads GA4 and the Meta Pixel from projectnetwork's tag set (/v1/project/tags?key=pk-YJ2e…) as cloud's rule allows (@hanzo/event 0.3.66: Global Privacy Control loads neither). Both name that project's key; before @hanzo/event 0.3.58 the tag request carried none and got no tags, and the stream was filed under hanzo.ai's project. No platform id lives in this repo;scripts/check.mjsfails a build whose index.html names one. The stream is first party and runs for every visitor;Consent(this site's Tailwind copy of @hanzo/ui/consent: bar, Manage preferences sheet, Accept all, × for essential only) words and draws what @hanzo/ui's says and draws, by the rule cloud serves (@hanzo/eventconsentPolicy().mode): eu the bar and opt-in sheet, us_privacy no bar and an opt-out sheet saved as each switch moves, global a notice whose × records it seen. "Your Privacy Choices" (California's icon) is in the footer and, on a page whose footer has none (the landing), fixed to the foot of the window. Theme tokens for every colour and state, 12px buttons in a 16px card, 13px type. - API calls go to api.hanzo.ai/v1 only.
Notes
- Shares the same component library and routes as hanzo.app, hanzo.id, hanzo.one, and sensei.group. Only
NetworkLanding.tsxandindex.htmlmetadata are unique. - Brand color is cyan (#06b6d4) in the dev console message, vs red for other Hanzo sites.