Skip to content

Update homepage hero and footer with demo copy and CTAs - #119

Merged
damianlegawiec merged 11 commits into
mainfrom
feature/demo-copy
Apr 10, 2026
Merged

Update homepage hero and footer with demo copy and CTAs#119
damianlegawiec merged 11 commits into
mainfrom
feature/demo-copy

Conversation

@Cichorek

@Cichorek Cichorek commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Hero section: new subtitle, test card note, and 3 CTAs (Shop the Demo, Fork on GitHub, Quickstart Guide)
  • Footer: updated description, test card note, and 3 adoption links (GitHub, Quickstart, Learn More)
  • External URLs centralized in getSpreeDemoData() in src/lib/store.ts
  • All demo elements marked with "Demo-only: Remove for production" comments
  • Translations added for all locales (de, es, fr, pl)

Files changed (8)

File What changed
messages/en.json Updated translation strings for hero + footer sections
messages/de.json German translations for new keys
messages/es.json Spanish translations for new keys
messages/fr.json French translations for new keys
messages/pl.json Polish translations for new keys
src/app/[country]/[locale]/(storefront)/page.tsx Hero: new subtitle, test card note, 3 CTAs
src/components/layout/Footer.tsx Footer: updated description, test card note, 3 adoption links
src/lib/store.ts getSpreeDemoData() — centralized demo external URLs

Test plan

  • Verify hero section renders with new copy, test card note, and 3 CTA buttons
  • Verify footer renders with updated description, test card note, and 3 adoption links
  • Verify external links open correctly (GitHub, Quickstart, Learn More)
  • Verify translations render correctly for each locale (de, es, fr, pl)
  • Run npx tsc --noEmit — no type errors
  • Run npm run check — Biome passes

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added demo-focused UI links: "Fork on GitHub", "Quickstart Guide", and "Learn more" in footer and homepage; primary CTA now demo-focused.
    • Added a visible test-card note on checkout to assist demo payments.
    • Updated homepage messaging to emphasize open-source, self-hosting, no platform fees.
  • Documentation

    • Updated translations (EN, DE, ES, FR, PL) to reflect new storefront branding and demo content.
  • Chore

    • Updated default social/OG image to a webp asset.

Add demo-specific content for demo.spreecommerce.org: new hero subtitle,
test card instructions, and three CTAs (Shop the Demo, Fork on GitHub,
Quickstart Guide). Footer updated with description, test card note, and
adoption links. External URLs centralized in getSpreeDemoData() in
store.ts. All demo elements marked with "Demo-only: Remove for production".
Translations added for all locales (de, es, fr, pl).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
storefront Ready Ready Preview, Comment Apr 10, 2026 10:38am

Request Review

@coderabbitai

coderabbitai Bot commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

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

Updated localization strings (DE/EN/ES/FR/PL) for footer, home, and checkout; replaced hero/CTA copy and added demo-focused CTAs; introduced new external demo links in Footer and home page components; small UI/spacing tweaks; added test-card checkout note and changed default social image path.

Changes

Cohort / File(s) Summary
Translations
messages/de.json, messages/en.json, messages/es.json, messages/fr.json, messages/pl.json
Updated footer and home copy across five locales: replaced hero/welcome/shop CTAs, removed home.browseCategories in some locales, added footer.forkOnGithub, footer.quickstartGuide, footer.learnMore, home.forkOnGithub, home.quickstartGuide, and checkout.testCardNote (with {testCard} interpolation).
Home Page
src/app/[country]/[locale]/(storefront)/page.tsx
Added demo-only external URL constants, replaced secondary CTA with external Quickstart/GitHub links (open in new tabs with rel="noopener noreferrer"), adjusted hero typography/spacing and CTA layout (flex-wrap).
Footer Component
src/components/layout/Footer.tsx
Added demo-only URL constants and a brand subsection rendering three external links (GitHub, Quickstart, Learn more) using translated labels and target="_blank" + rel="noopener noreferrer".
Checkout UI
src/components/checkout/PaymentSection.tsx
Removed a bottom margin from the secure-transactions paragraph and added a small gray test-card note using t("testCardNote", { testCard: "4242 4242 4242 4242" }).
SEO Constant
src/lib/seo.ts
Updated exported SOCIAL_IMAGE_PATH from "/social-image.png" to "/social-image.webp".
Env Example
.env.example
Inserted a single empty line after NEXT_PUBLIC_STORE_DESCRIPTION=... (no new variables or value changes).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • damianlegawiec

