dog-training-plan delivers CALM WALKS, a mobile-first behavioral training product for owners of reactive dogs. The product is built around one core loop:
Dog assessment → personalized plan → real-world walk → weekly check-in → adaptive re-plan.
The product intent is that an owner tells the system exactly what happens with their dog — the actual triggers, the actual street, the actual walk — and the system remembers it and visibly adapts the plan each week. The weekly re-plan and its "what changed and why" diff is the product moat: plan versions are preserved rather than overwritten, so the owner can see how their plan evolved.
The audience is dog owners who have already tried trainers, behaviorists, training apps, or online courses and are looking for something more specific than generic content. Pricing is deliberately one-time: $59 for a Personalized 4-Week Plan, $79 for Plan + Weekly Re-Plans, and a $20 one-time upgrade for $59 owners who later want weekly re-plans. There is no subscription, no auto-renewal, and no cancellation maze.
A safety gate sits inside intake. If a dog has bitten someone and broken skin, has repeated snapping with contact, or has a serious aggression history, the funnel ends: no checkout, no sales pitch, no upsell — the owner is routed to a veterinary behaviorist referral and can email their intake summary.
CALM WALKS is a custom first-party web application, mobile-first and thumb-friendly, with application-owned identity so that autosaved intake, plans, walk records, wins, and plan history persist privately to the correct owner.
Current delivery and actors
Narrow exclusions
CALM WALKS is delivered as a first-party application with its own custom UI. The owner's identity is application-owned because durable, private, owner-specific state must survive across sessions: autosaved intake answers, the purchased plan and its preserved versions, walk check-ins, wins, and account controls. First use begins anonymously at the Landing Page; Sign Up establishes identity before protected intake work begins, and Login verifies returning owners so they can resume intake and reach their plans, logs, history, upgrade, and account controls.
Payment is a one-time purchase handled at Checkout, and the personalized plan is generated only after payment completes. The safety evaluation completes before checkout; when it is flagged, the owner remains on the veterinary behaviorist path and never reaches a selling surface. The $20 upgrade payment completes before weekly re-plans are unlocked.
Everything described in this document is current. No future-horizon features are defined by the source.
The CALM WALKS master prompt is supplied as a content_source and is authoritative. The verified product content it supplies is preserved throughout this document, including:
Build My Plan — $59; "$59. One payment. Not a subscription."; three-step "How it works" — 01 Tell us about your dog, 02 Get your personalized plan, 03 Report your week → your plan adapts.Other dogs, People, Bikes, Skateboards, Joggers, Cars, Mail carriers, Other, plus "Tell us exactly what happens." with placeholder "The off-leash Chihuahua near Maple Street…"; Step 3 "Where does it happen?" with Your usual route, Problem spots ("The corner near the park…"), usual trigger distance 5m–20m, environment cards Quiet residential, Busy street, Apartment complex, Park, Mixed, CTA Save my route →; Step 4 "What have you already tried?" with Trainer $400–$600, Behaviorist $600–$1,200+, Training app Used one, Online course Tried one, plus "What worked? What didn't?"; Step 5 "One important question." — "Has your dog ever bitten someone and broken skin?" Yes/No, plus bite to a person, repeated snapping with contact, and serious aggression history.Email My Intake Summary.See My Plan →.Start Exercise →), exercise 02 Check-in walk (Duration 15 min; Start Walk →), "3 / 5 walks logged", View Progress →.Start Exercise.Better Same Worse; Closest comfortable distance 20 ft; "Did anything unexpected happen?" with\x20\xe2\x98\x90 Loose dog,\x20\xe2\x98\x90 Construction,\x20\xe2\x98\x90 Crowded street,\x20\xe2\x98\x90 New trigger,\x20\xe2\x98\x90 Nothing unexpected; "Biggest win?" with "Milo looked at the Labrador and took the treat."; CTA Save Walk.20 ft → 15 ft ("Milo stayed calm at 20 ft during three walks."), 02 New environment added ("We're introducing the quieter side of the park."), 03 Progression slowed ("Construction increased reactions this week, so we're keeping difficulty steady."); "Why we changed it" — "Based on your Week 2 reports, Milo is consistently recovering faster around dogs but still struggles when the distance closes quickly."; CTA View Week 3 →.Upgrade for $20 →; "Still one payment. Nothing renews."Home | Plan | Walks | Wins | Account; wins grouped Today ("Milo saw a dog and stayed under threshold."), Yesterday ("Calm walk past the park entrance."), Sept 28 ("Recovered quickly after a surprise bike."); each item What happened → Date → Trigger.View, "Week 2" View, "Week 1" View; "Plans aren't overwritten."Export my data, Delete account; "Your plan is yours. One payment. Nothing renews."#FAF7F0, primary forest #1F4A31, CTA amber #E29A38, safety muted clay #C25E4C, cards cream #F4EFE5, borders sage #A7C4B0, headlines Fraunces/Lora, UI/body Inter, rounded 12–16px, lots of whitespace, soft borders instead of heavy shadows, mobile-first and thumb-friendly.Build My Plan — $59; immediately beneath it "$59. One payment. Not a subscription."; "How it works" three-step structure 01 Tell us about your dog, 02 Get your personalized plan, 03 Report your week → your plan adapts.Build My Plan — $59 begins the purchase journey; the three-step panels explain the loop.20 ft → 15 ft with the caption "Milo stayed calm at 20 ft during three walks."●────○────○────○────○) and ← Back / Continue → navigation. Step 1 "Let's start with your dog." with Name, Age, Breed / mix, Size, Walks per day. Step 2 "What sets them off?" with chips Other dogs, People, Bikes, Skateboards, Joggers, Cars, Mail carriers, Other, plus "Tell us exactly what happens." with placeholder "The off-leash Chihuahua near Maple Street…". Step 3 "Where does it happen?" with Your usual route, Problem spots ("The corner near the park…"), usual trigger distance slider 5m–20m, environment cards Quiet residential, Busy street, Apartment complex, Park, Mixed, CTA Save my route →.$400–$600, Behaviorist $600–$1,200+, Training app Used one, Online course Tried one, plus a large text box "What worked? What didn't?".Yes / No, plus questions about bite to a person, repeated snapping with contact, and serious aggression history. Uses the clay/terracotta safety treatment, not the normal amber CTA.Email My Intake Summary. No checkout, no sales pitch, no upsell.See My Plan →.See My Plan → control.Start Exercise →) and 02 Check-in walk (Duration 15 min; Start Walk →) — and This week's progress "3 / 5 walks logged" with View Progress →.Start Exercise. The plan schema requires trigger, distance, duration, success criteria, progression rule, unexpected-trigger handling, and a personalized "why".Start Exercise control.Better / Same / Worse, Closest comfortable distance (20 ft), "Did anything unexpected happen?" with\x20\xe2\x98\x90 Loose dog,\x20\xe2\x98\x90 Construction,\x20\xe2\x98\x90 Crowded street,\x20\xe2\x98\x90 New trigger,\x20\xe2\x98\x90 Nothing unexpected, "Biggest win?" text field ("Milo looked at the Labrador and took the treat."), CTA Save Walk.Save Walk control.20 ft → 15 ft ("Milo stayed calm at 20 ft during three walks."), 02 New environment added ("We're introducing the quieter side of the park."), 03 Progression slowed ("Construction increased reactions this week, so we're keeping difficulty steady.") — then "Why we changed it" ("Based on your Week 2 reports, Milo is consistently recovering faster around dogs but still struggles when the distance closes quickly.") and CTA View Week 3 →.View Week 3 → control.Upgrade for $20 →, and "Still one payment. Nothing renews." The offer must not use dark patterns.Upgrade for $20 → control, non-renewal messaging, no dark-pattern pressure elements.Today ("Milo saw a dog and stayed under threshold."), Yesterday ("Calm walk past the park entrance."), Sept 28 ("Recovered quickly after a surprise bike.") — with each item showing What happened → Date → Trigger. No points, no XP, no streak counter.Home | Plan | Walks | Wins | Account.View, "Week 2" View, "Week 1" View, and "Plans aren't overwritten."View controls, non-overwrite statement.Export my data, Delete account, and "Your plan is yours. One payment. Nothing renews." Deliberately no "Manage subscription" section.Each requirement is a distinct story point with provenance, lifecycle facts, and observable acceptance.
FR-1 — Core product loop (explicit) As a Dog Owner (Calm Walks customer), I should move through dog assessment → personalized plan → real-world walk → weekly check-in → adaptive re-plan, so that my plan keeps reflecting my dog and my street.
FR-2 — Landing hero and price transparency (explicit)
As a Dog Owner (Calm Walks customer), I should see "A training plan built for your dog's triggers. Rewritten every week." with the subtext "Tell us what your dog reacts to, where it happens, and what your walks actually look like.", the CTA Build My Plan — $59, and immediately beneath it "$59. One payment. Not a subscription.", so that I understand the product and its one-time price before starting.
FR-3 — How it works (explicit)
As a Dog Owner (Calm Walks customer), I should see the three-step structure 01 Tell us about your dog, 02 Get your personalized plan, 03 Report your week → your plan adapts, so that I understand the loop before I commit.
Build My Plan — $59.FR-4 — Five-step autosaving intake (explicit) As a Dog Owner (Calm Walks customer), I should complete a 5-step progress flow with autosave — Step 1 Your Dog, Step 2 Triggers, Step 3 The Street, Step 4 History, Step 5 Safety — so that my assessment is captured without losing work.
●────○────○────○────○).Continue → or return with ← Back.FR-5 — Step 1 Your Dog (explicit) As a Dog Owner (Calm Walks customer), I should enter Name, Age, Breed / mix, Size, and Walks per day under "Let's start with your dog.", so that the plan is built for my actual dog.
Continue → moves to Step 2.FR-6 — Step 2 Triggers (explicit)
As a Dog Owner (Calm Walks customer), I should select from chips Other dogs, People, Bikes, Skateboards, Joggers, Cars, Mail carriers, Other and describe exactly what happens in a large text field with placeholder "The off-leash Chihuahua near Maple Street…", so that my plan uses my dog's actual triggers, not generic categories.
Continue → moves to Step 3.FR-7 — Step 3 The Street (explicit)
As a Dog Owner (Calm Walks customer), I should describe my usual route, name problem spots such as "The corner near the park…", set my usual trigger distance on a 5m–20m slider, choose a walking environment card from Quiet residential, Busy street, Apartment complex, Park, Mixed, and use Save my route →, so that my plan is mapped to the streets I actually walk.
Save my route → moves to Step 4.FR-8 — Step 4 History (explicit)
As a Dog Owner (Calm Walks customer), I should select what I have already tried — Trainer $400–$600, Behaviorist $600–$1,200+, Training app Used one, Online course Tried one — and describe "What worked? What didn't?", so that my plan accounts for my prior experience.
FR-9 — Step 5 Safety Gate (explicit) As a Dog Owner (Calm Walks customer), I should answer "One important question." — "Has your dog ever bitten someone and broken skin?" Yes/No — plus questions about bite to a person, repeated snapping with contact, and serious aggression history, presented with the clay/terracotta safety treatment rather than the normal amber CTA, so that safety is assessed before any purchase.
FR-10 — Safety-flagged referral (explicit)
As a Safety-Flagged Owner (vet behaviorist referral), I should see "The Right Call Is A Vet Behaviorist" with "A veterinary behaviorist can assess the situation properly and help you build a safe plan." and CTA Email My Intake Summary, with no checkout, no sales pitch, and no upsell, so that I am routed safely out of the purchase flow with my intake information.
FR-11 — Checkout plan choice (explicit) As a Dog Owner (Calm Walks customer), I should choose between $59 Personalized 4-Week Plan (✓ Personalized intake, ✓ Trigger-specific exercises, ✓ Your walking environment, ✓ 4-week training plan, ✓ Progress criteria; "$59 — One payment") and $79 Plan + Weekly Re-Plans (✓ Everything in $59, ✓ Weekly check-ins, ✓ Updated training plan, ✓ "What changed & why", ✓ New trigger adaptations; "$79 — One payment"), so that I buy the level of adaptation I want in one payment.
FR-12 — Non-subscription messaging (explicit) As a Dog Owner (Calm Walks customer), I should see "No subscription. No auto-renewal. No cancellation maze." at Checkout and have the $79 option framed as a one-time upgrade rather than recurring billing, so that I trust the pricing.
FR-13 — Plan generation progress (explicit)
As a Dog Owner (Calm Walks customer), I should see "Building your plan…" with real progress states — ✓ Reading your dog's triggers, ✓ Mapping your walking environment, ● Building your first week, ○ Creating progression rules — then "Your plan is ready." with CTA See My Plan →, so that I know generation is real work, not a fake spinner.
See My Plan → opens my plan.FR-14 — Main Dashboard (explicit)
As a Dog Owner (Calm Walks customer), I should see my greeting, my dog's current week with a progress bar (e.g. "Milo's Week 2", 60%), Today's focus ("Stay below Milo's reaction threshold when passing dogs."), Today's exercises — 01 Calm observation (Other dogs; Starting distance 20 ft; Duration 5 min; Goal "Milo notices the dog and can still take a treat."; Start Exercise →) and 02 Check-in walk (Duration 15 min; Start Walk →) — and This week's progress ("3 / 5 walks logged"; View Progress →), so that I know exactly what to do today.
FR-15 — Exercise Detail (explicit)
As a Dog Owner (Calm Walks customer), I should see the exercise's Trigger, Start distance, Duration, "Success looks like", "If a trigger suddenly appears" handling guidance, and "Why this works" tied to my actual intake, with CTA Start Exercise, so that I can run the exercise correctly.
Start Exercise begins the exercise.FR-16 — Plan schema completeness (explicit) As a Dog Owner (Calm Walks customer), I should have every exercise carry trigger, distance, duration, success criteria, progression rule, unexpected-trigger handling, and a personalized "why", so that each exercise is actionable and specific to my dog.
FR-17 — Walk Check-In (explicit)
As a Dog Owner (Calm Walks customer), I should record "How did the walk go?" per trigger with Better / Same / Worse, the closest comfortable distance (20 ft), "Did anything unexpected happen?" with\x20\xe2\x98\x90 Loose dog,\x20\xe2\x98\x90 Construction,\x20\xe2\x98\x90 Crowded street,\x20\xe2\x98\x90 New trigger,\x20\xe2\x98\x90 Nothing unexpected, and "Biggest win?" ("Milo looked at the Labrador and took the treat."), then Save Walk, so that the app collects the data needed for adaptation.
FR-18 — Weekly Review (explicit) As a Dog Owner (Calm Walks customer), I should see "Your Week" with my walks logged count (e.g. "5 walks logged") and my wins (e.g. "Looked at the lab, took the treat.", "Passed the corner without lunging.", "Recovered faster after seeing a bike."), with "No streaks. No guilt.", so that reviewing my week feels rewarding without pressure.
FR-19 — Weekly Re-Plan diff (the moat) (explicit)
As a Dog Owner (Calm Walks customer), I should see "Your next plan is ready." with "What changed?" numbered diffs — 01 Starting distance changed 20 ft → 15 ft ("Milo stayed calm at 20 ft during three walks."), 02 New environment added ("We're introducing the quieter side of the park."), 03 Progression slowed ("Construction increased reactions this week, so we're keeping difficulty steady.") — then "Why we changed it" ("Based on your Week 2 reports, Milo is consistently recovering faster around dogs but still struggles when the distance closes quickly.") and CTA View Week 3 →, so that I can see exactly what changed and why.
View Week 3 → opens the next week's plan.FR-20 — Preserved plan versions (explicit) As a Dog Owner (Calm Walks customer), I should have my plan versions preserved rather than overwritten, so that I can see how my plan evolved.
FR-21 — $59 upgrade to weekly re-plans (explicit)
As a $59 Plan Owner Seeking Upgrade, I should see "Want your plan to keep adapting?" with "Your current 4-week plan is ready. Weekly re-plans let us adjust it based on what actually happens during your walks.", "Unlock weekly re-plans", "$20 one-time upgrade", "You already paid $59. You'll only pay the $20 difference.", CTA Upgrade for $20 →, and "Still one payment. Nothing renews.", so that I can unlock adaptation with a single difference payment.
FR-22 — No dark patterns in the upgrade offer (explicit) As a $59 Plan Owner Seeking Upgrade, I should be offered the $20 upgrade without dark patterns, so that my choice is genuinely mine.
FR-23 — Win Log (explicit)
As a Dog Owner (Calm Walks customer), I should see my wins grouped by date — Today ("Milo saw a dog and stayed under threshold."), Yesterday ("Calm walk past the park entrance."), Sept 28 ("Recovered quickly after a surprise bike.") — with each item showing What happened → Date → Trigger, and with no points, no XP, and no streak counter, so that my progress is recorded without gamification.
Home | Plan | Walks | Wins | Account.FR-24 — Plan History (explicit)
As a Dog Owner (Calm Walks customer), I should see "Plan History" with "Week 3 — Current" View, "Week 2" View, "Week 1" View, and "Plans aren't overwritten.", so that I can revisit any prior plan version.
FR-25 — Account (explicit)
As a Dog Owner (Calm Walks customer), I should see "Account" with "Milo" / Dog profile, "Your plan" / "$79 — Paid", "Receipt" / View receipt, "Your data" / Export my data, Delete account, and "Your plan is yours. One payment. Nothing renews.", so that I can manage my profile, receipt, and data.
FR-26 — No subscription management (explicit) As a Dog Owner (Calm Walks customer), I should find no "Manage subscription" section in Account, because there is no subscription.
FR-27 — Primary navigation (explicit)
As a Dog Owner (Calm Walks customer), I should navigate via Home | Plan | Walks | Wins | Account, so that I can reach each core destination.
FR-28 — Maple Street visual system (explicit)
As a Dog Owner (Calm Walks customer), I should experience the Maple Street system — background warm cream #FAF7F0, primary forest #1F4A31, CTA amber #E29A38, safety muted clay #C25E4C, cards cream #F4EFE5, borders sage #A7C4B0, headlines Fraunces/Lora, UI/body Inter, rounded 12–16px, lots of whitespace, soft borders instead of heavy shadows, mobile-first and thumb-friendly — so that the product feels like humane craft rather than a template.
FR-29 — Remembering and adapting (explicit) As a Dog Owner (Calm Walks customer), I should feel that "I told this thing exactly what happens with my dog, and now it actually remembers and adapts", reinforcing MY DOG → MY STREET → MY WALK → MY DATA → MY NEXT PLAN.
FR-30 — Self-service enrollment (required_inference) As a Dog Owner (Calm Walks customer), I should establish my identity at first use so that my autosaved intake and private plans, walk records, wins, and history are retained.
FR-31 — Returning verification (required_inference) As a Dog Owner (Calm Walks customer), I should verify my identity when I return so that I can resume intake and reach my plans, walk records, wins, history, upgrade, and account controls.
FR-32 — Payment precedes generation (required_inference) As a Dog Owner (Calm Walks customer), I should have my personalized plan generated only after my payment completes, so that the plan reveal follows a completed purchase.
See My Plan → opens the plan.FR-33 — Safety evaluation precedes checkout (required_inference) As a Dog Owner (Calm Walks customer), I should have my safety answers evaluated before checkout, so that a flagged dog is never routed into a purchase.
FR-34 — Upgrade payment precedes unlock (required_inference) As a $59 Plan Owner Seeking Upgrade, I should have weekly re-plans unlocked only after my $20 one-time payment completes, so that the unlock follows a completed difference payment.
Product context. This owner has a reactive dog and has already spent money on training — a trainer at $400–$600, a behaviorist at $600–$1,200+, a training app, or an online course. They are not new to dog training; they are looking for something specific enough to match their dog and their street.
Primary goal. A plan that remembers their dog's actual triggers and their actual walking environment and visibly adapts each week.
Distinct accepted responsibilities. Completing the five-step autosaving intake (dog details, triggers with free-text detail, route and problem spots with trigger distance and environment, prior training history, safety answers); choosing and paying once for the $59 or $79 plan; running prescribed exercises and check-in walks; recording per-trigger walk outcomes, closest comfortable distance, unexpected events, and the biggest win; reviewing the week; reading the "what changed and why" diff; and managing their profile, receipt, and data.
Relevant inputs or decisions. Dog name, age, breed/mix, size, walks per day; trigger chips and the exact description of what happens; usual route, problem spots, usual trigger distance (5m–20m), walking environment; prior approaches and what worked or didn't; safety answers; plan tier choice; per-walk outcomes.
Interactions with other accepted participants. The owner's intake and walk reports are the input the system uses to produce the next plan; the owner reads the resulting diff and rationale. The owner's safety answers determine whether they continue to Checkout or are routed to the veterinary behaviorist referral.
Observable success. The dashboard shows the current week and today's exercises; walks are logged against the week's target; the re-plan shows numbered changes with reasons; Plan History shows prior weeks preserved.
Product context. This owner's dog has bitten someone and broken skin, has repeated snapping with contact, or has a serious aggression history. They arrive through the same intake as any other owner.
Primary goal. To be routed safely to appropriate professional assessment with their intake information in hand.
Distinct accepted responsibilities. Answering the safety questions honestly; reading the referral guidance; emailing the intake summary.
Relevant inputs or decisions. The bite and aggression answers at the Safety Gate; the decision to email the intake summary.
Interactions with other accepted participants. Their answers determine the route; the referral screen presents the veterinary behaviorist guidance and the intake-summary email action. No selling surface is reachable from this route.
Observable success. The referral screen appears with "The Right Call Is A Vet Behaviorist" and the intake summary can be emailed — with no checkout, no sales pitch, and no upsell.
Product context. This owner bought the $59 Personalized 4-Week Plan and later wants their plan to keep adapting.
Primary goal. To unlock weekly re-plans with a single $20 difference payment and nothing renewing.
Distinct accepted responsibilities. Reading the upgrade offer; paying the $20 one-time difference; using weekly check-ins, updated plans, the "what changed & why" diff, and new trigger adaptations once unlocked.
Relevant inputs or decisions. The decision to accept or decline the $20 one-time upgrade.
Interactions with other accepted participants. The offer explains that they already paid $59 and will only pay the $20 difference; after payment, the weekly re-plan lifecycle becomes available to them.
Observable success. Weekly re-plans are unlocked, the offer states "Still one payment. Nothing renews.", and no dark patterns are used.
Build My Plan — $59, and "$59. One payment. Not a subscription.", then the three-step "How it works" panels.Continue →.Other dogs, People, Bikes, Skateboards, Joggers, Cars, Mail carriers, Other) and writes exactly what happens, e.g. "The off-leash Chihuahua near Maple Street…".Quiet residential, Busy street, Apartment complex, Park, Mixed), and uses Save my route →.$400–$600, Behaviorist $600–$1,200+, Training app Used one, and/or Online course Tried one, and writes what worked and what didn't.See My Plan →.Start Exercise.Better / Same / Worse, the closest comfortable distance (20 ft), any unexpected events (\xe2\x98\x90 Loose dog,\x20\xe2\x98\x90 Construction,\x20\xe2\x98\x90 Crowded street,\x20\xe2\x98\x90 New trigger,\x20\xe2\x98\x90 Nothing unexpected), and the biggest win ("Milo looked at the Labrador and took the treat."), then taps Save Walk.20 ft → 15 ft ("Milo stayed calm at 20 ft during three walks."), 02 New environment added ("We're introducing the quieter side of the park."), 03 Progression slowed ("Construction increased reactions this week, so we're keeping difficulty steady.").View Week 3 → and the next week's plan opens.View, "Week 2" View, "Week 1" View under "Plans aren't overwritten.", confirming prior versions were preserved.Yes, or reports a bite to a person, repeated snapping with contact, or a serious aggression history.Email My Intake Summary and their intake summary is emailed.Upgrade for $20 → and completes the one-time difference payment.Export my data, Delete account, and "Your plan is yours. One payment. Nothing renews."Export my data and receives their data.Delete account and confirms explicitly.Home | Plan | Walks | Wins | Account.The CREATIVE DIRECTION is authoritative for this section. The muse is Charles & Ray Eames; the headline idea is warm modernism for the walk you actually take — joyful colour held inside order, organic-modern shapes, gallery-like sequences, film-like pacing, warm documentary photography. The register is calm authority without coldness: a patient, methodical coach who remembers your street, your dog, your week — and quietly rewrites the plan. It must read as humane craft, not clinical tooling and not a content library.
Colour tokens (light mode)
| Role | Token | Value |
|---|---|---|
| Background | warm cream ground | #FAF7F0 |
| Surface / cards | cream, one step warmer | #F4EFE5 |
| Text / ink | forest | #1F4A31 |
| Primary | forest | #1F4A31 |
| Accent / CTA | amber | #E29A38 |
| Muted / structural | sage | #A7C4B0 |
| Safety | muted clay | #C25E4C |
| Paper offset shadow | warm offset | #E7DFCF |
| CTA label ink | deep ink on amber | #1A2B21 |
| Mid-century supports | mustard / teal / tomato | #C98F2B / #2E6F6A / #C4553B |
Colour rules. Warm cream #FAF7F0 carries roughly 70% of every screen; cards sit on #F4EFE5 so panels read as paper laid on paper rather than floating chrome. Forest #1F4A31 is the ink — all body copy, headings, hairlines, and the wordmark — and is never a big filled button. Amber #E29A38 is the single hot signal, reserved for exactly one action per screen (Build My Plan, Start Exercise, Save Walk, View Week 3) plus the progress bar fill. Sage #A7C4B0 is structural only: 1px borders, dividers, inactive step dots, chart rules. Clay #C25E4C appears only in the safety gate, the vet-behaviorist route, and Worse states — it must never appear on a selling screen, so the safety route is legible as a different mode at a glance. Mid-century supports (mustard #C98F2B, teal #2E6F6A, tomato #C4553B) may tint chart strokes and week badges but never text on the cream ground. Contrast: forest on cream ≈ 9.4:1; ink #1A2B21 on amber #E29A38 ≈ 7.6:1 for CTA labels; clay #C25E4C on cream ≈ 4.7:1 for safety body copy, with clay used as a 2px rule and label colour rather than as a fill behind small text.
Typography. Headings use Fraunces at optical size "soft" — a low-contrast, slightly slabby serif with a warm, almost letterpress feel — weights 400–600, never black; tracking -0.02em on display, 0 on section headings; sentence case everywhere except micro-labels. Jost (a Futura-lineage geometric) carries all UI, forms, chips, numbers, and body copy at 400/500, tracking +0.01em, with tabular numerals enabled for distances, durations, and week counts. The pairing is the Eames move: a warm humanist serif for the voice, a geometric sans for the instrument.
Type scale. 1.25 modular on mobile, 1.333 on desktop. Mobile → desktop: display 40→96, h1 32→56, h2 26→38, h3 21→26, body 17→18, label 13→12 uppercase tracked +0.08em, micro 11→11. Line-height 1.05 on display, 1.15 on headings, 1.6 on body. Display type uses clamp(40px, 7vw, 96px).
Shape language. Organic-modern: 16px radii on cards and inputs, 12px on chips and small controls, 999px on pill buttons and progress tracks. Eames curves are continuous and generous, never bubbly — a card corner should feel like a molded plywood edge, so radius is applied asymmetrically on hero panels (24px top-left, 16px elsewhere) to imply a hand-set panel. Hairline 1px sage borders do all the separating; shadows are replaced by a 2px warm offset (0 2px 0 #E7DFCF) that reads as paper thickness, not elevation. Diagonal 6px colour bands (amber/forest) mark section transitions and the plan-version diff. Circular elements — week badges, the trigger-distance dial, step dots — are true circles, echoing Eames' love of the sphere and the sun.
Layout. Gallery sequence on a 12-column grid with 24px gutters (16px at 375px), max content width 1120px, and a persistent 3-column "panel rhythm" borrowed from Eames exhibition walls: eyebrow label / content / action. The Landing Page is a stacked sequence of full-width horizontal bands, each band a different warm ground value, so scrolling feels like walking past framed panels. Intake is a single centred column at 640px max with the 5-dot progress rail pinned above and Back/Continue pinned in a bottom bar on mobile (thumb zone), side-by-side at 768px+. The dashboard is a two-track layout: a wide "today" column and a narrow right rail of week progress and wins, collapsing to one column under 768px. The Re-Plan screen is the signature layout: a two-column diff spread — previous week's values on the left in sage, new values on the right in forest with amber underline — with numbered change cards stacked between them, always side-by-side at 768px+ and stacked (old above new) at 375px. Plan History is a horizontal filmstrip of week panels, scrollable at 375px, tiled at 1280px.
Imagery. Warm documentary photography in natural light: a dog on a leash at mid-distance on a residential street, a hand offering a treat, a corner with a parked car — shot at eye level, shallow depth, cream and sage in the grade, never stock-studio white. One full-bleed hero photograph per band maximum; everything else is diagrammatic: mid-century line diagrams of a street corner with a marked trigger distance, concentric threshold rings around a dog silhouette, a route map drawn as a single sage line with amber problem-spot dots. Week badges and change indicators use simple geometric marks (circle, half-circle, chevron) in the Eames colour set. No illustrations of cartoon dogs, no emoji as primary iconography, no 3D renders, no gradient blobs.
Avoid. Blue or indigo anywhere in the palette — the amber/forest/clay system is the identity, and a blue link or focus ring would collapse it into a template. Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, or system-ui for headings or body; Jost and Fraunces carry the voice and must not be swapped for a neutral sans. A centred hero of headline + subtext + button over a gradient blob, and any grid of identical hover-lift cards with equal weight. Streaks, XP, points, confetti, badges, or guilt copy anywhere in Wins, Weekly Review, or the dashboard — the spec forbids pressure mechanics. Amber used for more than one action per screen, or amber/clay used on the safety route's CTA (the safety route has no selling action at all). Soft large-radius drop shadows, glassmorphism, blur panels, or translucent surfaces — separation is hairlines and paper offset only. Cartoon dog illustrations, emoji as primary icons, or stock photography on white studio grounds. Any "Manage subscription", renewal, upsell modal, or recurring-billing language — the product is one payment, and the UI must never imply otherwise.
Readable text and controls stay whole at every viewport. Headlines, wordmarks, labels, numbers, cards' text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Imagery, decoration, and motion follow the creative direction: a photograph, artwork, shape, texture, or animation may be cropped, bled off an edge, rotated, overlapped, or cut exactly as the direction asks, as long as it covers no readable text or control. Moving and scrollable content (marquees, tickers, carousels, horizontally scrollable rows) may cross the viewport or container edge by design: judge it by whether it actually moves or scrolls and whether every item becomes fully readable as it passes, never by the item cut at the edge in a still frame. With prefers-reduced-motion it stops and shows whole items: they wrap into rows, or sit in a horizontally scrollable row (overflow-x: auto) whose further items are reached by scrolling. Where a direction, requirement, brief, or finding asks readable text or a control to be cropped, clipped, covered, or run off an edge, keep it whole and carry the gesture with imagery or decoration instead; for readable text and controls this rule takes precedence.
The Re-Plan diff spread as a visible object. The public entry's signature idea is that the product's moat is shown, not described. On the Landing Page, the right 5 columns hold a full-height warm photograph of a dog at mid-distance on a residential street, bleeding off the right edge of the viewport with a 24px top-left radius. Over its lower-left corner sits a small cream panel (16px radius, sage hairline, 2px paper offset) carrying a live "this week's change" fragment: 20 ft → 15 ft with the amber underline and the caption "Milo stayed calm at 20 ft during three walks." That panel is the same object the owner meets again on the Weekly Re-Plan screen as the two-column diff spread — last week's value left in sage #A7C4B0, this week's right in forest #1F4A31 with a 3px amber underline, joined by a centred arrow rule, with numbered change cards stacked between them.
The left 7 columns hold an oversized Fraunces headline at clamp(40px, 7vw, 96px) — "A training plan built for your dog's triggers." on one line, then "Rewritten every week." set in amber on its own line as a full-width second beat — with the subtext at 18px forest and the amber pill Build My Plan — $59 pinned beneath it, immediately followed by the plain forest line "$59. One payment. Not a subscription." Below the fold line, the three-step "How it works" runs as three numbered panels on three different warm ground values with amber numerals 01/02/03 and a sage rule between them.
At 375px the photograph becomes a 240px full-bleed band above the headline, the overlay panel moves below the CTA and stays fully inside the viewport, and the headline wraps to four lines with no word broken. This concept recomposes only accepted content, states, and controls — the hero copy, the price line, the three-step structure, and the change fragment drawn from the accepted re-plan diff — and introduces no new behaviour, page, or destination.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
Landing Hero Motion Brief
20 ft → 15 ft, amber underline, caption "Milo stayed calm at 20 ft during three walks.") overlaid on its lower-left corner.cubic-bezier(0.22, 0.61, 0.36, 1) for entrances, 160ms for control feedback. Sections fade-and-rise 16px as they enter the viewport. Progress bars fill from 0 on mount. Hover on any card lifts it 2px and deepens its paper-offset from 2px to 4px — no scale, no glow. No bounce, no particles, no gradient drift.Build My Plan — $59, and the plain forest price line; the right 5 columns hold the photograph with the cream change panel already composed in its lower-left corner. The three "How it works" panels sit below the fold line on three different warm ground values.prefers-reduced-motion all reveals resolve instantly to final state, the diff shows both values side by side with no wipe, and the landing "what changed" ticker stops and wraps into static rows.Signature motion — the Re-Plan diff wipe. On the Weekly Re-Plan screen the diff animates as a wipe: the old value slides left and fades while the new value slides in from the right, 500ms, once, on entry. This is the product's moat made visible. Under prefers-reduced-motion both values are shown side by side with no wipe.
Plan Generation motion. The four-state checklist uses an active row that pulses a 2px amber dot, while completed rows draw a 1px sage rule beneath.
NFR-1 — One payment only (explicit) There must be no subscription, no auto-renewal, and no cancellation maze anywhere in the product. Rationale: the source states this as a hard constraint and repeats it at Checkout, in the upgrade offer, and in Account.
NFR-2 — $79 is a one-time upgrade (explicit) The $79 plan must be framed as a one-time upgrade, not recurring billing. Rationale: explicit source constraint.
NFR-3 — $20 difference upgrade (explicit) The $59 → weekly re-plans upgrade must be a one-time $20 payment covering only the difference already paid. Rationale: explicit source constraint.
NFR-4 — No subscription management (explicit) The Account screen must deliberately have no "Manage subscription" section because there is no subscription. Rationale: explicit source constraint.
NFR-5 — No selling on the safety route (explicit) When the safety gate is flagged, there must be no checkout, no sales pitch, and no upsell. Rationale: explicit source constraint; the safety route ends the funnel.
NFR-6 — Clay safety treatment (explicit)
The safety gate must use the clay/terracotta safety colour #C25E4C, not the normal amber CTA #E29A38. Rationale: explicit source constraint; the safety route must be legible as a different mode at a glance.
NFR-7 — No streaks or guilt (explicit) Weekly Review must have no streaks and no guilt mechanics. Rationale: explicit source constraint.
NFR-8 — No points, XP, or streak counter (explicit) The Win Log must have no points, no XP, and no streak counter. Rationale: explicit source constraint.
NFR-9 — Plan versions preserved (explicit) Plan versions must not be overwritten. Rationale: explicit source constraint; preserved versions are what make the "what changed and why" diff meaningful.
NFR-10 — No dark patterns (explicit) The $20 upgrade offer must not use dark patterns. Rationale: explicit source constraint.
NFR-11 — Actual triggers, not generic categories (explicit) The plan must use the owner's actual triggers, not generic categories. Rationale: explicit source constraint; the free-text trigger detail exists precisely for this.
NFR-12 — Mobile-first and thumb-friendly (explicit) The layout must be mobile-first and thumb-friendly, with lots of whitespace and soft borders instead of heavy shadows. Rationale: explicit source constraint.
NFR-13 — Maple Street tokens (explicit)
The Maple Street tokens must be applied consistently: background #FAF7F0, primary #1F4A31, CTA #E29A38, safety #C25E4C, cards #F4EFE5, borders #A7C4B0, headlines Fraunces/Lora, UI/body Inter, rounded 12–16px. Rationale: explicit source constraint.
NFR-14 — Readable text and controls stay whole (explicit) Headlines, wordmarks, labels, numbers, cards' text, and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no other element covering any part of them. Rationale: explicit direction constraint; for readable text and controls this rule takes precedence over cropping gestures.
NFR-15 — No blue or indigo (explicit) Blue or indigo must not appear anywhere in the palette; the amber/forest/clay system is the identity. Rationale: explicit direction constraint.
NFR-16 — Font discipline (explicit) Fraunces and Jost carry the voice and must not be swapped for a neutral sans; Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, and system-ui are excluded for headings and body. Rationale: explicit direction constraint.
NFR-17 — No soft drop shadows or glassmorphism (explicit) Separation must be hairlines and paper offset only; soft large-radius drop shadows, glassmorphism, blur panels, and translucent surfaces are excluded. Rationale: explicit direction constraint.
NFR-18 — Reduced-motion support (explicit)
Under prefers-reduced-motion all reveals must resolve instantly to final state, the diff must show both values side by side with no wipe, and marquees/tickers must stop and wrap into static rows. Rationale: explicit direction constraint.
NFR-19 — Payment precedes plan generation (required_inference) Personalized plan generation and the plan reveal must occur only after payment completes. Rationale: required to make the accepted post-payment generation journey executable.
NFR-20 — Safety evaluation precedes checkout (required_inference) Safety evaluation must complete before checkout, and flagged owners must remain on the vet behaviorist path. Rationale: required to make the accepted safety routing executable and to keep the no-selling constraint binding.
NFR-21 — Upgrade payment precedes unlock (required_inference) The $20 upgrade payment must complete before weekly re-plans are unlocked. Rationale: required to make the accepted upgrade journey executable.
NFR-22 — Identity continuity for durable owner state (required_inference) Application-owned identity must protect intake, plans, walk records, wins, history, upgrade, and account controls so that durable owner-specific state remains bound to the correct owner. Rationale: required because autosaved intake, private plans, and walk history must survive across sessions and remain private.
Assumptions
Constraints
#FAF7F0, forest #1F4A31, amber #E29A38, clay #C25E4C, cream cards #F4EFE5, sage borders #A7C4B0, Fraunces/Lora headlines, Inter body, 12–16px radii.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!