Skip to content

feat(marketing): redesign the T3 Code website - #5457

Open
shivamhwp wants to merge 14 commits into
pingdotgg:mainfrom
shivamhwp:agent/marketing-core-value
Open

feat(marketing): redesign the T3 Code website#5457
shivamhwp wants to merge 14 commits into
pingdotgg:mainfrom
shivamhwp:agent/marketing-core-value

Conversation

@shivamhwp

@shivamhwp shivamhwp commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

The current marketing site does not clearly show how T3 Code works across desktop, web, and mobile, and its download flow does not distinguish release channels well.

This redesign gives the site a product-led story with a real interactive app demo, dedicated desktop and mobile download paths, and a cleaner Latest/Nightly/Dev flow. The embedded demo preserves visitor state, the download data handles long release histories, and the large footer wordmark stays visually neutral across channels.

Visual reference:

Verification:

  • vp test run apps/web/src/demo/fixtures.test.ts apps/web/src/demo/server.test.ts apps/marketing/src/lib/releases.test.ts (22 tests)
  • vp run --filter @t3tools/web typecheck
  • vp run --filter @t3tools/marketing typecheck

Generated with GPT-5.6 in T3 Code through the Codex harness.


Note

Medium Risk
Large marketing/CI surface area plus a workflow that pushes commits to the default branch; release URL rename can break stale imports at build time.

Overview
Redesigns the marketing site around Latest / Nightly / Dev release channels: shared layout adds stage switching (favicon, accent, localStorage), OG/Twitter metadata, and a new nav/footer; download becomes a full-height channel hero with nightly release fetching, platform asset resolution, mobile store links, and a Dev “build from source” path.

Marketing build pipeline now runs build:sidebar-demo plus Playwright capture for demo-states and a WebGL-composited OG image; showcase-spec.json drives homepage feature crops. Legal pages gain an optional simplified layout without the section nav.

CI adds publish_marketing_preview: after iOS/Android dark showcase runs on the default branch, it copies screenshots into apps/marketing/public/mobile-states, writes source.json provenance, and auto-commits to default branch via a GitHub App when images change. README documents mobile app store links; GOOGLE_PLAY_STORE_URL replaces the old Android constant name.

Reviewed by Cursor Bugbot for commit d4ceccf. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Redesign the T3 Code marketing website with stage switching, interactive demo, and platform-aware downloads

  • Overhauls index.astro and download.astro with a new hero, embedded interactive demo iframe, mobile showcase, and product walkthrough sections driven by showcase-spec.json.
  • Adds a release channel switcher (Latest/Nightly/Dev) to the layout, homepage, and downloads page; the selected stage persists to localStorage and is synchronized across the layout, download cards, and the embedded demo iframe via CustomEvent.
  • Download buttons now detect platform (macOS, Windows, Linux, iOS, Android) and resolve direct asset URLs from GitHub releases using the new fetchLatestRelease/fetchNightlyRelease helpers in releases.ts; Dev mode copies a git clone command instead.
  • Builds the web app as a self-contained sidebar demo bundle via vite.demo.config.ts and outputs it to apps/marketing/public/sidebar-demo; a Playwright script at capture-demo-screenshots.mjs generates demo state screenshots and OG images before each dev/build run.
  • Adds an in-browser demo server (server.ts) with a simulated WebSocket endpoint, demo fixture seeding (seed.ts), and stage bridge (stage.ts) so the embedding page can switch the demo stage without reloading.
  • Adds a 'Mobile apps' section to the Connections settings UI and a Mobile apps entry to the README linking to the iOS App Store and Google Play.
  • Risk: ANDROID_PLAY_STORE_URL in site.ts is renamed to GOOGLE_PLAY_STORE_URL; any code referencing the old name will break at build time.

Macroscope summarized d4ceccf.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 88898d87-ff73-4328-aed9-34cfb1ebc1ca

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Aug 5, 2026
Comment thread apps/marketing/src/pages/index.astro Outdated
Comment thread apps/marketing/src/pages/index.astro
Comment thread apps/marketing/src/pages/index.astro Outdated
Comment on lines +239 to +240
desktopSections.forEach((section) => section.toggleAttribute("hidden", isDev));
mobileSection?.toggleAttribute("hidden", isDev);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 High pages/download.astro:239

Selecting the Dev desktop channel hides the Mobile section, so the iOS App Store and Google Play download links disappear until the user switches back to Latest or Nightly. The mobile store links are independent of desktop release assets, so they should remain visible in all channels. Consider removing the mobileSection toggle from applyStage.

    desktopSections.forEach((section) => section.toggleAttribute("hidden", isDev));
-    mobileSection?.toggleAttribute("hidden", isDev);
🤖 Copy this AI Prompt to have your agent fix this:
In file @apps/marketing/src/pages/download.astro around lines 239-240:

Selecting the Dev desktop channel hides the Mobile section, so the iOS App Store and Google Play download links disappear until the user switches back to Latest or Nightly. The mobile store links are independent of desktop release assets, so they should remain visible in all channels. Consider removing the `mobileSection` toggle from `applyStage`.

@macroscopeapp

macroscopeapp Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

2 blocking correctness issues found. Diff is too large for automated approval analysis. A human reviewer should evaluate this PR.

You can customize Macroscope's approvability policy. Learn more.

Comment thread apps/marketing/src/pages/index.astro
}

/* ── Final CTA ────────────────────────────────────────── */
.sec-cta {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium pages/index.astro:2680

.sec-cta is set to display: none with no rule ever restoring it at any breakpoint, so the final CTA section—including its download button, channel picker, and "All downloads" link—is never visible on any viewport. The JavaScript still initializes and updates those controls, but they remain unreachable. Consider removing the display: none declaration or adding a rule that shows the section at the intended breakpoint.

🤖 Copy this AI Prompt to have your agent fix this:
In file @apps/marketing/src/pages/index.astro around line 2680:

`.sec-cta` is set to `display: none` with no rule ever restoring it at any breakpoint, so the final CTA section—including its download button, channel picker, and "All downloads" link—is never visible on any viewport. The JavaScript still initializes and updates those controls, but they remain unreachable. Consider removing the `display: none` declaration or adding a rule that shows the section at the intended breakpoint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant