Files
route-commerce/docs/superpowers/plans/2026-01-09-indian-river-data-migration.md
T

8.7 KiB

Indian River Direct Data Migration Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Update the app's mock data and Indian River Direct storefront to match the scraped data from indianriverdirect.com - products, brand story, team, seasonal schedules, and pickup-only model.

Architecture: Maintain existing file structure. Update mock-data.ts with real products and brand info. Update IRD storefront pages with authentic content from the source site. No structural changes.

Tech Stack: Next.js, TypeScript, Tailwind CSS (existing)


Data Summary from Scrape

Products

Product Price Type Notes
Peaches - 2026 Pre-Order $55.00 Pre-order 25 lb box, Titan Farms SC, June-Aug
Pecans $13.00 Pickup Only 1 lb bag, Ellis Brothers GA
Blueberries TBA Pickup Only July only

Brand Identity

  • Established: Since 1985
  • Locations:
    • Office: 135 North 2nd Street, Fort Pierce, FL 34950
    • Grove: 23298 Orange Avenue, Fort Pierce, FL
  • Acquired: Fort B Groves (direct source)
  • Key Differentiator: Farm-to-table direct model
  • Products Source: Titan Farms (peaches SC), Ellis Brothers (pecans GA)

Seasonal Calendar

  • Peaches: June 12 - August 2, 2026
  • Blueberries: July only
  • Citrus: Winter season

Team

  • Dan (Owner)
  • Angela (Office Manager/Customer Support)
  • Mariah (Digital Marketing/Customer Support)
  • Kenny, Exzavier, Jaime, Ponce (Drivers/Sales)

Task 1: Update Mock Data

Files:

  • Modify: route_commerce-main/src/lib/mock-data.ts

  • Step 1: Update brand info

Replace lines 4-7 with:

export const mockBrands = [
  { id: "brand-tuxedo", name: "Tuxedo Corn", slug: "tuxedo", accent_color: "#22c55e" },
  { id: "brand-ird", name: "Indian River Direct", slug: "indian-river-direct", accent_color: "#f97316" },
];

Add brand settings after line 93:

export const mockBrandSettingsIRD = {
  brand_name: "Indian River Direct",
  founded: "Since 1985",
  office_address: "135 North 2nd Street, Fort Pierce, FL 34950",
  grove_address: "23298 Orange Avenue, Fort Pierce, FL",
  description: "Family-owned and operated, bringing fresh fruit from our groves to your neighborhood since 1985.",
  phone: "(772) 465-1234",
};
  • Step 2: Update IRD products

Replace the IRD products in mockProducts (lines 16-21) with:

  // Indian River Direct products (based on indianriverdirect.com)
  { id: "prod-ird-peach-1", name: "Peaches - 2026 Pre-Order", price: 55.00, description: "25 lb box of Freestone Peaches from Titan Farms, South Carolina. Hand-picked at peak ripeness, available June-August 2026. Generally 40-60 peaches per box.", type: "peaches", image_url: "https://cdn.shopify.com/s/files/1/0506/2908/3294/files/Untitleddesign.png", shipping_type: "pickup", brand_id: "brand-ird", is_active: true, pickup_type: "scheduled_stop", seasonal: true, season_start: "June", season_end: "August" },
  { id: "prod-ird-pecans", name: "Pecans", price: 13.00, description: "1 lb bag of premium pecans from Ellis Brothers Pecans, Georgia. Rich, buttery flavor - perfect for baking, snacking, or recipes.", type: "nuts", image_url: "https://cdn.shopify.com/s/files/1/0506/2908/3294/files/Pecans---INDIANRIVER-42.jpg", shipping_type: "pickup", brand_id: "brand-ird", is_active: true, pickup_type: "scheduled_stop" },
  { id: "prod-ird-blueberries", name: "Blueberries", price: 0, description: "Fresh blueberries available in July. Price TBA.", type: "berries", image_url: null, shipping_type: "pickup", brand_id: "brand-ird", is_active: true, pickup_type: "scheduled_stop", seasonal: true, season_start: "July", season_end: "July", price_tba: true },
  • Step 3: Add seasonal/weather stops pattern

Add a note about seasonal stops structure (append after line 34):

// IRD stops are seasonal - peaches in summer, citrus in winter
// Schedule PDFs available at: https://indianriverdirect.com/pages/store-locator
  • Step 4: Remove old citrus products

Remove the old citrus products (prod-ird-1 through prod-ird-5) since the site structure is different.


