Skip to content

feat: iBamboo buyer-intent guides (10 jobs) - #70

Merged
SteveSimonson merged 1 commit into
mainfrom
feature/buyer-intent-guides
Aug 6, 2026
Merged

feat: iBamboo buyer-intent guides (10 jobs)#70
SteveSimonson merged 1 commit into
mainfrom
feature/buyer-intent-guides

Conversation

@SteveSimonson

Copy link
Copy Markdown
Owner

Closes #69

Summary

  • 10 buyer-intent guides at /guides (SPA + routeMeta)
  • Catalog-adapted bamboo home jobs (dropped sheets/sponges/weak plant-pot intents)
  • FAQPage + ItemList SEO; nav Guides; AGENTS.md

Risk

Low — additive content/routes.

Test plan

  • npm run build green (10 guides in sitemap, routeMeta)
  • Live SEO after deploy
  • IndexNow

Skill

affiliate-buyer-guides + pr-ship-gate

Calm natural-living job pages (board care, prep board, humid bath,
kitchen swap, picnic, entry, desk, charcuterie, dinnerware, utensils)
with catalog picks, FAQ schema, hub, nav, route-meta, and sitemap.
Separate from gift listicles. Catalog-adapted intents.

Closes #69
@SteveSimonson

Copy link
Copy Markdown
Owner Author

Independent code review — PR #70 (buyer-intent guides)

Reviewed against catalog integrity, SEO shell (routeMeta + sitemap), Associates compliance, hard-no judgment, and calm natural-living voice (not clinical). Did not merge.

What shipped (verified)

Check Result
Routes /guides, /guides/:slug Wired in App.tsx
Nav Guides Layout.tsx
Catalog integrity 57/57 productSlugs resolve in products (48 unique; 0 missing)
Sitemap Hub + 10 guide URLs (npm run sitemap → 232 total URLs)
routeMeta 11 guide routes (/guides + 10); each detail has BreadcrumbList + ItemList + FAQPage
Amazon commerce rel="noopener noreferrer sponsored" + target="_blank" + affiliateUrl on Buy CTAs; on-site PDP links present
Footer disclosure Sitewide Layout (“As an affiliate…”) — no per-card Associate ID chrome
Build npm run build green (tsc + vite)

Guide slugs: bamboo-cutting-board-care, first-bamboo-prep-board, bathroom-organizer-humid, sustainable-swap-starter, bamboo-lunch-picnic-gear, entryway-drop-zone, desk-bamboo-setup, charcuterie-board-hosting, bamboo-dinnerware-everyday, kitchen-utensil-set-worth-it.


Catalog integrity

All picks are real catalog hooks. Examples: care guide → grand-prep-board / nesting-board-set / end-grain-butcher-block; desk → monitor-stand-riser / laptop-stand / desk-organizer-caddy; utensils → artisan-cooking-utensil-set / slim-spatula-trio / etc. No invented slugs, no dead destinations.

BuyerGuidePage correctly drops unresolved products (defensive), but none need dropping today.


Associates compliance

Matches established gift-guide / PDP pattern on this repo:

  • Buy buttons: noopener noreferrer sponsored, external, tagged via affiliateUrl
  • Dual path: “Why we list it” → /product/:slug, “Buy on Amazon” → Amazon
  • Price as ~… on Amazon · varies (hint, not promise)
  • FAQ PR workflow gates + limited-time catalog refresh #1 on every guide explains why checkout is Amazon (good shopper honesty)
  • No Associate tag printed in UI

Note (network skill vs site convention): affiliate-buyer-guides skill text prefers nofollow in the rel stack; iBamboo gift guides / PDP / ProductCard consistently omit nofollow and keep sponsored. This PR is consistent with the storefront. Not a regression — call out only if you want a network-wide policy tighten later.


SEO shell

  • Unique titles/descriptions; absolute canonicals in routeMeta
  • Hub ItemList of guides; detail ItemList of product destinations + FAQPage for all 10
  • type: 'article' on PageSeo (ogType still website via existing finalizeRouteMeta — same as gift guides)
  • Heroes resolve under /public/brand/categories/*

Nit: Skill asks for Article JSON-LD + FAQPage. This PR (like /gifts) ships ItemList + FAQPage + breadcrumbs instead. Fine for listicle-style pages and consistent with gifts; if you want strict skill parity, add Article later without blocking ship.

Nit: “Keep reading” is buyerGuides.filter ≠ current).slice(0, 3) — first three others, not topical siblings. Same pattern as gifts; cheap follow-up to wire related jobs by category/query.


Hard nos + human voice (spot-check)

Spot-checked full prose for:

  1. bamboo-cutting-board-care — dishwasher/soak/frozen-joint hard no; wash-dry-oil voice is practical, not lab theater
  2. bathroom-organizer-humid — standing water / sealed wet cotton; “steam is fine; soap puddle is not”
  3. desk-bamboo-setup — measure depth before 12 organizers; ergonomics before décor cosplay
  4. first-bamboo-prep-board, charcuterie-board-hosting, kitchen-utensil-set-worth-it — all have opinionated hard nos, job-specific pickWhy, no medical/clinical claims

All 10 guides have hardNo, 3 body sections, 4 FAQs, 5–6 catalog picks. Anti-slop scan clean (no “ultimate guide / ever-evolving / whether beginner or pro” skeleton). Calm natural-living voice holds; bath guide does not drift into spa-medicine claims.

Nit — depth: Approximate body word counts land ~270–415 words (entryway thinnest). Skill target is ~650–1000. Pages still read as judgment, not keyword shells, but they are lean. Future pass can thicken decision frames without changing structure.

Nit: FAQ #1 is identical on all 10. Useful compliance, slightly repetitive for SERP uniqueness. Consider one shared chrome block later so FAQ schema diversifies.


Other nits (non-blocking)

  1. buyerGuidesForProduct is unused — gift guides already deep-link from PDP; buyer guides don’t. Wire Product.tsx later for internal discoverability.
  2. Home still features gifts only — optional hub card for /guides if guides are a primary growth lever.
  3. Sitemap helper name extractGiftGuideSlugs reused for buyer guides — works; rename is hygiene only.
  4. No IndexNow / live SEO in this PR (called out in test plan) — do after deploy.

Bugs

None found that should block merge. Catalog, routes, SEO injection, compliance, and voice are solid for an additive content PR.

Verdict rationale

Ship-quality implementation of the affiliate-buyer-guides SPA path for iBamboo. Nits are length/schema/discoverability polish, not correctness or compliance failures.

VERDICT: APPROVE_WITH_NITS

@SteveSimonson
SteveSimonson merged commit b37e091 into main Aug 6, 2026
1 check passed
@SteveSimonson
SteveSimonson deleted the feature/buyer-intent-guides branch August 6, 2026 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Buyer-intent guides for iBamboo (affiliate-buyer-guides)

1 participant