Skip to content

Improve marketing pages and demo conversion#654

Merged
riderx merged 10 commits into
mainfrom
codex/improve-platform-marketing
May 10, 2026
Merged

Improve marketing pages and demo conversion#654
riderx merged 10 commits into
mainfrom
codex/improve-platform-marketing

Conversation

@riderx
Copy link
Copy Markdown
Member

@riderx riderx commented May 9, 2026

Summary

  • replaced the homepage-only addition with targeted improvements on the actual marketing surfaces
  • added sales-oriented sections to Live Update, Native Build, Pricing, and Enterprise pages
  • kept competitor references out of page copy and removed the temporary PlatformOverview component
  • preserved and kept prior accessibility review fixes in the existing semver page diff

Competitive / sales analysis applied

  • Lead with buyer outcome, not feature inventory: production recovery, release risk, procurement confidence, and pipeline ownership
  • Make use cases explicit: urgent production fixes, canary/beta channels, native build offload, agency/multi-app teams, enterprise governance
  • Handle objections in-page: store review delays, release risk, CI replacement fears, pricing scale, compliance/security control
  • Add decision criteria so buyers can self-qualify before clicking docs or trial CTAs

Pages changed

  • /live-update/: production-break recovery, rollout risk, audit trail, live-update fit criteria
  • /native-build/: buyer guide for teams without CI ownership, teams keeping existing CI, and agencies/multi-app teams
  • /pricing/: pricing framed around release risk, real usage, and upgrade triggers
  • /enterprise/: procurement/security decision criteria

Checks

  • bun run check
  • Browser render checks for /live-update/, /native-build/, /pricing/, /enterprise/

Summary by CodeRabbit

  • New Features

    • Added Enterprise buying criteria section
    • Added Buyer Outcome cards and decision criteria to Live Update page
    • Added Buying guide to Native Build page
    • Added proof-points grid to Pricing page
  • Style

    • Restyled Semver Tester with card-based layout, refreshed inputs, improved accessibility, and new Local Version guide
    • Updated Hero CTAs and features bar layout/wording
  • Content

    • Added localized copy for enterprise, live update outcomes, hero, native build, and pricing proof points

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 9, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR adds buyer-focused content sections across four marketing pages and comprehensively redesigns the semver-tester page. The semver-tester changes include extensive UI restyling, accessibility improvements, a new Local Version guide, and restructured informational cards. The four marketing pages follow a consistent pattern: define localized data arrays then render them as new content sections integrated into the page layout.

Changes

Semver Tester Page Comprehensive Redesign

Layer / File(s) Summary
Imports & Top-level Layout
apps/web/src/pages/semver_tester.astro
Adds AstroIcon import and updates main element's Tailwind classes.
Comparison Card & Input Controls
apps/web/src/pages/semver_tester.astro
Restyles comparison card and reworks Local/Remote version inputs with help icon linking to new guide section; adds aria-describedby and status region markup.
Advanced Settings & Channel Controls
apps/web/src/pages/semver_tester.astro
Restyles Advanced Settings panel and replaces Channel Settings block with switch-style controls for iOS, Android, development build, emulator, and disable-downgrade; DOM IDs preserved.
Metadata Input & Results Region
apps/web/src/pages/semver_tester.astro
Updates Metadata Value input styling and restyles results container while keeping id="results" and role="status"/aria-live behavior.
Local Version Guide Section
apps/web/src/pages/semver_tester.astro
Adds new section with icon, explanatory text, and example origin cards for Local Version derivation.
Informational Cards & Examples
apps/web/src/pages/semver_tester.astro
Restyles "Why Semantic Versioning," "Flexible Semver Strategies," and "Semver Use Cases" sections with updated card layouts and example code pills.
Reference Tables & Summary
apps/web/src/pages/semver_tester.astro
Restyles Important notice card and reference tables for Valid/Invalid Semantic Versions, plus footer note alignment adjustment.