Poem

🐰 I hopped through locales, links in paw,
Quickstarts, forks, and a demo to draw,
Test cards whispered — "4242" — so spry,
Hero and footer now gleam in the sky,
A tiny hop for code, a joyful sigh. 🥕✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Update homepage hero and footer with demo copy and CTAs' directly and specifically describes the main changes across the pull request: updated hero and footer sections with new demo-focused copy and call-to-action buttons.

✏️ 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 feature/demo-copy

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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/lib/store.ts (1)

110-120: Document the new demo URL env vars in .env.example.

getSpreeDemoData() introduces three new NEXT_PUBLIC_* variables, but they are not documented in the provided .env.example snippet. Adding them will prevent setup drift for contributors.

Suggested `.env.example` addition
+# Demo external links (optional)
+NEXT_PUBLIC_GITHUB_URL=https://github.com/spree/storefront
+NEXT_PUBLIC_QUICKSTART_URL=https://spreecommerce.org/docs/developer/storefront/nextjs/quickstart
+NEXT_PUBLIC_LEARN_MORE_URL=https://spreecommerce.org
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/lib/store.ts` around lines 110 - 120, Add the three new NEXT_PUBLIC_* env
vars used by getSpreeDemoData() to the project's .env.example: document
NEXT_PUBLIC_GITHUB_URL, NEXT_PUBLIC_QUICKSTART_URL, and
NEXT_PUBLIC_LEARN_MORE_URL with sensible default values or placeholders
(matching the defaults in getSpreeDemoData) and brief comments so contributors
know their purpose and prevent setup drift.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/lib/store.ts`:
- Around line 110-120: getSpreeDemoData currently returns raw env values for
githubUrl, quickstartUrl, and learnMoreUrl which can be relative if the env
lacks a scheme; update getSpreeDemoData to pass each value through
ensureProtocol() (e.g., ensureProtocol(process.env.NEXT_PUBLIC_GITHUB_URL ||
"https://...")) for githubUrl, quickstartUrl, and learnMoreUrl so returned URLs
are normalized with a protocol.

---

Nitpick comments:
In `@src/lib/store.ts`:
- Around line 110-120: Add the three new NEXT_PUBLIC_* env vars used by
getSpreeDemoData() to the project's .env.example: document
NEXT_PUBLIC_GITHUB_URL, NEXT_PUBLIC_QUICKSTART_URL, and
NEXT_PUBLIC_LEARN_MORE_URL with sensible default values or placeholders
(matching the defaults in getSpreeDemoData) and brief comments so contributors
know their purpose and prevent setup drift.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 466c00f2-eb8e-46f1-8869-e08815dd7c1d

📥 Commits

Reviewing files that changed from the base of the PR and between 3c123f7 and 65f7c33.

📒 Files selected for processing (8)
  • messages/de.json
  • messages/en.json
  • messages/es.json
  • messages/fr.json
  • messages/pl.json
  • src/app/[country]/[locale]/(storefront)/page.tsx
  • src/components/layout/Footer.tsx
  • src/lib/store.ts

Comment thread src/lib/store.ts Outdated
Wrap getSpreeDemoData() URLs with ensureProtocol() to handle env values
missing a scheme prefix. Add the three NEXT_PUBLIC_* demo env vars to
.env.example with defaults and comments.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.env.example:
- Around line 16-17: The two environment keys are out of alphabetical order and
trigger the dotenv-linter UnorderedKey rule; swap the lines so
NEXT_PUBLIC_LEARN_MORE_URL appears before NEXT_PUBLIC_QUICKSTART_URL in
.env.example to satisfy the linter (i.e., reorder the two keys so
NEXT_PUBLIC_LEARN_MORE_URL then NEXT_PUBLIC_QUICKSTART_URL).

