Files
gw-svelte/src/routes/variants/pack-first/+page.server.ts
T
2026-05-26 23:30:22 +12:00

184 lines
6.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { getHomepageContent } from '$lib/server/content';
import type { HomePageContent, TestimonialContent } from '$lib/types';
// Variant goal: render the live homepage end-to-end, but shift the messaging
// off 1:1 solo walks and onto Tiny Gang pack walks, with puppy visits framed
// as the on-ramp that trains pups to graduate into the pack.
function applyPackFirstOverrides(base: HomePageContent): HomePageContent {
const content = structuredClone(base);
// ── SEO ──────────────────────────────────────────────────────────────
content.seo = {
title: 'Auckland Pack Walks for Small Dogs | Tiny Gang | Goodwalk',
description:
"Goodwalk's Tiny Gang is a small-group pack walk for sociable Auckland dogs. Puppy Academy trains pups to graduate into the pack. Solo walks available on request."
};
// ── Hero ─────────────────────────────────────────────────────────────
// Keep the live homepage hero — same Maya image, same headline, same CTAs.
// The pack-first pivot lives in the sections below, not the first scroll.
// (Hero intentionally left untouched.)
// ── Services: pack walks lead, puppy academy second, solo walks demoted
content.services = [
{
icon: 'fas fa-paw',
title: 'Tiny Gang Pack Walks',
body: 'Our flagship walk. Small group of 48 well-matched dogs. Same walker. Real friends.',
priceFrom: 'From $49.50 / walk',
href: '/pack-walks'
},
{
icon: 'fas fa-graduation-cap',
title: 'Puppy Academy',
body: 'In-home visits that quietly train your pup to graduate into the Tiny Gang.',
priceFrom: 'From $39 / visit',
href: '/puppy-visits'
},
{
icon: 'fas fa-person-walking',
title: 'Solo Walks (on request)',
body: 'For dogs the pack does not suit — reactive on lead, recovering, or larger than the gang.',
priceFrom: 'From $45 / walk',
href: '/dog-walking'
}
];
// ── How it works: reframe as the graduation pipeline
content.howItWorks = {
title: 'How a dog joins the pack',
intro: 'Pack walks are not booked. They are earned. Here is the path.',
steps: [
{
phase: 'Apply',
benefit: 'Right fit before anything else',
title: 'Free Meet & Greet at home.',
body:
'We meet your dog where they live. We talk temperament, energy, and play style — the things that decide pack fit.',
icon: 'fas fa-handshake'
},
{
phase: 'Train',
benefit: 'Foundations that hold up in a group',
title: 'Puppy Academy or assessment walks.',
body:
'Puppies do home visits and short outings. Older dogs do two assessment walks. We build manners and trust before any group meets them.',
icon: 'fas fa-graduation-cap'
},
{
phase: 'Graduate',
benefit: 'A weekly slot with real friends',
title: 'Welcome to the Tiny Gang.',
body:
'A regular weekly walk with the same small pack. Same walker, same dogs, same parks. Calmer evenings start here.',
icon: 'fas fa-paw'
}
]
};
// ── Founder story: lean on the pack
content.founderStory = {
...content.founderStory,
title: 'Not just dog walking.',
subtitle: 'Built around the pack.',
body: [
'Most dog walkers sell minutes on a lead. We build a pack.',
'Small groups of well-matched dogs, the same walker every week, and a puppy programme that grows the next intake from scratch.',
'You know who has your dog. Your dog knows the friends they are meeting. And you come home to a tired, happy one. Ready to'
],
emphasis: 'join the Tiny Gang?'
};
// ── Values: reorder so the pack-related lines lead
content.values = [
{
icon: 'fas fa-users',
title: 'Matched, not just grouped',
body: '4 to 8 dogs, matched on size, energy, and play style. Small and medium only.'
},
{
icon: 'fas fa-graduation-cap',
title: 'Puppy Academy on-ramp',
body: 'Pups train in-home, then graduate into the pack when they are ready.'
},
{
icon: 'fas fa-heart',
title: 'Calm, kind handling',
body: 'Patient routines. Confidence over stress.'
},
{
icon: 'fas fa-shield-heart',
title: 'Safety, by default',
body: 'Pet first aid certified. Careful screening. Proactive handling.'
},
{
icon: 'fas fa-camera',
title: 'Updates you actually want',
body: 'See your dog out with their friends. Less wondering.'
},
{
icon: 'fas fa-calendar-check',
title: 'Built for real schedules',
body: 'Regular weekly slot. Life changes; we adjust.'
}
];
// ── Testimonials: pack-walk reviews lead the slider
const isPack = (t: TestimonialContent) =>
!!t.service && t.service.toLowerCase().includes('pack');
content.testimonials = [
...content.testimonials.filter(isPack),
...content.testimonials.filter((t) => !isPack(t))
].map((t, i) => ({
...t,
showInSlider: i < 4 ? true : t.showInSlider
}));
// ── Booking: pack walks first in the picker
content.booking = {
...content.booking,
title: 'Apply to join the Tiny Gang',
subtitle:
"A few details about your dog. We reply within 24 hours to set up your free Meet & Greet.",
serviceOptions: ['Tiny Gang Pack Walks', 'Puppy Academy', 'Solo Walks (on request)', 'Other']
};
// ── Mega menu mirror so the Header reflects the variant ordering
content.navigation = {
...content.navigation,
megaMenuServices: [
{
icon: 'fas fa-paw',
label: 'Tiny Gang Pack Walks',
description: 'Our flagship — small, well-matched groups',
href: '/pack-walks'
},
{
icon: 'fas fa-graduation-cap',
label: 'Puppy Academy',
description: 'In-home visits, on-ramp to the pack',
href: '/puppy-visits'
},
{
icon: 'fas fa-person-walking',
label: 'Solo Walks (on request)',
description: 'For dogs the pack does not suit',
href: '/dog-walking'
}
]
};
return content;
}
export async function load() {
const base = await getHomepageContent();
const content = applyPackFirstOverrides(base);
return {
siteVariant: 'marketing' as const,
content
};
}