Marketing Pages — Buyer-Focused Content Additions

Layer / File(s) Summary
Enterprise Page — Decision Points
apps/web/src/pages/enterprise.astro
Adds enterpriseDecisionPoints array and renders new "Enterprise buying criteria" section with mapped list.
Live-Update Page — Buyer Outcomes
apps/web/src/pages/live-update.astro
Adds outcomeCards and decisionCriteria arrays and renders new "Buyer Outcome" section with mapped cards and criteria list.
Native-Build Page — Buying Guide
apps/web/src/pages/native-build.astro
Adds buyerChecks array and renders new "Buying guide" section with mapped grid cards.
Pricing Page — Social Proof Cards
apps/web/src/pages/pricing.astro
Adds pricingProof constant and renders new responsive grid of proof-card articles.
Shared Messages Catalog
apps/shared/copy/messages.ts
Adds new localized message keys for enterprise decision criteria, hero/outcome copy, live-update decisions/outcomes, Capgo Builder buyer-guide, and pricing proof points.
Hero Component
apps/web/src/components/Hero.astro
Adjusts subtitle/CTA layout and replaces feature tiles with new outcome-oriented tiles using added message keys.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Cap-go/website#652: Also modifies apps/web/src/pages/native-build.astro; both add data-driven sections to that page.
  • Cap-go/website#635: Modifies apps/web/src/pages/enterprise.astro; related to the enterprise decision-points additions.
  • Cap-go/website#650: Overlaps with apps/web/src/components/Hero.astro changes (hero CTA/feature tile updates).

Poem

🐰 Five pages bloom with buyer's might,
New cards and guides, each one polished bright,
Semver tester shines with helpful lore,
Local guides and toggles open the door,
Marketing sings in mapped arrays galore.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title accurately captures the main objective of the changeset: enhancing marketing pages with buyer-focused content to improve conversion.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/improve-platform-marketing

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

@riderx riderx marked this pull request as ready for review May 9, 2026 01:38
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/web/src/pages/semver_tester.astro`:
- Around line 60-62: The decorative SVG with id "advanced-chevron" (and other
decorative <svg> elements in this file) should be hidden from assistive tech by
adding aria-hidden="true" and focusable="false" to the <svg> tag; update the
<svg id="advanced-chevron" ...> and apply the same attributes to the other
decorative SVG tags referenced in the review so they are not exposed to screen
readers or keyboard focus.
- Around line 37-41: The dynamic status/result containers (e.g., the div with id
"version1-status" and the other "-status" regions referenced) need ARIA live
semantics so screen readers announce updates; update each dynamic div (the
elements with ids like "version1-status" and the other status/result divs) to
include attributes aria-live="polite" role="status" and aria-atomic="true" so
validation and result text are reliably announced when they change.
- Around line 102-185: The switch buttons with role="switch" are icon-only and
lack accessible names; add explicit aria-label attributes to each switch button
(ids: ios-toggle, android-toggle, dev-build-toggle, emulator-toggle,
disable-downgrade-toggle) that mirror their visible labels (e.g., "Allow updates
for iOS", "Allow updates for Android", "Allow development build", "Allow
Emulators", "Disable auto downgrade under native") so screen readers can
announce their purpose; ensure the aria-labels are kept in sync with the
adjacent label text and use the existing ids to locate and update the elements.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: df1f1f04-0d89-47cb-b785-f0500e5fc25f

📥 Commits

Reviewing files that changed from the base of the PR and between 3a9dd72 and 9ce61a6.

📒 Files selected for processing (4)
  • apps/shared/astro-utils.mjs
  • apps/web/src/components/PlatformOverview.astro
  • apps/web/src/pages/index.astro
  • apps/web/src/pages/semver_tester.astro

Comment thread apps/web/src/pages/semver_tester.astro Outdated
Comment thread apps/web/src/pages/semver_tester.astro Outdated
Comment thread apps/web/src/pages/semver_tester.astro
@riderx riderx changed the title Improve homepage platform positioning Improve marketing pages from competitive analysis May 10, 2026
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (3)
apps/web/src/pages/live-update.astro (1)

31-50: 🏗️ Heavy lift

Localize the new buyer-outcome copy via message keys.

This section hardcodes English strings on a locale-aware page (m.* + locale), so localized routes will show mixed-language content.

💡 Suggested direction
-const outcomeCards = [
-  { title: 'Recover production without waiting on review', text: 'Use live updates ...' },
-  ...
-]
+const outcomeCards = [
+  {
+    title: m.live_update_outcome_card_1_title({}, { locale }),
+    text: m.live_update_outcome_card_1_text({}, { locale }),
+  },
+  ...
+]

-<p class="...">Built for release pressure</p>
+<p class="...">{m.live_update_buyer_outcome_kicker({}, { locale })}</p>

Also applies to: 119-125, 141-148

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/pages/live-update.astro` around lines 31 - 50, Replace hardcoded
English strings in the outcomeCards and decisionCriteria arrays with
locale-aware message keys from the m object (e.g., use
m['liveUpdate.outcome.title1'][locale] or equivalent message lookup) so the page
uses translated strings instead of literal text; update each object in
outcomeCards (title, text) and each entry in decisionCriteria to reference the
appropriate m.* keys, and apply the same replacement to the other similar
hardcoded blocks in this file that present buyer-outcome copy.
apps/web/src/pages/enterprise.astro (1)

