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:
- Linda Hurlbut - about grapefruit quality
- Phil Myers - about tangerines and Red Navels
- 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 devand 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
-
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.
-
Pickup Model: Unlike Tuxedo's dual shipping/pickup, IRD uses pickup-only with scheduled truck stops.
-
Schedule PDFs: The site links to PDF schedules for each region - this could be integrated into the stops system.
-
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:
-
Subagent-Driven (recommended) - I dispatch a fresh subagent per task, review between tasks, fast iteration
-
Inline Execution - Execute tasks in this session using executing-plans, batch execution with checkpoints
Which approach?