In `@src/lib/store.ts`:
- Around line 112-122: Environment variables for githubUrl, quickstartUrl, and
learnMoreUrl are not guarded against whitespace-only values before calling
ensureProtocol, so a value of just spaces will bypass the || fallback and
produce an invalid URL; update the assignments (githubUrl, quickstartUrl,
learnMoreUrl) to trim the corresponding env var (e.g.
process.env.NEXT_PUBLIC_GITHUB_URL?.trim()) and use the trimmed value in the
fallback expression before calling ensureProtocol so whitespace-only strings
fall back to the default URL.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fa096785-acc5-4312-b626-dd347ad07e41

📥 Commits

Reviewing files that changed from the base of the PR and between 65f7c33 and e69d718.

📒 Files selected for processing (2)
  • .env.example
  • src/lib/store.ts

Comment thread .env.example Outdated
Comment thread src/lib/store.ts Outdated
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment thread .env.example Outdated
Comment thread src/lib/store.ts Outdated

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/components/layout/Footer.tsx`:
- Around line 10-15: Footer.tsx currently defines local demo URL constants
(githubUrl, quickstartUrl, learnMoreUrl) that duplicate centralized demo links;
replace those locals by pulling the demo URLs from the shared getSpreeDemoData()
source used elsewhere. Modify the Footer component to import and call
getSpreeDemoData() (or consume the exported demo object) and read the
corresponding properties instead of the hardcoded
githubUrl/quickstartUrl/learnMoreUrl, remove the local constants, and keep a
minimal fallback if getSpreeDemoData() returns undefined; ensure references to
those symbols (githubUrl, quickstartUrl, learnMoreUrl, Footer, getSpreeDemoData)
are updated accordingly.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8daa46ba-8bba-478b-bc93-6a22df93d813

📥 Commits

Reviewing files that changed from the base of the PR and between 8278e2d and 42ee06a.

📒 Files selected for processing (2)
  • src/app/[country]/[locale]/(storefront)/page.tsx
  • src/components/layout/Footer.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/app/[country]/[locale]/(storefront)/page.tsx

Comment thread src/components/layout/Footer.tsx
- Remove heroDemoNote/testCardNote from hero, footer, and all locales
- Add translated testCardNote to checkout PaymentSection under secure transactions
- Hardcode demo URLs directly instead of getSpreeDemoData()
- Replace social-image.png with social-image.webp as OG image
- Update quickstart URL to /getting-started/quickstart

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.env.example:
- Line 14: Remove the stray empty line that is triggering the ExtraBlankLine
dotenv-linter warning by deleting the single blank line in the .env example so
there are no unnecessary consecutive blank lines; ensure the file still ends
with a single newline character after the last env entry and re-run the
dotenv-linter to confirm the warning is resolved.

In `@messages/de.json`:
- Line 44: Update the German translations to correct grammar: change the value
of the "forkOnGithub" key from "Diesen Storefront auf GitHub forken" to "Diese
Storefront auf GitHub forken", and update the key at the other affected entry
(the hero description key near line 60) to "Eine produktionsreife, quelloffene
Storefront …" (replace its current string with this more natural phrasing).
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 245eba22-708b-41fb-a9e2-2d8f5e78c8d0

📥 Commits

Reviewing files that changed from the base of the PR and between 42ee06a and c82bab8.

⛔ Files ignored due to path filters (1)
  • public/social-image.png is excluded by !**/*.png
📒 Files selected for processing (11)
  • .env.example
  • messages/de.json
  • messages/en.json
  • messages/es.json
  • messages/fr.json
  • messages/pl.json
  • public/social-image.webp
  • src/app/[country]/[locale]/(storefront)/page.tsx
  • src/components/checkout/PaymentSection.tsx
  • src/components/layout/Footer.tsx
  • src/lib/seo.ts
✅ Files skipped from review due to trivial changes (1)
  • src/lib/seo.ts
🚧 Files skipped from review as they are similar to previous changes (5)
  • src/components/layout/Footer.tsx
  • src/app/[country]/[locale]/(storefront)/page.tsx
  • messages/fr.json
  • messages/es.json
  • messages/pl.json

Comment thread .env.example Outdated
Comment thread messages/de.json Outdated
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@damianlegawiec
damianlegawiec merged commit ce2a1c0 into main Apr 10, 2026
6 checks passed
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