Task 2: Update Indian River Direct Homepage

Files:

  • Modify: route_commerce-main/src/app/indian-river-direct/page.tsx

  • Step 1: Read current file

cat route_commerce-main/src/app/indian-river-direct/page.tsx
  • Step 2: Update hero section with Peach Farm Direct branding

The site shows two brands: "Peach Farm Direct" (summer) and "Indian River Direct" (citrus/winter). Update hero to reflect this.

  • Step 3: Add News Board section

Add seasonal announcements from the scraped site:

The 2026 Peach Schedule is now Available online. Pre-order is also open, but not required. Walk up customers are welcome.
Peach Season begins June 12th through Aug 2nd.
  • Step 4: Add "Since 1985" badge and brand story

Update the about section with:

  • "Since 1985" badge

  • Family-owned messaging

  • Direct farm-to-table promise

  • Step 5: Add testimonials from the site

Include the 3 testimonials from the homepage:

  1. Linda Hurlbut - about grapefruit quality
  2. Phil Myers - about tangerines and Red Navels
  3. Bill Prue - about Orrie Tangerines
  • Step 6: Add newsletter signup section

Match the "Sign up for savings and tour updates" section from the scraped site.


Task 3: Update Indian River Direct Layout

Files:

  • Modify: route_commerce-main/src/app/indian-river-direct/layout.tsx

  • Step 1: Update metadata

export const metadata: Metadata = {
  title: "Indian River Direct | Peach & Citrus Truckload",
  description: "Fresh peaches and citrus delivered straight from our groves to truckload sales in your neighborhood. Family-owned since 1985.",
};

Task 4: Create Store Locator Page

Files:

  • Create: route_commerce-main/src/app/indian-river-direct/stores/page.tsx

  • Step 1: Create page matching scraped site's store-locator

// Route: /indian-river-direct/stores
// Shows: Links to schedule PDFs and seasonal pickup locations
// Content from indianriverdirect.com/pages/store-locator

export default function StoreLocatorPage() {
  return (
    // Hero section with "Keep up to date with Indian River Direct & The Peach Farm Direct"
    // Links to OH-IN-KY-WV and WI-IL schedule PDFs
    // Pickup-only notice for pecans
    // Newsletter signup
  );
}

Task 5: Update Brand Config

Files:

  • Modify: route_commerce-main/src/config/brands.ts

  • Step 1: Add IRD brand configuration

// Add IRD brand config
export const brandConfigIRD = {
  name: "Indian River Direct",
  tagline: "Farm-Direct to Your Neighborhood",
  founded: 1985,
  accent_color: "#f97316", // Orange for citrus
  secondary_color: "#ea580c",
  features: {
    preorder: true,
    pickupOnly: true,
    seasonal: true,
  },
  seasonal: {
    peaches: { start: "June", end: "August" },
    blueberries: { start: "July", end: "July" },
    citrus: { start: "November", end: "April" },
  },
};

Task 6: Update Admin Product Management

Files:

  • Modify: route_commerce-main/src/app/admin/products/page.tsx

  • Step 1: Add product type filtering

Filter products by:

  • preorder - peaches need pre-order

  • pickup_only - pecans and blueberries

  • seasonal - shows season dates

  • Step 2: Add price TBA support

Handle products where price is $0 with "Price TBA" display.


Verification

  • Run: npm run dev and navigate to /indian-river-direct
  • Verify products show correct prices and descriptions
  • Verify seasonal badges appear on peaches
  • Verify "Price TBA" shows for blueberries
  • Verify pickup-only notice for pecans

Notes

  1. Seasonal Nature: The IRD site is highly seasonal - peaches in summer, citrus in winter. The app needs to handle products being unavailable/out of season.

  2. Pickup Model: Unlike Tuxedo's dual shipping/pickup, IRD uses pickup-only with scheduled truck stops.

  3. Schedule PDFs: The site links to PDF schedules for each region - this could be integrated into the stops system.

  4. Brand Identity: The "Peach Farm Direct" summer branding and "Indian River Direct" winter branding should be represented in the UI.


Plan saved: docs/superpowers/plans/2026-01-09-indian-river-data-migration.md

Two execution options:

  1. Subagent-Driven (recommended) - I dispatch a fresh subagent per task, review between tasks, fast iteration

  2. Inline Execution - Execute tasks in this session using executing-plans, batch execution with checkpoints

Which approach?