126-130: 🏗️ Heavy lift

Localize the new enterprise decision-criteria copy.

This added section is English-only while the rest of the page is locale-driven (m.*), so translated routes will render inconsistent language in a key conversion block.

Also applies to: 244-248, 251-258

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/pages/enterprise.astro` around lines 126 - 130, The new array
enterpriseDecisionPoints contains hard-coded English strings which break
localization; replace each literal with the corresponding localized entries from
the page's i18n/messages object (use the same pattern as other localized
content, e.g., m.something) and reference the message keys in the messages file
so translated routes render correctly; also update the other hard-coded blocks
referenced (around the other occurrences noted) to use localized m.* keys and
add the new keys to the translations/messages source.
apps/web/src/pages/native-build.astro (1)

157-170: 🏗️ Heavy lift

Use copy(...) keys for the new “Buying guide” content.

The newly added section hardcodes English text in a page that otherwise consistently localizes through copy(...), creating mixed-language output for non-English locales.

Also applies to: 335-340, 346-347

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/pages/native-build.astro` around lines 157 - 170, The
buyerChecks array contains hardcoded English strings (title and text) causing
mixed-language pages; replace each literal with calls to copy(...) using unique
keys (e.g., copy('nativeBuild.buyingGuide.item1.title') and
copy('nativeBuild.buyingGuide.item1.text')) for every object in buyerChecks and
similarly swap the hardcoded strings at the other occurrences referenced (lines
around 335-340 and 346-347) to use appropriate copy(...) keys; ensure keys are
added to the localization resource and that buyerChecks uses the copy(...)
function for both title and text fields.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@apps/web/src/pages/enterprise.astro`:
- Around line 126-130: The new array enterpriseDecisionPoints contains
hard-coded English strings which break localization; replace each literal with
the corresponding localized entries from the page's i18n/messages object (use
the same pattern as other localized content, e.g., m.something) and reference
the message keys in the messages file so translated routes render correctly;
also update the other hard-coded blocks referenced (around the other occurrences
noted) to use localized m.* keys and add the new keys to the
translations/messages source.

In `@apps/web/src/pages/live-update.astro`:
- Around line 31-50: Replace hardcoded English strings in the outcomeCards and
decisionCriteria arrays with locale-aware message keys from the m object (e.g.,
use m['liveUpdate.outcome.title1'][locale] or equivalent message lookup) so the
page uses translated strings instead of literal text; update each object in
outcomeCards (title, text) and each entry in decisionCriteria to reference the
appropriate m.* keys, and apply the same replacement to the other similar
hardcoded blocks in this file that present buyer-outcome copy.

In `@apps/web/src/pages/native-build.astro`:
- Around line 157-170: The buyerChecks array contains hardcoded English strings
(title and text) causing mixed-language pages; replace each literal with calls
to copy(...) using unique keys (e.g.,
copy('nativeBuild.buyingGuide.item1.title') and
copy('nativeBuild.buyingGuide.item1.text')) for every object in buyerChecks and
similarly swap the hardcoded strings at the other occurrences referenced (lines
around 335-340 and 346-347) to use appropriate copy(...) keys; ensure keys are
added to the localization resource and that buyerChecks uses the copy(...)
function for both title and text fields.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c20865c4-fb9b-41f0-9d1b-2e0b43731a35

📥 Commits

Reviewing files that changed from the base of the PR and between 943cac4 and 486b200.

📒 Files selected for processing (4)
  • apps/web/src/pages/enterprise.astro
  • apps/web/src/pages/live-update.astro
  • apps/web/src/pages/native-build.astro
  • apps/web/src/pages/pricing.astro
✅ Files skipped from review due to trivial changes (1)
  • apps/web/src/pages/pricing.astro

@riderx riderx changed the title Improve marketing pages from competitive analysis Add buyer-focused content to product pages May 10, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/web/src/components/Hero.astro (1)

236-281: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use h2 instead of h3 for top-level feature card headings.

Line 236, Line 260, and Line 280 jump from the page h1 to h3. Promote these to h2 to keep heading order valid.

Suggested fix
-                <h3 class="mb-2 text-lg font-semibold text-white">{m.home_hero_outcome_recover_title({}, { locale: Astro.locals.locale })}</h3>
+                <h2 class="mb-2 text-lg font-semibold text-white">{m.home_hero_outcome_recover_title({}, { locale: Astro.locals.locale })}</h2>
-                <h3 class="mb-2 text-lg font-semibold text-white">{m.home_hero_outcome_compliance_title({}, { locale: Astro.locals.locale })}</h3>
+                <h2 class="mb-2 text-lg font-semibold text-white">{m.home_hero_outcome_compliance_title({}, { locale: Astro.locals.locale })}</h2>
-                <h3 class="mb-2 text-lg font-semibold text-white">{m.home_hero_outcome_observe_title({}, { locale: Astro.locals.locale })}</h3>
+                <h2 class="mb-2 text-lg font-semibold text-white">{m.home_hero_outcome_observe_title({}, { locale: Astro.locals.locale })}</h2>

As per coding guidelines, "Headings must follow proper hierarchy (h1 > h2 > h3)".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/web/src/components/Hero.astro` around lines 236 - 281, The three feature
card headings use h3 but must be promoted to h2 to preserve proper heading
hierarchy; replace the <h3> elements that render
m.home_hero_outcome_recover_title, m.home_hero_outcome_compliance_title, and
m.home_hero_outcome_observe_title with <h2> (keeping the existing classes/props
and content) so heading order follows h1 > h2 > h3.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@apps/web/src/components/Hero.astro`:
- Around line 236-281: The three feature card headings use h3 but must be
promoted to h2 to preserve proper heading hierarchy; replace the <h3> elements
that render m.home_hero_outcome_recover_title,
m.home_hero_outcome_compliance_title, and m.home_hero_outcome_observe_title with
<h2> (keeping the existing classes/props and content) so heading order follows
h1 > h2 > h3.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 11671531-d90b-4d12-beca-968702826d4f

📥 Commits

Reviewing files that changed from the base of the PR and between 346e9bd and fec290b.

📒 Files selected for processing (2)
  • apps/shared/copy/messages.ts
  • apps/web/src/components/Hero.astro

@riderx riderx changed the title Add buyer-focused content to product pages Improve marketing pages and demo conversion May 10, 2026
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