Skip to content

fix(showcase): resolve pod id at build (dead 'Watch a live room' CTA) + button contrast - #555

Merged
samxu01 merged 3 commits into
mainfrom
showcase-fix
Jul 2, 2026
Merged

fix(showcase): resolve pod id at build (dead 'Watch a live room' CTA) + button contrast#555
samxu01 merged 3 commits into
mainfrom
showcase-fix

Conversation

@samxu01

@samxu01 samxu01 commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

The public showcase was dead in production — "Watch a live room" rendered "This room isn't public". Found while auditing for a screenshot refresh.

Root cause

The deployed frontend requested /api/showcase/__SHOWCASE_POD_ID__ — the literal placeholder. V2Showcase reads process.env.REACT_APP_SHOWCASE_POD_ID, but vite's define: { 'process.env': {} } clobbers all process.env reads; only REACT_APP_API_URL had an explicit passthrough (the documented apex-domain fix), so the showcase id fell through to its '__SHOWCASE_POD_ID__' sentinel. The API + pod are healthy (publicRead:true, 4 members) — only the client-side id substitution was broken.

Fix

  • vite.config.ts — add 'process.env.REACT_APP_SHOWCASE_POD_ID' to define (Dockerfile + CI already pass it as a build arg/env; line 14/17 of the Dockerfile).
  • v2-showcase.css.v2-showcase__btn--primary rendered dark text on blue (the .v2-root a { color: inherit } specificity trap, same as landing/login). Re-asserted with a .v2-root prefix → "Sign up to join" / "Start your own room" compute white (verified live).

Post-deploy I'll confirm commonly.me/v2/showcase resolves the real "Commonly Engineering" room.

🤖 Generated with Claude Code

lilyshen0722 and others added 3 commits July 1, 2026 20:27
… contrast

The public "Watch a live room" CTA was dead in production — it rendered "This room
isn't public" because the deployed frontend requested
`/api/showcase/__SHOWCASE_POD_ID__` (the literal placeholder). Root cause: vite's
`define: { 'process.env': {} }` clobbers all process.env reads, and only
REACT_APP_API_URL had an explicit passthrough — REACT_APP_SHOWCASE_POD_ID did not,
so V2Showcase fell back to the '__SHOWCASE_POD_ID__' sentinel. (Same trap the
API_URL comment already documents.) The showcase API + pod are fine — publicRead:true,
4 members; only the client id substitution was broken.

- vite.config.ts: add `'process.env.REACT_APP_SHOWCASE_POD_ID'` to `define` (the
  Dockerfile + CI already pass it as a build arg/env).
- v2-showcase.css: `.v2-showcase__btn--primary` rendered dark-on-blue — the
  `.v2-root a { color: inherit }` (0,1,1) trap beat the single-class #fff rule.
  Re-assert with a `.v2-root` prefix (0,2,0). "Sign up to join" / "Start your own
  room" now compute white (verified live).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MnRCAFgjrrGZxo9VRCmCm9
…erged #542

The README pointed its real-work proof at PR #503, which was closed/reverted (the
stale-base squash-merge incident). The live showcase pod ("Commonly Engineering")
actually features PR #542 — Cody extending a Cloudflare-aware rate-limit fix across
the auth/uploads/showcase routes, with Theo reviewing. Point both README references
at #542 so the marketing claim matches the real, merged, showcase-featured exchange.
 to #542

Consistent with the README re-anchor — link a merged, live PR instead of the
closed/reverted one.
@samxu01
samxu01 merged commit 9cdfb51 into main Jul 2, 2026
11 checks passed
@samxu01
samxu01 deleted the showcase-fix branch July 2, 2026 03:38
samxu01 added a commit that referenced this pull request Jul 2, 2026
…exchange (#556)

The old marketing shot was anchored to the reverted #503 story. Recaptured from the
now-working public showcase (fixed in #555): the real PR #542 thread — founder flags
that routes/showcase.ts still keys its rate-limiter on req.ip; Theo triages; Cody
patches it (8e484cd) swapping in cloudflareIpRateLimitKeyGenerator across all three
routes; Theo reviews with real depth (shared ipRateLimit.ts reduces duplication, the
CJS/ESM module.exports shim is intentional) and ships it.

Matches the re-anchored README/agent-docs (#542, not #503). Both copies updated
(screenshots/ for README, assets/landing/ for the bundled hero). Captured from
commonly.me/v2/showcase.


Claude-Session: https://claude.ai/code/session_01MnRCAFgjrrGZxo9VRCmCm9

Co-authored-by: Lily Shen <ls111@rice.edu>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants