Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions apps/guides/app/guide/[slug]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,26 @@ export default async function GuidePage({ params }: { params: Promise<{ slug: st
</Link>
</Button>

{/* Download CTA */}
<div className="mt-12 rounded-2xl bg-blue-50 dark:bg-blue-950/20 p-8 text-center">
<h2 className="text-xl font-semibold mb-2">Ready to put this into practice?</h2>
<p className="text-muted-foreground mb-6 max-w-md mx-auto">
PackRat builds your personalized packing list based on your trip, the weather, and
your gear — completely free.
</p>
Comment on lines +117 to +120
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.

⚠️ Potential issue | 🟡 Minor

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.

<div className="flex flex-col sm:flex-row gap-3 justify-center">
<Button
asChild
className="rounded-full bg-apple-blue hover:bg-apple-blue/90 text-white px-8"
>
<Link href="https://packratai.com/#download">Download Free</Link>
</Button>
<Button asChild variant="outline" className="rounded-full px-8">
<Link href="https://packratai.com">Learn More</Link>
</Button>
</div>
</div>

{relatedPosts.length > 0 && (
<div className="mt-16">
<h2 className="mb-8 text-2xl font-semibold text-center">Related Guides</h2>
Expand Down
19 changes: 12 additions & 7 deletions apps/guides/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,18 @@ function HomeContent() {
<p className="mx-auto mb-8 max-w-2xl text-xl text-gray-600 dark:text-gray-300 font-medium">
Expert advice for your next outdoor adventure
</p>
<Button
asChild
size="lg"
className="rounded-full bg-apple-blue hover:bg-apple-blue/90 text-white px-8 h-12"
>
<Link href="#guides">Explore Guides</Link>
</Button>
<div className="flex flex-col sm:flex-row gap-3 justify-center">
<Button
asChild
size="lg"
className="rounded-full bg-apple-blue hover:bg-apple-blue/90 text-white px-8 h-12"
>
<Link href="#guides">Explore Guides</Link>
</Button>
<Button asChild variant="outline" size="lg" className="rounded-full px-8 h-12">
<Link href="https://packratai.com/#download">Download Free App</Link>
</Button>
</div>
</div>
</section>

Expand Down
8 changes: 8 additions & 0 deletions apps/guides/components/header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,14 @@ export default function Header() {
<Search />
<ThemeToggle />

{/* Download CTA - desktop */}
<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>

{/* Mobile menu - Apple style */}
<Sheet>
<SheetTrigger asChild>
Expand Down
13 changes: 9 additions & 4 deletions apps/guides/lib/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ export const navigationConfig = {
title: 'Safety',
href: '/?category=safety',
},
{
title: '← packratai.com',
href: 'https://packratai.com',
},
],
// Maximum number of categories to show in header
maxCategories: 4,
Expand Down Expand Up @@ -81,10 +85,11 @@ export const footerConfig = {
{
title: 'Company',
links: [
{ title: 'About Us', href: '#' },
{ title: 'Contact', href: '#' },
{ title: 'Privacy Policy', href: '#' },
{ title: 'Terms of Service', href: '#' },
{ title: 'About Us', href: 'https://packratai.com/about' },
{ 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: 'https://packratai.com/terms-of-service' },
],
},
],
Expand Down
37 changes: 27 additions & 10 deletions apps/landing/app/about/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,22 +40,39 @@ export default function AboutPage() {
<h1 className="text-4xl font-extrabold tracking-tight md:text-5xl">About PackRat</h1>
<p className="text-xl text-muted-foreground max-w-2xl mx-auto">
We&apos;re a team of outdoor enthusiasts on a mission to make every adventure safer,
more organized, and more enjoyable.
more organized, and more enjoyable — completely free.
</p>
</div>

{/* Mission */}
{/* Origin Story */}
<section className="space-y-4">
<h2 className="text-2xl font-semibold tracking-tight">Our Mission</h2>
<h2 className="text-2xl font-semibold tracking-tight">Where It Started</h2>
<p className="text-muted-foreground leading-relaxed">
PackRat was born out of a familiar frustration: standing at the trailhead realising
you&apos;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&apos;t. No more overpacking. No more forgetting essentials.
Comment on lines +50 to +59
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.

⚠️ Potential issue | 🟡 Minor

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.

</p>
<p className="text-muted-foreground leading-relaxed">
PackRat was born out of a simple frustration: forgetting essential gear on a camping
trip. We built the app we always wished we had — one that intelligently helps you plan,
pack, and navigate your outdoor adventures with confidence.
What started as a side project quickly grew into something the outdoor community truly
needed. Today, PackRat is used by thousands of hikers, backpackers, trail runners, and
weekend campers across the globe — and it&apos;s completely free.
</p>
</section>

{/* Mission */}
<section className="space-y-4">
<h2 className="text-2xl font-semibold tracking-tight">Our Mission</h2>
<p className="text-muted-foreground leading-relaxed">
Today, PackRat is used by thousands of hikers, backpackers, trail runners, and weekend
campers across the globe. Whether you&apos;re heading out for an afternoon day hike or a
week-long backcountry expedition, PackRat has you covered.
Our mission is straightforward: help more people get outside with confidence. Whether
you&apos;re heading out for an afternoon day hike or a week-long backcountry expedition,
PackRat has you covered. We believe the barrier to outdoor adventure should be as low as
possible — which is why PackRat is, and always will be, free to use.
</p>
</section>

Expand Down Expand Up @@ -106,7 +123,7 @@ export default function AboutPage() {
<p className="text-muted-foreground">Ready to hit the trails?</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
<Button asChild size="lg">
<Link href="/#download">Download PackRat</Link>
<Link href="/#download">Download Free</Link>
</Button>
<Button asChild variant="outline" size="lg">
<Link href="mailto:hello@packratai.com">Contact Us</Link>
Expand Down
10 changes: 10 additions & 0 deletions apps/landing/components/sections/landing-hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,16 @@ export default function LandingHero() {
</Button>
</motion.div>

{siteConfig.hero.socialProof && (
<motion.p
className="text-xs text-muted-foreground flex items-center gap-1"
variants={itemVariants}
>
<Star className="w-3 h-3 text-amber-400 fill-amber-400 flex-shrink-0" />
{siteConfig.hero.socialProof}
</motion.p>
)}

<motion.div
className="flex flex-col sm:flex-row items-center gap-6 pt-4"
variants={itemVariants}
Expand Down
60 changes: 31 additions & 29 deletions apps/landing/config/site.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@ export const siteConfig = {
// CTAs
cta: {
primary: {
text: 'Download Now',
text: 'Download Free',
href: '#download',
},
secondary: {
text: 'Learn More',
href: '#features',
text: 'See How It Works',
href: '#how-it-works',
},
tertiary: {
text: 'Explore Guides',
Expand All @@ -99,23 +99,24 @@ export const siteConfig = {

// Hero section
hero: {
badge: 'Your outdoor adventure companion',
title: 'Pack smarter. Adventure further.',
badge: '100% Free · AI-Powered Packing Lists',
title: 'Stop overpacking. Start adventuring.',
subtitle:
'Never forget essential gear again. PackRat helps you plan, organize, and track your outdoor adventures with ease.',
"PackRat's AI builds your perfect packing list based on your trip, the weather, and your gear — so you carry exactly what you need and nothing you don't.",
image: '/hero-app-preview.png',
socialProof: 'Trusted by 10,000+ outdoor enthusiasts · 4.8★ rating · Works offline',
stats: [
{
value: '10K+',
label: 'Active Users',
},
{
value: '4.8',
label: 'App Store Rating',
value: '4.8',
label: 'App Rating',
},
{
value: '500+',
label: 'Trails Mapped',
value: '100%',
label: 'Free Forever',
},
],
},
Expand All @@ -126,7 +127,7 @@ export const siteConfig = {
id: 'packing-lists',
title: 'Smart Packing Lists',
description:
'Create and customize packing lists based on trip type, duration, and weather conditions.',
"Never forget essential gear — or carry stuff you don't need. PackRat's AI tailors your list to your exact trip.",
icon: 'CheckSquare',
color: '#0F766E',
image: '/feature-packing-list.png',
Expand All @@ -135,7 +136,7 @@ export const siteConfig = {
id: 'trail-maps',
title: 'Trail Maps & Navigation',
description:
'Access offline trail maps and navigation to stay on track even without cell service.',
'Find your trail and navigate it offline. Download maps before you go and stay on track even with no signal.',
icon: 'Map',
color: '#F97316',
image: '/feature-trail-maps.png',
Expand All @@ -153,7 +154,7 @@ export const siteConfig = {
id: 'trip-planning',
title: 'Trip Planning',
description:
'Plan routes, set waypoints, and estimate hiking times with our advanced planning tools.',
'Plan your perfect route from start to finish — set waypoints, estimate hiking times, and share with your group.',
icon: 'Compass',
color: '#8B5CF6',
image: '/feature-trip-planning.png',
Expand All @@ -162,7 +163,7 @@ export const siteConfig = {
id: 'recommendations',
title: 'Trail Recommendations',
description:
'Discover new trails and adventures based on your preferences and experience level.',
'Discover trails matched to your fitness level and experience — no more guessing if a trail is right for you.',
icon: 'Mountain',
color: '#EC4899',
image: '/feature-recommendations.png',
Expand All @@ -171,15 +172,16 @@ export const siteConfig = {
id: 'weather',
title: 'Weather Integration',
description:
'Get real-time weather forecasts for your planned routes to prepare accordingly.',
"Pack for the weather you'll actually get. Real-time forecasts for your exact route and dates.",
icon: 'Cloud',
color: '#3B82F6',
image: '/feature-weather.png',
},
{
id: 'offline',
title: 'Offline Access',
description: "Access all your trip information offline when you're out in the wilderness.",
description:
'Your packing lists, maps, and trip details are always available — even deep in the backcountry without signal.',
icon: 'Download',
color: '#10B981',
image: '/feature-offline.png',
Expand Down Expand Up @@ -215,9 +217,9 @@ export const siteConfig = {

// Integrations section
integrations: {
title: 'Seamless Integrations',
title: 'Connects With the Tools You Already Use',
subtitle:
'PackRat connects with your favorite outdoor and weather services for a complete experience.',
'PackRat works with your favorite outdoor and weather services so everything is in one place.',
items: [
{
id: 'weather',
Expand Down Expand Up @@ -280,17 +282,17 @@ export const siteConfig = {
name: 'Mike Thompson',
role: 'Backpacker',
content:
'PackRat has completely changed how I prepare for hikes. I used to always forget something important, but not anymore! The weather integration is particularly useful for planning multi-day trips.',
'PackRat has completely changed how I prepare for hikes. I used to always forget something important, but not anymore! The AI packing list is spot-on every single time.',
initials: 'MT',
avatar: '/avatar-mike.jpg',
rating: 5,
},
{
id: 2,
name: 'Sarah Linden',
role: 'Trail Runner',
role: 'Thru-Hiker · PCT 2024',
content:
'The offline maps feature saved me when I lost cell service on a remote trail. This app is a must-have for any outdoor enthusiast. I love how I can track my routes and share them with friends.',
"I used PackRat for my entire PCT thru-hike. The offline maps saved me multiple times in remote sections with zero signal. Absolutely essential gear — and it's free!",
initials: 'SL',
avatar: '/avatar-sarah.jpg',
rating: 5,
Expand All @@ -300,17 +302,17 @@ export const siteConfig = {
name: 'James Rodriguez',
role: 'Weekend Camper',
content:
'As someone who camps occasionally, the smart packing lists are perfect. They suggest exactly what I need without overwhelming me. The interface is intuitive and the recommendations are spot-on.',
'As someone who camps with the family a few times a year, the smart packing lists are perfect. No more frantic last-minute checks — PackRat has everything covered.',
initials: 'JR',
avatar: '/avatar-james.jpg',
rating: 4,
rating: 5,
},
{
id: 4,
name: 'Emily Chen',
role: 'Hiking Guide',
content:
'I use PackRat to plan trips for my guided hiking groups. The ability to share packing lists and routes with clients beforehand has made my job so much easier. Highly recommended for professionals!',
'I use PackRat to plan trips for my guided hiking groups. Sharing packing lists with clients beforehand has made my job so much easier. Highly recommend for professionals!',
initials: 'EC',
avatar: '/avatar-emily.jpg',
rating: 5,
Expand All @@ -326,10 +328,10 @@ export const siteConfig = {
googlePlayLink: 'https://play.google.com/store/apps/details?id=com.packratai.mobile&pli=1',
image: '/download-now-ios-image.png',
features: [
'Free basic version',
'Premium features from $4.99/month',
'7-day free trial',
'Cancel anytime',
'Free — no hidden fees',
'Works offline',
'AI-powered packing lists',
'Regular updates',
],
},

Expand All @@ -338,7 +340,7 @@ export const siteConfig = {
{
question: 'Is PackRat free to use?',
answer:
'PackRat offers a free version with basic features. Premium features are available with a subscription for $4.99/month or $39.99/year.',
'Yes — PackRat is completely free. No subscriptions, no in-app purchases, no ads. We are focused on growing our community of outdoor enthusiasts.',
},
{
question: 'Does PackRat work offline?',
Expand Down
Loading