Skip to content

feat(website): Android public launch — Play download on /app - #346

Draft
acharlop wants to merge 2 commits into
mainfrom
feat/android-public-launch
Draft

acharlop wants to merge 2 commits into
mainfrom
feat/android-public-launch

Conversation

@acharlop

@acharlop acharlop commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Don't merge until the Play listing is public. Merge = website deploy = Play badge goes live on /app.

  • /app: Android tile becomes a real Google Play download; "in testing" copy gone
  • /android-testers* → 302 to /app; birthday tester page deleted
  • No app binary change. The build already on the closed track gets promoted to production in Play Console

Rollback: set PUBLIC_APP_ANDROID_LAUNCHED=false on Netlify and redeploy.

Part of #98 📋 · Linear WHO-8

For AI

Changes

  • packages/env/src/website.ts: PUBLIC_APP_ANDROID_LAUNCHED default false → true. The flag stays as a kill switch, so /app's tester-tile branch still works if it gets set to false.
  • apps/website/src/pages/app.astro: meta description was hardcoded "Android is in testing". It now depends on the flag.
  • apps/website/netlify.toml: 302 for /android-testers and /android-testers-birthday-present → /app.
  • apps/website/tests/e2e-ssr/app.spec.ts: asserts the launched state (both store links, no android-test tile, Android UA leads with Google Play).
  • Deleted android-testers-birthday-present.astro + its OG image, indexation and smoke-test entries. The netlify redirect covers old links.
  • Comments in .env.example, docs/DESIGN.md, constants/app*.ts and playwright.ssr.config.ts updated.

Verified locally

  • oxfmt, oxlint, website astro check and vitest (387) all green.
  • SSR e2e: 17/17 pass. The rendered /app description reads "Download WhoCards on iOS and Android…".
  • Not checked: https://play.google.com/store/apps/details?id=com.whocards.mobile returns 404 until the listing goes public. Check it resolves before merging.

Deliberately left out

  • Tester funnel deletion (pages, constants/android-testers, tester env vars, tester emails). The completion thank-you email still has to go out, so that cleanup gets its own PR afterwards.
  • The eas.json submit track stays alpha because the pipeline is beta-first. Future releases still get promoted by hand.

Note

Launch Android publicly: default PUBLIC_APP_ANDROID_LAUNCHED to true and route legacy tester paths to /app

  • Flips the default of PUBLIC_APP_ANDROID_LAUNCHED from false to true in createWebsiteEnv, .env.example, and related comments, so deployments show Google Play content without extra config
  • Adds forced 302 redirects from /android-testers and /android-testers-birthday-present to /app in netlify.toml
  • Makes the /app page description metadata conditional on the flag in app.astro, and updates the SSR e2e suite to require Google Play content with no tester tile
  • Behavioral Change: Android user agents no longer see the tester route; disabling the flag still routes the Android tile to /android-testers per updated guidance in DESIGN.md
📊 Macroscope summarized a169e90. 8 files reviewed, 1 issue evaluated, 0 issues filtered, 1 comment posted

🗂️ Filtered Issues

Flips PUBLIC_APP_ANDROID_LAUNCHED default to true, makes the /app meta
description launch-aware, redirects the retired tester funnel to /app,
and updates the SSR e2e suite and docs for the launched state.
@netlify

netlify Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for whocards-calmly ready!

Name Link
🔨 Latest commit a55e90a
🔍 Latest deploy log https://app.netlify.com/projects/whocards-calmly/deploys/6adb231ee82191d94b8c7ffb
😎 Deploy Preview https://deploy-preview-346--whocards-calmly.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Oct 23, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@netlify

netlify Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for whocards-app canceled.

Name Link
🔨 Latest commit a55e90a
🔍 Latest deploy log https://app.netlify.com/projects/whocards-app/deploys/6adb231e0bbbff9f00bdf1a5

Comment thread apps/website/netlify.toml
Comment on lines +52 to +56
[[redirects]]
from = "/android-testers"
to = "/app"
status = 302
force = true

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟠 High website/netlify.toml:52

When PUBLIC_APP_ANDROID_LAUNCHED=false, the “Become a tester” CTA links to /android-testers, but this forced redirect sends visitors to /app instead of the tester instructions. Make this redirect conditional on launch state or change the false-state CTA to a reachable destination.

-[[redirects]]
-  from = "/android-testers"
-  to = "/app"
-  status = 302
-  force = true
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @apps/website/netlify.toml around lines 52-56:

When `PUBLIC_APP_ANDROID_LAUNCHED=false`, the “Become a tester” CTA links to `/android-testers`, but this forced redirect sends visitors to `/app` instead of the tester instructions. Make this redirect conditional on launch state or change the false-state CTA to a reachable destination.

The redirect in netlify.toml keeps old links landing on /app.
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.

1 participant