Launch Plan & Strategy · v0.2 · For Collective Review

gooism.org

DNS active. Prototype live. Particle-G hero shipped. Mailing list mechanism in place (v0 stub — Resend wiring next). Portal migration roadmap unchanged.

Updated 2026-05-08 · v0.1 → v0.2 · Read time ~12 min
Phase 1 · Now

Landing + email list

One full-viewport hero, one signup, one welcome email. Ships in 2–3 days.

Phase 2 · Soon

Curated VJ wing

Gooism-recommended VJs from the GPortal directory, behind collective approval.

Phase 3 · Later

Portal migration

Move the full GPortal app from gportal.wallspace.studio to gooism.org.

§ 00 · What changed in v0.2

Status update — 2026-05-08

Two days after v0.1 was authored, here's what's actually live + the design decisions that landed.

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.

§ 01 · Strategy

Why "small landing" is the right v1

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."

§ 02 · Phase 0 — Infrastructure

DNS + hosting + HTTPS — done

All the operational plumbing is in place. No collective input was needed for this phase — pure infrastructure.

Technical step-by-step (DNS records, deploy commands, secret management) lives in the gooism-org repo README — not relevant for this review document.

§ 03 · Phase 1 — gooism.org v1 landing

A homepage that does one thing well

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.

Visual direction (proposed — was Option A in v0.1, prototyped for review)

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.

What's been prototyped — particle G hero with mouse repulsion. Inspired by gadisassoon.com/#contact. The Gooism G mark PNG is pixel-sampled (every 6th pixel above luminance 150) into ~16,000 white particles. Each particle has a "home" position (its sampled pixel) and a current position. Spring force pulls toward home; mouse cursor applies a localized repulsion within ~60px radius. Velocity damps each frame. Runs at 60fps in pure canvas 2D, no libraries. The canvas is fixed to the viewport so the G stays put as the page scrolls — manifesto, founders, and footer panels glide over it with light backdrop-blur, keeping the G visible the whole way down. This is what's live for review at gooism.org — pending collective input.

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.

§ 03b · Color schema (proposed — brand-report Option C, pending collective review)

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.

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.

Copy (proposed v1)

[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.

§ 04 · Phase 1 — mailing list

How signups will work

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.

What it does, in plain English

What we collect

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.

Why this stack

Welcome email — current draft

This goes out automatically on every new signup. Single-opt-in for v1; we can upgrade to double-opt-in later if needed.

Welcome email preview — black background, GOOISM wordmark, You're on the list, monthly cadence note, reply prompt asking for name + location + practice

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.

Inbound replies — needs collective decision

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).

Note from Jack: these shouldn't all funnel to me long-term. I’m not great at email turnaround and the collective deserves replies faster than my inbox can manage. Whatever we set up should distribute — or at least not make me the single point of failure.

@gooism.org email addresses — for collective discussion

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:

  1. Google Workspace — full Gmail + Drive + Calendar + Meet under @gooism.org. Most familiar, integrates with everyone's existing Google logins.
    • Business Starter: $6/user/month (~$72/user/year). 4 founders = ~$288/year.
    • Business Standard: $12/user/month (~$144/user/year). 4 founders = ~$576/year. Adds Meet recordings + more storage.
    • Recommended tier: Starter. We don't need the heavier features yet.
    • Free for verified non-profits. Google for Nonprofits gives Workspace Business Starter at $0/user/month for verified 501(c)(3) organizations. Once Gooism completes nonprofit setup (see Cece's strategy report linked below), the recurring cost goes to zero — making Workspace the obvious long-term answer.
  2. Cloudflare Email Routing (free) — inbound only. Forwards 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).
  3. Zoho Mail / Fastmail / Proton — middle ground. Zoho has a free tier for up to 5 users on a custom domain; Fastmail and Proton are paid (~$3-5/user/month). Less familiar than Gmail, owned by smaller companies — pros and cons either way.

Open questions for the collective:

Reference — Nonprofit Strategy. Cece (nonprofit CEO) put together a full strategic recommendation on the dual-entity (501(c)(3) + for-profit LLC) path for the VJ collective: structure, money flow, operational rules, recommended tooling. This is the document the email-cost decision should be sequenced against — if nonprofit status is on a near-term path, paying for Workspace for a few months as a bridge is fine; if it's further out, the calculus is different.

→ Read the Nonprofit Strategy report  ·  original PDF

