Marketing audit: hero rewrite, outcome-driven feature messaging, and guides/landing integration#1924
Conversation
…messaging, guides integration Co-authored-by: andrew-bierman <94939237+andrew-bierman@users.noreply.github.com>
Deploying packrat-landing with
|
| Latest commit: |
6cb8712
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://9815b182.packrat-landing.pages.dev |
| Branch Preview URL: | https://copilot-update-website-messa.packrat-landing.pages.dev |
Deploying packrat-guides with
|
| Latest commit: |
2b49853
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b1183139.packrat-guides-6gq.pages.dev |
| Branch Preview URL: | https://copilot-update-website-messa.packrat-guides-6gq.pages.dev |
Co-authored-by: andrew-bierman <94939237+andrew-bierman@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates the marketing copy and CTAs across the Landing and Guides sites to emphasize that PackRat is free, add stronger social proof, and drive more users to the app download section.
Changes:
- Refreshed Landing site hero/feature/testimonial/FAQ copy and added a hero “social proof” line.
- Added “Download Free” CTAs throughout the Guides site (header, home hero, and guide detail pages).
- Updated Guides footer company links to point to real packratai.com destinations (about/download/privacy/contact).
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| apps/landing/config/site.ts | Repositions Landing messaging around “free forever”, adds hero.socialProof, updates CTAs and supporting section copy. |
| apps/landing/components/sections/landing-hero.tsx | Renders the new optional socialProof line under the main CTAs. |
| apps/landing/app/about/page.tsx | Rewrites About page to include origin story + “free” messaging and updates CTA text. |
| apps/guides/lib/config.ts | Adds a back-link to packratai.com in nav and replaces footer placeholders with real external links. |
| apps/guides/components/header.tsx | Adds a desktop “Download Free” CTA link to packratai.com. |
| apps/guides/app/page.tsx | Adds a secondary hero CTA to download the free app. |
| apps/guides/app/guide/[slug]/page.tsx | Adds an in-article download CTA block under guide content. |
You can also share your feedback on Copilot code review. Take the survey.
| { title: 'Download App', href: 'https://packratai.com/#download' }, | ||
| { title: 'Contact', href: 'mailto:hello@packratai.com' }, | ||
| { title: 'Privacy Policy', href: 'https://packratai.com/privacy-policy' }, | ||
| { title: 'Terms of Service', href: '#' }, |
There was a problem hiding this comment.
Terms of Service still points to '#', which will render as a broken/no-op link now that the other Company links have been wired up. Consider either linking to the real terms page on packratai.com (or the guides-domain equivalent) or removing this item until the URL exists.
| { title: 'Terms of Service', href: '#' }, | |
| { title: 'Terms of Service', href: 'https://packratai.com/terms-of-service' }, |
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThis PR implements marketing audit improvements across the landing and guides sites, adding rewritten hero messaging emphasizing the free, AI-powered app, new download CTAs on multiple pages, an about page with origin story, updated feature descriptions, and enhanced social proof throughout. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@copilot resolve merge conflicts, see code rabbit comments also |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
apps/guides/components/header.tsx (1)
105-110: Use the sharedButtonprimitive for this CTA.This is a button-styled link, so it should follow the repo pattern with
<Button asChild>instead of stylingLinkdirectly.♻️ Suggested change
+import { Button } from 'guides-app/components/ui/button';- <Link - href="https://packratai.com/#download" - className="hidden md:inline-flex items-center gap-1.5 ml-2 px-4 py-1.5 rounded-full bg-apple-blue text-white text-sm font-medium hover:bg-apple-blue/90 transition-colors" - > - Download Free - </Link> + <Button + asChild + className="hidden md:inline-flex ml-2 rounded-full bg-apple-blue px-4 py-1.5 text-sm font-medium text-white hover:bg-apple-blue/90" + > + <Link href="https://packratai.com/#download">Download Free</Link> + </Button>As per coding guidelines:
apps/{landing,guides}/**/*.ts{,x}: Use<Button asChild>with a<Link>child for button-styled links, not wrapping<Button>inside<Link>.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/guides/components/header.tsx` around lines 105 - 110, The CTA is a button-styled link but currently styles the Link directly; replace it with the shared Button primitive used as a wrapper for the Link: render <Button asChild> with the existing <Link href="https://packratai.com/#download"> as its child (preserve href and accessible text "Download Free"), move the button classes/variants to the Button props instead of on Link, and remove the direct styling from the Link so the Button controls appearance and hover behavior; update the instance in the Header component where Link is used for this CTA.apps/guides/lib/config.ts (1)
36-39: Centralize the PackRat marketing URLs.These destinations are now duplicated here,
apps/guides/components/header.tsx(Line 106),apps/guides/app/page.tsx(Line 69), andapps/guides/app/guide/[slug]/page.tsx(Lines 126 and 129). Pulling them into shared config/constants here would make future domain or anchor changes much less error-prone.Also applies to: 88-91
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@apps/guides/lib/config.ts` around lines 36 - 39, Extract the PackRat marketing link into a shared constant (e.g., PACKRAT_LINK or PACKRAT_MARKETING with properties title and href) in apps/guides/lib/config.ts instead of repeating the inline object { title: '← packratai.com', href: 'https://packratai.com' } (and the duplicate at lines 88-91); export that constant and update consumers (apps/guides/components/header.tsx, apps/guides/app/page.tsx, apps/guides/app/guide/[slug]/page.tsx) to import and use the shared PACKRAT_LINK constant so future domain or anchor changes are made in one place.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@apps/guides/app/guide/`[slug]/page.tsx:
- Around line 117-120: Change the British spelling "personalised" to American
English "personalized" in the CTA paragraph text (the JSX <p> that currently
reads "PackRat builds your personalised packing list...") so the marketing copy
matches the rest of the PR.
In `@apps/landing/app/about/page.tsx`:
- Around line 50-59: Update the two paragraph JSX nodes using className
"text-muted-foreground leading-relaxed" to American spelling: change "realising"
to "realizing" and "personalised" to "personalized" in the <p
className="text-muted-foreground leading-relaxed"> elements within the about
page component so the copy matches the rest of the PR's American English.
---
Nitpick comments:
In `@apps/guides/components/header.tsx`:
- Around line 105-110: The CTA is a button-styled link but currently styles the
Link directly; replace it with the shared Button primitive used as a wrapper for
the Link: render <Button asChild> with the existing <Link
href="https://packratai.com/#download"> as its child (preserve href and
accessible text "Download Free"), move the button classes/variants to the Button
props instead of on Link, and remove the direct styling from the Link so the
Button controls appearance and hover behavior; update the instance in the Header
component where Link is used for this CTA.
In `@apps/guides/lib/config.ts`:
- Around line 36-39: Extract the PackRat marketing link into a shared constant
(e.g., PACKRAT_LINK or PACKRAT_MARKETING with properties title and href) in
apps/guides/lib/config.ts instead of repeating the inline object { title: '←
packratai.com', href: 'https://packratai.com' } (and the duplicate at lines
88-91); export that constant and update consumers
(apps/guides/components/header.tsx, apps/guides/app/page.tsx,
apps/guides/app/guide/[slug]/page.tsx) to import and use the shared PACKRAT_LINK
constant so future domain or anchor changes are made in one place.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 7de2a29e-2890-4840-8f6f-2b86e9bb9ad3
📒 Files selected for processing (7)
apps/guides/app/guide/[slug]/page.tsxapps/guides/app/page.tsxapps/guides/components/header.tsxapps/guides/lib/config.tsapps/landing/app/about/page.tsxapps/landing/components/sections/landing-hero.tsxapps/landing/config/site.ts
| <p className="text-muted-foreground mb-6 max-w-md mx-auto"> | ||
| PackRat builds your personalised packing list based on your trip, the weather, and | ||
| your gear — completely free. | ||
| </p> |
There was a problem hiding this comment.
Keep this CTA copy in American English.
Line 118 uses personalised, which reintroduces British spelling into the marketing copy. personalized would match the rest of this PR.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@apps/guides/app/guide/`[slug]/page.tsx around lines 117 - 120, Change the
British spelling "personalised" to American English "personalized" in the CTA
paragraph text (the JSX <p> that currently reads "PackRat builds your
personalised packing list...") so the marketing copy matches the rest of the PR.
| <p className="text-muted-foreground leading-relaxed"> | ||
| PackRat was born out of a familiar frustration: standing at the trailhead realising | ||
| you've forgotten your rain jacket, your headlamp, or (worse) your water filter. | ||
| After one too many trips cut short or made miserable by missing gear, our founder set | ||
| out to build the app they always wished existed. | ||
| </p> | ||
| <p className="text-muted-foreground leading-relaxed"> | ||
| The vision was simple — an intelligent packing assistant that knows your trip, the | ||
| forecast, and your gear, and builds a personalised list so you carry exactly what you | ||
| need and nothing you don't. No more overpacking. No more forgetting essentials. |
There was a problem hiding this comment.
Keep the origin-story copy in American English.
Lines 51 and 58 use realising and personalised, which clashes with the rest of this PR’s American English marketing copy.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@apps/landing/app/about/page.tsx` around lines 50 - 59, Update the two
paragraph JSX nodes using className "text-muted-foreground leading-relaxed" to
American spelling: change "realising" to "realizing" and "personalised" to
"personalized" in the <p className="text-muted-foreground leading-relaxed">
elements within the about page component so the copy matches the rest of the
PR's American English.
…lling in guide CTA Co-authored-by: andrew-bierman <94939237+andrew-bierman@users.noreply.github.com>
Done in commit |
…ging-structure Marketing audit: hero rewrite, outcome-driven feature messaging, and guides/landing integration
#, nowhttps://packratai.com/terms-of-service)/ru/→/us/) and expo CategoriesFilter/CatalogItemsScreen changesOriginal prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.
Summary by CodeRabbit
Release Notes
New Features
Updates