One full-viewport hero, one signup, one welcome email. Ships in 2–3 days.
Gooism-recommended VJs from the GPortal directory, behind collective approval.
Move the full GPortal app from gportal.wallspace.studio to gooism.org.
Two days after v0.1 was authored, here's what's actually live + the design decisions that landed.
gooism-org Cloudflare Pages live at https://gooism.org and gooism-org.pages.dev.#58e1ff as the sole accent for action / focus / interactive feedback. Proposed direction — aligns with brand-report Option C — Mono + Functional Color. This is what we’re prototyping for review with the collective; not yet a collective-locked decision. Details in §03b below.POST /api/subscribe Pages Function deployed as a v0 stub (validates email, returns success, doesn't yet persist). Resend + D1 wiring is the next concrete task — see §04.Everything below this section was authored in v0.1 — the strategy is unchanged, only the hero and color sections have been updated to reflect what shipped instead of options.
The temptation with a fresh domain is to ship the whole vision. We're not going to.
GPortal — the directory + planner + match engine — already exists at gportal.wallspace.studio. It works. People are using it. It is the incubator. Moving it to gooism.org before the collective has aligned on curation criteria, brand migration, and access policy would import a lot of half-finished decisions onto a brand-new front door.
Instead, gooism.org launches as a single confident landing page + a mailing list. That gives us:
Once those decisions are made and GPortal v0.5 has cut, we run the portal migration as a deliberate, scheduled event — not a default of "well, we own the domain now."
All the operational plumbing is in place. No collective input was needed for this phase — pure infrastructure.
gooism-org deployed; gooism.org and www.gooism.org both bound to it.Technical step-by-step (DNS records, deploy commands, secret management) lives in the gooism-org repo README — not relevant for this review document.
Full-viewport hero, the GOOISM wordmark living in its native habitat (perspective grid, neon line, pure black), one short statement, one email signup, one button. Below the fold: a quiet manifesto, the founders, a footer pointing to the incubator. Nothing else for v1.
Reference target: y.co — full-viewport cinematic quiet. The hero is the page. No nav. No tabs. No scroll-jacking. Just the wordmark, the G mark, signup, and a soft fade as you scroll.
max(viewport-width, viewport-height) × 1.0. Full-bleed corner-to-corner on landscape monitors.prefers-reduced-motion: reduce. Below 720px viewport too (mobile gets clean static hero).Option B (cinematic VJ-set video loop) was deferred and remains a candidate for v2 if the collective wants more "what we do" forward energy. For v1 the brand mark is the centerpiece.
What's being prototyped: monochrome neon + one functional accent. This is the proposal Jack is putting forward; the collective hasn't formally signed off yet.
#000000 — page surface, always pure black (never charcoal).#ffffff — primary copy, the GOOISM wordmark, the JOIN THE LIST button (primary CTA stays white for highest contrast).#b0b0b0 secondary, #707070 muted, #444444 faint (footer chrome, sublabels, version tags).#58e1ff — the sole action accent. Used for: input focus border, link hovers, success-feedback messages, founder name hovers, footer link hovers. Never used for primary CTAs (those stay white).Why cyan specifically:
This is what Jack proposes — pending collective review. The recommendation aligns with brand-report Option C — Mono + Functional Color. If the collective concurs, future palette decisions (including GPortal migration) default to this hierarchy: white = primary CTA, cyan = interactive, mono everywhere else. Open for discussion in the next sync.
[GOOISM wordmark — large, animated] A collective for VJs and visual artists. [ email field ] [ Join the list ] — We send maybe one email a month. Open work, recorded sets, the occasional manifesto. Process is community, community is process. — [ founder strip — 4 small avatars + names ] — Incubating at gportal.wallspace.studio →
Tone: spare, confident, technical-poetic. No "supercharge your VJ career." No "the future of." No exclamation points. Treat the reader as smart and busy.
Stack at a glance: Cloudflare Pages (hosting) + minimal HTML/CSS/JS (no framework needed for v1) + Cloudflare Web Analytics (privacy-respecting, no cookie banner) + Cloudflare Turnstile (bot protection on signup). Implementation details in the gooism-org repo README.
Currently the form on gooism.org accepts an email and shows success — but nothing's persisted yet. Wiring the real backend is the last v1 task. ~2-3 hours of work; no collective decision required.
/api/subscribe) running on Cloudflare's edge.gooism.org/hero) so we can tell apart future signup surfaces.No name, no location, no device fingerprint, no analytics tracking on the form. We own the data — it lives in our Cloudflare D1 database, not in a third-party email provider's silo. Resend has a copy of the email address (because they need it to send) but the relationship is ours.
This goes out automatically on every new signup. Single-opt-in for v1; we can upgrade to double-opt-in later if needed.
Sent from hello@gooism.org via Resend. Plain-text fallback included. Reply prompt invites the same fields the old Google Form collected (name, location, practice) — reframed as a reply rather than a structured form, which felt more Gooism-shaped.
The welcome email's "From" address is hello@gooism.org, so replies route there. Right now hello@gooism.org isn't a real mailbox — replies bounce silently or get routed wherever Resend's catch-all sends them (which currently lands in Jack's gmail because his gmail owns the Resend account).
To handle replies properly + give the collective real name@gooism.org addresses (which we'll want for outreach, booking conversations, press contact, etc.), we need to pick an email provider. Three realistic options:
hello@gooism.org, jack@, fetz@, etc. to existing personal addresses. Works today, costs $0. Limitation: outbound email from @gooism.org needs a separate solution (Resend already covers transactional like welcome emails; replies and outreach would still come from personal addresses).
Open questions for the collective:
hello@ (shared/forwarding inbox for general inquiries), one address per active founder (jack@, fetz@, kevin@, andrew@), and maybe bookings@ as a future shared inbox.hello@: forward to all founders by default? Round-robin? One designated point person rotating monthly? Anything but routing every reply to Jack alone.Implementation reference (database schema, Pages Function code, step-by-step Resend domain verification, etc.) lives in the gooism-org repo README under "Phase 1.5 wire-up." Not included here — this doc is for review, not engineering.
Once v1 is live and the collective is set on inclusion criteria, gooism.org grows a curated wing. This is the focused initial product the collective discussed.
A curated subset of the GPortal VJ directory. Not everyone in GPortal — only those the collective has formally recommended. Page lives at gooism.org/vjs (or gooism.org/recommended). Each profile is a thoughtful, full-page treatment, not a card-grid entry. Quality over quantity.
Lightweight in v1 of this phase: a private Notion or Linear board + a quarterly sync. Heavier later: a curation queue inside GPortal itself, with vote/approval state, exported to gooism.org. The MVP doesn't need software for this — humans + a spreadsheet works for the first 20 members.
Curated profiles are served from gooism.org but read from the same GPortal D1 (cross-domain via the Cloudflare bindings or via a public read-only API). The "recommended" boolean lives on the GPortal profile and is set by an admin. gooism.org filters to recommended = true.
Brand: full Gooism monochrome system. No shared chrome with GPortal product UI — these are marketing profiles, not operational profiles.
After: brand decisions made, curated wing live, GPortal v0.5+ shipped, collective consensus that the time is right.
gportal.wallspace.studio → gooism.org/portal or portal.gooism.org.gooism.org (currently .wallspace.studio only)GPORTAL_DB, AUTH_DB, MEDIA_BUCKET).gooism.org/portal as a Cloudflare Worker route → existing OpenNext deployment.wallspace.studio to .gooism.org (members re-authenticate once)gportal.wallspace.studio/* → gooism.org/portal/* (301)v0.1 listed risks looking forward. v0.2 marks which ones landed clean and which are still active.
GoDaddy → Cloudflare nameserver swap landed without inbound mail issues (no @gooism.org mailboxes were live, so no MX collision). Zone Active in <1 hour. Parking IPs removed; only canonical A/CNAME records remain.
Always Use HTTPS on, HSTS enabled (max-age 6 months, includeSubDomains), No-Sniff header, SSL/TLS mode "Full (strict)". Cert auto-issued by Cloudflare via Google Trust Services. The "Not Secure" failure mode that was theoretically possible is now structurally prevented.
Open question in v0.1 was whether the animated wordmark hero (Option A) would actually feel right or read as gimmicky. Prototype shipped, runs at 60fps on a 16K-particle G with cyan wake on mouse, and reads as on-brand atmospheric rather than busy. Risk closed.
The prototype demonstrates Option C — Mono + Functional Color (cyan accent) — but the collective hasn't formally chosen. If Option A (pure mono) wins, the cyan accents come out. If Option B (mono + cyan everywhere) wins, the functional-color reservation softens. Either redo is small (~1-2 hr of CSS) because the cyan is centralized in CSS variables. Severity dropped from Medium → Low because the prototype is reversible.
The signup form's POST endpoint is currently a v0 stub that returns success without persisting. Real email capture needs Resend domain verification (MX/SPF/DKIM in Cloudflare DNS), API key as Pages secret, and the stub replaced with the real D1 + Resend implementation. ~2-3 hours of work; blocking only the actual mailing-list functionality, not the v1 site experience. Subscribers who sign up before this lands aren't captured.
Pages free tier: 500 deploys/month, unlimited bandwidth, no concurrent build limits. D1 free tier: 5 million reads/day, 100k writes/day. Resend free: 3,000 emails/mo. All comfortable for v1 traffic. If launch goes viral and we exceed Resend free, upgrade is $20/mo.
The curated VJ wing depends on the collective agreeing on inclusion criteria. If that conversation drags, Phase 2 stalls. Mitigation: Phase 1 (landing + email) doesn't depend on Phase 2 — it's already shipped on its own; the curation conversation can breathe.
New domain has zero authority. We're not doing SEO in v1 (audience is collective + invited contacts). When Phase 2 launches, we'll add semantic markup, OG images, canonical links, sitemap. Don't spend cycles on SEO in v1.
Status update against the v0.1 effort table. Most of v1 is done; what remains is the real email capture path.
| Task | Status | Effort | Owner |
|---|---|---|---|
| DNS delegation + Cloudflare zone setup | Done | 30 min | Jack |
New ~/Downloads/gooism-org/ repo scaffold + Pages project | Done | 30 min | Claude |
| Hero animation — particle G with mouse repulsion | Done | 4–6 hr | Claude (with Jack on direction) |
| Signup form + Turnstile integration | Form done · Turnstile pending | 2 hr | Claude |
| Resend account + domain verification + DNS records | Pending | 1 hr | Jack (Resend signup) + Claude (DNS) |
| D1 table + Pages Function for /api/subscribe | v0 stub done · D1 + real impl pending | 2 hr | Claude |
| Welcome email template + send flow | Pending | 1 hr | Claude |
| Manifesto + founders block + footer copy | Done | 2 hr | Jack drafts, Claude implements |
| Mobile polish + cross-browser test | Responsive baseline · deeper testing TBD | 2 hr | Claude |
| Collective review pass + revisions | Ongoing | iterative | Collective |
| Phase 1a (site + brand) shipped — https://gooism.org live | Live | ~10 hr to date | — |
| Phase 1b (Resend + D1 + Turnstile) — remaining work | Open | ~2–3 hr | Jack signs up Resend, Claude wires |
Original plan: get DNS done first, then ship Phase 1 after brand sign-off. Reality: Phase 0 + most of Phase 1 ran in parallel and are live for review. Final wiring and collective input remain.
functions/api/subscribe.ts with real persistence (D1 + Resend audiences + welcome email), and adds Cloudflare Turnstile to the form for bot protection. No collective input needed — operational.Bottom line: the v1 surface (gooism.org) is live for review, infrastructure is complete, and the only remaining v1 work is wiring the email backend. Phase 2 + 3 wait on collective decisions, not on infrastructure.