Pairs with the existing Proposed Org Structure doc on wallspace.studio. Both are still proposals pending collective + legal review.

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.

§ 05 · Phase 2 — curated VJ wing

"Gooism Recommended" subset

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.

What it is

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.

Inclusion criteria (proposed — collective decides)

Curation workflow

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.

Tech

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.

§ 06 · Phase 3 — full portal migration

Move GPortal to gooism.org

After: brand decisions made, curated wing live, GPortal v0.5+ shipped, collective consensus that the time is right.

What changes

What does NOT change

Sequence (when the time comes)

  1. Add gooism.org/portal as a Cloudflare Worker route → existing OpenNext deployment
  2. Update GPortal's auth cookie domain from .wallspace.studio to .gooism.org (members re-authenticate once)
  3. Push a redirect from gportal.wallspace.studio/*gooism.org/portal/* (301)
  4. Update outbound links in all comms, docs, social bios
  5. After 6 months of stable redirect traffic, sunset the wallspace subdomain
§ 07 · Risks & open questions

What's resolved, what's still open

v0.1 listed risks looking forward. v0.2 marks which ones landed clean and which are still active.

Resolved since v0.1

Resolved
DNS migration completed cleanly.

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.

Resolved
HTTPS hardening shipped.

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.

Resolved
Particle hero proven viable.

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.

Still open

Low
Brand decisions still pending collective sign-off.

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.

Low
Email sender domain — Resend not yet wired.

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.

Low
Cloudflare free tier limits.

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.

Medium
Unclear curation criteria slows Phase 2.

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.

Low
SEO.

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.

§ 08 · Effort estimate

v1 progress — what's shipped, what's left

Status update against the v0.1 effort table. Most of v1 is done; what remains is the real email capture path.

TaskStatusEffortOwner
DNS delegation + Cloudflare zone setupDone30 minJack
New ~/Downloads/gooism-org/ repo scaffold + Pages projectDone30 minClaude
Hero animation — particle G with mouse repulsionDone4–6 hrClaude (with Jack on direction)
Signup form + Turnstile integrationForm done · Turnstile pending2 hrClaude
Resend account + domain verification + DNS recordsPending1 hrJack (Resend signup) + Claude (DNS)
D1 table + Pages Function for /api/subscribev0 stub done · D1 + real impl pending2 hrClaude
Welcome email template + send flowPending1 hrClaude
Manifesto + founders block + footer copyDone2 hrJack drafts, Claude implements
Mobile polish + cross-browser testResponsive baseline · deeper testing TBD2 hrClaude
Collective review pass + revisionsOngoingiterativeCollective
Phase 1a (site + brand) shipped — https://gooism.org liveLive~10 hr to date
Phase 1b (Resend + D1 + Turnstile) — remaining workOpen~2–3 hrJack signs up Resend, Claude wires
§ 09 · What happens next

Where we are, what's left

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.

  1. ✓ Phase 0 — DNS migration: complete. gooism.org nameservers active on Cloudflare. HTTPS hardened. No collective input was needed for this — pure infrastructure.
  2. ✓ Phase 1a — site + brand prototype: live for review. gooism.org serves the particle G hero, signup form (stub), manifesto, founders, and footer. Same particle engine and cyan accents are now applied to this launch plan and the brand report — so the collective can see the proposed system in three places before signing off.
  3. ○ Pending — collective review on the brand-report's Q.01–Q.06. Particularly Q.02 (migration option). The prototype implements Jack's proposed direction (Option C); the collective hasn't formally weighed in yet. Read the brand report, react in the next sync, push back or concur. Outcome shapes whether any redo is needed (small if so — most cyan is in CSS vars).
  4. ○ Pending — Phase 1b: Resend wiring. Real email capture needs ~2–3 hours: Jack signs up at resend.com + verifies gooism.org as sender domain, Claude adds the DNS records to Cloudflare, replaces the v0 stub in 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.
  5. ◦ Phase 2 — curated VJ wing: still paper. Blocked on the collective agreeing on inclusion criteria for "Gooism Recommended" VJs. Doesn't gate v1 — gooism.org keeps running as landing-only until criteria + curation workflow exist.
  6. ◦ Phase 3 — full GPortal migration to gooism.org: still paper. Blocked on Phase 2 being live and the collective deciding GPortal's brand direction (depends on Q.02 outcome).

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.