Skip to content
Hook-Me-AppPublic

About

HookMeApp marketing site — Vite + Three.js static site, deployed on Cloudflare Pages

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

HookMeApp Website

Marketing site for hookmeapp.com — a local services marketplace launching in Chicago, built around payment-verified reviews rather than paid placement.

Stack: Vite 8 · TypeScript · Three.js (vanilla, no frameworks) → static build → Cloudflare Pages. Art direction: "The Workshop, photographed" — one WebGL stage for the hero tableau (soft-lacquer tools + verified-seal finale) and a seal reprise at the waitlist; the rest of the page is editorial DOM. All 3D objects are procedural (no external model assets).

Quick start

npm install
npm run dev        # local dev server
npm run build      # type-check + build to dist/
npm run preview    # preview the production build

Site content

  • public/badge.png — the verified-seal emblem artwork (brand asset), struck onto the 3D coin in the hero finale and the waitlist reprise.
  • docs/content-plan.md — what goes on the site, section by section, with drafted copy and [WIKI] flags for claims to verify against the product wiki (wiki.platformtoolsmith.com — Google SSO protected).
  • docs/kimi-k3-prompt.md — the full prompt to paste into Kimi K3 to generate the interactive site (3D hero, WebGL shaders, spring physics, proximity effects).

After generating with Kimi, replace src/main.ts, src/style.css, index.html and add the modules per the prompt's deliverable list, then npm run build must pass.

Deploy to Cloudflare Pages

Prereq: wrangler CLI (already installed) + a Cloudflare account with the hookmeapp.com zone.

# 1. Authenticate (interactive — opens a browser)
wrangler login

# 2. Create the Pages project (once)
wrangler pages project create hookme-site --production-branch main

# 3. Build + deploy
npm run build
wrangler pages deploy dist --project-name hookme-site

# 4. Attach the custom domain (or do it in the dashboard)
wrangler pages project list          # confirm project
# Dashboard: hookme-site → Custom domains → hookmeapp.com (and www)

CI (optional)

.github/workflows/cloudflare-pages.yml auto-deploys on push to main using the official Cloudflare Pages action. To enable it, add two repo secrets:

  • CLOUDFLARE_API_TOKEN — token with Cloudflare Pages:Edit permission (dash.cloudflare.com → My Profile → API Tokens)
  • CLOUDFLARE_ACCOUNT_ID — your account ID (dashboard home → right sidebar)

Without the token, the workflow is skipped — manual wrangler pages deploy still works.

Pages Functions (waitlist + admin)

functions/api/waitlist.ts handles signups: Turnstile verify → per-IP throttle → email dedupe → KV write (key = email, so re-subscribes are free to detect). The widget renders on the form via src/waitlist.ts (sitekey is public; the secret lives server-side).

# Local dev (test keys already in .dev.vars; dummy token always passes):
npm run build
wrangler pages dev dist
curl -X POST localhost:8788/api/waitlist -H 'Content-Type: application/json' \
  -d '{"name":"T","email":"t@example.com","turnstileToken":"XXXX.DUMMY.TOKEN.XXXX"}'

Production secrets + bindings (set once on the Pages project, not in git):

Name Where Value
WAITLIST_KV binding KV namespace hookme-waitlist (id in wrangler.toml)
TURNSTILE_SECRET secret widget secret from dash.cloudflare.com → Turnstile
WAITLIST_ADMIN_TOKEN secret a long random string you generate
wrangler pages secret put TURNSTILE_SECRET
wrangler pages secret put WAITLIST_ADMIN_TOKEN

View/export signups (bearer-token protected):

curl -H "Authorization: Bearer \$WAITLIST_ADMIN_TOKEN" \
  https://hookme-site.pages.dev/api/waitlist/admin
curl -H "Authorization: Bearer \$WAITLIST_ADMIN_TOKEN" \
  'https://hookme-site.pages.dev/api/waitlist/admin?format=csv'

The old mailto: fallback still shows only when the endpoint itself is unreachable.

About

HookMeApp marketing site — Vite + Three.js static site, deployed on Cloudflare Pages

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages