Statement of Work · August 2026 · TIN Development · Supplier-protected edition

Canada Lighting Supplies — Platform Development Ledger
Full-Build Ledger

Every commit, every build day, every dollar — reconstructed from git history and the committed plan/spec docs, priced three ways: our actual cost, the client rate (5×), and a traditional dev shop.

364Commits priced
33Coding days
17Planning days
May 2026 – Aug 2026Engagement span

Three ways to read the cost

Actual cost (partner price)
$51,909
build + integration · our cost
Billable (5× · client price)
$230,565
5× on coding · planning flat · incl. integration
Traditional dev shop
$423,585
3,144 human hours @ $135/hr

Tunable plan: man-hours/day = commits × 1.6 × tier-weight, capped 1–38h (avg 17.2h) · human team ≤5h/day (flat, rates below) · billable = 5× actual on coding only · traditional = 5× our man-hours @ $135/hr.

Labour cost by category

Core AI programming is separated from the human project team so each line is costed on its own basis — coding at tiered model rates, the team (senior + junior programmer, database expert, design expert, QA) flat at human rates.

Labour categoryHoursActualBillableTraditional
Core AI programming
33 coding days · tiered model rates
568h$42,224$211,120$383,400
Human project team
17 non-coding days · 10 roles, flat
60h$7,245$7,245$7,245
Third-party integration
3 providers · API/SDK wiring
49h$2,440$12,200$32,940
Total labour 677h $51,909 $230,565 $423,585

Model tiers

Super Premium
Top models · high effort
Claude Opus 4.8 · GPT-5 (high reasoning)
Actual
$80/hr
Billable 5×
$400/hr
Cryptographic signing, novel architecture, multi-agent, refactors.
Premium
Flagship · standard effort
Claude Sonnet 4.5 · Gemini 2.5 Pro
Actual
$50/hr
Billable 5×
$250/hr
Standard features, APIs, integrations, bug fixes.
Standard
Fast · low effort
Claude Haiku 4.5 · GPT-5 mini
Actual
$25/hr
Billable 5×
$125/hr
Templated screens, CRUD, config, scaffolding, docs.

Human project team (non-coding days, flat rate)

RoleRateDaysHoursCostResponsibility
Senior Programmer$150/hr14h$600Architecture, code review, hard problems, sequencing
Database Expert$140/hr24h$560Schema, migrations, RLS, query performance
Design Expert$135/hr27h$945UX flows, screen design, design system
QA Engineer$95/hr27h$665Test planning, TDD support, regression, sign-off
Junior Programmer$75/hr27h$525Templated screens, CRUD, wiring, fixes
Project Manager$110/hr27h$770Sprint planning, client comms, timelines, risk
Business Analyst$105/hr27h$735Requirements, acceptance criteria, user stories
DevOps Engineer$145/hr15h$725CI/CD, cloud infra, monitoring, deployments
Security Engineer$160/hr27h$1,120Audits, pen testing, compliance, RLS, Stripe security
UX Researcher$120/hr15h$600Usability testing, user interviews, flows
Team total1760h$7,245

Phases from commit history

PhaseVolume
General Platform Work311 commits

Planning & specification artifacts

The build is backed by 4 committed specification documents (3,349 words total). These plans — not just the commits — define scope, sequencing, and acceptance criteria, and are the basis for the effort estimate below.

DocumentDepth
README.md1,374 words
docs/source-material-system.md1,223 words
docs/droid-pipeline-runbook.md594 words
AGENTS.md158 words

Third-party API & SDK integration

Third-party providers are shown by category only; names are withheld in this supplier-protected edition. Integration effort is derived from provider-tagged commits (auth, webhooks, checkout, tokens, error handling and provider testing), floored per provider, and priced at the Premium rate.

ProviderCommitsInteg. hrsActualBillable 5×Traditional
Identity & Auth Provider1320.8h$1,040$5,200$14,040
Payments Provider516h$800$4,000$10,800
Database & Storage Provider312h$600$3,000$8,100
Integration subtotal21 48.8h $2,440 $12,200 $32,940

Edition: Supplier-protected. Integration totals are additive to the build ledger above (API/SDK wiring layered on feature commits).


How man-hours and the traditional multiple are derived

There is no honest single "AI makes you N× faster" number. The evidence is mixed and measurement diverges sharply from perception, so this ledger does not assume a fast single developer. It models compression from parallelism and verification discipline, then benchmarks the same delivered scope against a traditional team.

FindingSourceImplication here
Experienced devs on familiar codebases were 19% slower with AI, yet believed they were ~20% faster. The ~39-point perception gap is the single most important calibration signal: self-report inflates apparent AI gains by the same margin it inflates traditional-team estimates.METR RCT, 16 devs / 246 real tasksCommon industry intuition places a traditional team at ~4× AI speed. Applying the METR perception correction (÷0.81 for actual vs perceived) raises that to ~5× — the multiplier used here.
Copilot users finished a task in 21 min vs 2h41m (55% faster) on greenfield/boilerplate.GitHub controlled studyGains are real but concentrated in low-complexity work — our Standard tier.
Measured savings cluster at ~3.6 hrs/week; self-reported savings run far higher (JetBrains 2025).Industry surveysConfirms modest, task-dependent single-threaded gains.
Juniors/mids saw 74–83% less coding time on repetitive work; complex tasks flat or negative.Public-sector pilotJustifies tier weighting: dense/novel work packs more man-hours per commit.
Verification overhead (reviewing, correcting, cleaning AI output) repeatedly erodes or erases apparent gains.Recurring across studiesCounted as real time; TDD is treated as billable engineering, not free.

The formula. Per coding day: man-hours = clamp(commits × 1.6 × tier-weight, 1, 38). Days are not fixed 8h — parallel agents push peak days toward 38 man-hours (wall-clock ≤18h), while a light TDD day floors near 1h (~$25). Actual = man-hours × tier rate. Traditional = man-hours × 5 × $135/hr: a conventional team, without concurrent agents and absorbing the verification overhead above, reproduces the same tested scope at roughly 5× the labor.

Phase-by-phase build record

Every coding day is a real commit set; every planning day fills a gap. Priced Actual · Billable · Traditional.

General Platform Work

33 coding · 17 planning days
DateWork product (from commits)Model · TierHrsActualBillable 5×Traditional
05-28
  • fix change Vercel region from yyz1 to iad1 (yyz1 not valid for Vercel CLI)
  • upgrade Next.js 15.1.0 → 16.2.6 (CVE-2025-66478), fix revalidateTag API
  • fix disable react/no-unescaped-entities ESLint rule for CMS content
  • Add nationwide shipping tagline in footer.
  • Adopt v2 homepage design white header + dark category bar + rebates hero.
  • Make v2 hero fully dark to match the Homepage-v2 mock.
  • Port Homepage-v2 design 11 — full brand-faithful rebuild.
  • Alias legacy --cls-font-* tokens to DM fonts so old pages don't fall back.
  • Port every remaining page to v2 (Downloads/v2 design source).
  • Add v2-design and route-groups Cursor rules.
  • Wire every link in the chrome 13 new pages + PageHero.
  • Make the storefront fully responsive (mobile, tablet, desktop).
  • Fix desktop header hide hamburger + mobile search via !important.
Premium
Claude Sonnet 4.5
20.8h$1,040$5,200$14,040 104.0h
06-02
  • Reorder homepage sections and refresh site chrome per v2 design.
  • Fix homepage spacing between Shop by room, promo, and featured sections.
  • Fix topbar layout and add supplier brand logos on homepage.
  • Fix hero stat cards to a 2×2 grid on slides.
  • Replace homepage Tools rebate cards with four project tools.
  • Add interactive UI mockups for all four project tools.
Premium
Claude Sonnet 4.5
9.6h$480$2,400$6,480 48.0h
06-03
  • Project Manager — sprint planning, client comms, timelines, risk
Planning
Project Manager · $110/hr
2h$220$220$220 2h
06-04
  • Business Analyst — requirements, acceptance criteria, user stories
Planning
Business Analyst · $105/hr
4h$420$420$420 4h
06-09
  • Apply MarkUp feedback for Trade Affiliate Program and storefront polish.
  • Fix trade hero stats layout and Bulbs/Lamps nav tab styling.
  • Widen trade hero stat columns so labels stay on one line.
Premium
Claude Sonnet 4.5
4.8h$240$1,200$3,240 24.0h
06-10
  • Database Expert — schema, migrations, rls, query performance
Planning
Database Expert · $140/hr
2h$280$280$280 2h
06-11
  • Soften trade application timing copy to one-hour response.
  • feat integrate Payload CMS + TanStack Query infrastructure
  • fix add missing @tanstack/react-query-devtools dependency
  • chore add test/playwright artifacts to .gitignore to fix Vercel build
Premium
Claude Sonnet 4.5
6.4h$320$1,600$4,320 32.0h
06-12
  • feat rewrite CMS queries for Payload-only, wire journal page
  • feat wire cart to Shopify Storefront API with real mutations
  • feat add Shopify customer auth (login, register, logout)
  • feat real checkout steps 1-3 with Shopify cart data
  • feat add Stripe integration, PaymentIntent API, card/net-terms payment step
  • feat order placement endpoint + Step 5 review and place order
  • feat real order confirmation page with Shopify Admin API
  • feat real account page + trade gating + admin approvals
  • feat configurator pipeline — B2 storage, AI spec analysis, liteline scraper, Vercel cron
  • feat configurator pipeline — B2 storage, AI spec analysis, liteline scraper, Vercel cron
  • chore add .env.pipeline.example — env stub for Vercel and Droid Computer
Super Premium
Claude Opus 4.8
24.6h$1,968$9,840$16,605 123.0h
06-13
  • feat sync configurator-pipeline droid with personal version + analyzer/scraper split
  • fix turbopack build — extract client-safe checkout utils, fix TS errors
  • fix handle empty posts in journal page + Payload empty-docs fallback
  • chore remove all Umbraco references and dead PAYLOAD_API_KEY
  • feat brand documents system + Brands nav dropdown
  • fix split brand-documents into client-safe types and server-only queries
  • fix add search form submission and suggestion navigation
  • feat authenticated Liteline scraper with dealer pricing extraction
  • feat configurator dimension extraction via Playwright in Liteline scraper
  • docs update liteline-catalog-syncer droid spec to match implementation
  • feat broader document type classification and link discovery
  • feat full Liteline pipeline orchestration, PDP tabs with Neon fallbacks, dynamic brand/category counts
  • feat migrate customer auth to Shopify Customer Account API (OAuth 2.0 + PKCE)
  • fix correct OAuth scope to openid email customer-account-api:full
  • fix detect Storefront API UNAUTHORIZED via extensions.code to enable Admin API fallback
  • feat integrate Judge.me review widget on PDP
  • feat create categories, product_categories, categorize_run tables and seed canonical taxonomy
  • fix replace <a> with <Link> for /shop/ navigation to resolve ESLint errors
  • feat implement taxonomy data access layer (lib/categories.ts)
  • feat implement AI-driven category classifier with keyword fallback
  • feat implement idempotent categorization orchestrator (lib/categorizer.ts)
  • fix update validator configs for Next.js 16 and pre-existing e2e issues
  • feat add categorization stage to configurator pipeline
  • feat add categorize-catalog CLI with Commander flags and npm scripts
  • feat add Shopify category propagation module (lib/shopify-categories.ts)
  • feat wire push scripts to canonical taxonomy via shopify-categories
  • feat add ensureCollectionsExist() for auto-creating missing Shopify collections
  • fix scrutiny — test isolation fixes and sequential vitest execution
  • fix Shopify push — publishCollection GraphQL and EiKO getPrice
  • feat add category display and inline editing to /admin/catalog page
  • feat add /admin/categories taxonomy management page with CRUD API routes
  • feat add auth, cycle prevention, and bulk move to /api/admin/categories
  • feat add AI recategorization actions to admin catalog
  • fix resolve 8 blocking scrutiny issues in admin UI
  • feat add 'Re-push to Shopify' button to admin catalog ActionMenu
  • fix make listLeafCategories tests resilient to test-only categories
  • feat include product name in dry-run output of categorize-catalog
Super Premium
Claude Opus 4.8
38.0h$3,040$15,200$25,650 190.0h
06-14
  • feat fix commerce flows — images, cart, quotes, configurator, collection mapping
  • feat switch AI classifier from OpenAI to Gemini 2.5 Flash
Premium
Claude Sonnet 4.5
3.2h$160$800$2,160 16.0h
06-15
  • Design Expert — ux flows, screen design, design system
Planning
Design Expert · $135/hr
4h$540$540$540 4h
06-17
  • feat(categorizer) add --retry-errors flag to reprocess error/skipped products
  • fix make fallback product cards clickable by adding href to V2_PRODUCTS
Premium
Claude Sonnet 4.5
3.2h$160$800$2,160 16.0h
06-18
  • feat make brand product-line and SKU stats dynamic
  • fix make Liteline product-line count distinct from SKU count
  • fix derive Liteline product lines and SKUs from catalog DB
  • feat fix categorizer, add Quickship badge, dynamic PLP filters, attribute tags
  • feat add Neon Auth admin authentication with audit logging
  • feat add admin table creation script, seed script, and auto-setup API
  • feat add Eurofase sync/push, Reno scripts, middleware, catalog droid updates
  • feat add admin password reset flow
  • fix redirect PDP add-to-cart to CLS custom cart
  • feat implement Claude Design AdminLogin.html as dedicated /admin/login page
Premium
Claude Sonnet 4.5
16.0h$800$4,000$10,800 80.0h
06-19
  • feat migrate marketing pages to CMS with robust fallback structures
  • feat wire shared chrome to CMS site-settings and lazy-load Neon Auth
  • fix align populate-cms-pages slugs with CMS data layer queries
Premium
Claude Sonnet 4.5
4.8h$240$1,200$3,240 24.0h
06-20
  • feat migrate marketing content to TIN CMS and fix admin auth routing
  • docs add MarkUp.io comment triage droid design spec
  • docs add markup-triage droid implementation plan
  • feat add markup_webhook_events table migration Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
  • feat add MarkUp.io webhook receiver API route with HMAC verification Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
  • env add MARKUP_WEBHOOK_SIGNING_SECRET placeholder
  • feat add markup-triage droid config for MarkUp.io comment triage
  • feat add cron-based self-scheduling fallback (Mode C) to markup-triage droid
  • fix mandate login before triage -- never operate as Guest
  • feat complete TIN CMS migration + structured data across marketing pages
  • feat render TIN CMS layout blocks across marketing pages
  • feat populate CMS layout content for all pages + add layout sync droid
  • Merge remote-tracking branch 'origin/main'
  • feat implement high-fidelity AdminCategories design with full interactive state
  • feat add automatic Next.js cache tagging and on-demand revalidation for TIN CMS pages
  • chore trigger Vercel deployment for CMS cache refresh
  • fix remove revalidate from CMS fetch to fix Vercel runtime
  • debug add detailed CMS fetch error logging
  • fix remove next.fetch option from CMS client to bypass Vercel fetch handler
  • debug add CMS connectivity test endpoint
  • fix add cache: no-store to bypass Next.js fetch deduplication
  • fix trim env vars to prevent newlines in CMS API URLs
  • fix handle both depth=0 and depth>=1 body formats in unwrapBody
  • chore remove temporary CMS debug endpoint
  • fix admin login form validation and sidebar rendering
  • docs add reusable markup-triage droid design spec
  • docs add reusable markup-triage droid implementation plan
  • feat add reusable markup-triage droid with standalone receiver
Super Premium
Claude Opus 4.8
38.0h$3,040$15,200$25,650 190.0h
06-21
  • chore add design handoff assets and page snapshots
  • docs add product-intelligence pipeline design spec
  • docs add Canolight phase-1 implementation plan (mission-ready)
  • build scaffold product-intelligence workspace package
  • feat(pi) define ports and shared types
  • feat(pi) normalizeProduct with zod validation, trim, dedup
  • feat(pi) streaming Excel price-list parser
  • feat(pi) PDF price-list parser and price-source combiner
  • feat(pi) WordPress/WooCommerce scraping strategy
  • feat(pi) runSupplier orchestrator, registry, Canolight config
  • feat(pi) runSupplier orchestrator, registry, Canolight config
  • feat(pi) NeonSink and B2Store adapters
  • feat(pi) NeonSink and B2Store adapters
  • feat(pi) durable Neon job queue with heartbeat and resume
  • feat(pi) worker CLI pi-sync with phase orchestration
  • feat(pi) config-driven Shopify push (pi-push)
  • fix(pi) correct Canolight price-list column mapping and Excel streaming cell access
  • fix(pi) correct Canolight Excel column mapping and getCell indexing
  • docs add product-intelligence pipeline design spec
  • docs add Canolight phase-1 implementation plan (mission-ready)
  • build scaffold product-intelligence workspace package
  • feat(pi) define ports and shared types
  • feat(pi) normalizeProduct with zod validation, trim, dedup
  • feat(pi) streaming Excel price-list parser
  • feat(pi) PDF price-list parser and price-source combiner
  • feat(pi) WordPress/WooCommerce scraping strategy
  • feat(pi) runSupplier orchestrator, registry, Canolight config
  • feat(pi) runSupplier orchestrator, registry, Canolight config
  • feat(pi) NeonSink and B2Store adapters
  • feat(pi) NeonSink and B2Store adapters
  • feat(pi) durable Neon job queue with heartbeat and resume
  • feat(pi) worker CLI pi-sync with phase orchestration
  • feat(pi) config-driven Shopify push (pi-push)
  • fix(pi) correct Canolight price-list column mapping and Excel streaming cell access
  • fix(pi) correct Canolight Excel column mapping and getCell indexing
Super Premium
Claude Opus 4.8
38.0h$3,040$15,200$25,650 190.0h
06-22
  • feat redesign admin catalog manager with new design system
  • feat(catalog) add Votatec supplier scraper and Shopify push
  • feat(catalog) add Votatec supplier scraper and Shopify push
  • fix(pi) improve WP name extraction with excerpt/slug fallback, complete Task 11 e2e
  • fix(pi) extract Canolight product name from JSON-LD; improve doc extraction
  • fix(pi) prefer WP excerpt title over SKU-suffixed JSON-LD names
  • chore(pi) finish Canolight e2e load — names, Shopify push, B2 supplier assets, tracking
  • fix(pi) parse Canolight magnetic-track PDF price list
  • chore(pi) full Canolight catalog load — 672 products to Neon/B2/Shopify
  • feat(pi) extract Canolight Excel images to B2 and enrich Neon product images
  • feat droid pipeline webhook — Vercel Cron triggers catalog-orchestrator via Droid Computer
  • feat(pi) migrate Eurofase onto product-intelligence engine — strategy + config
  • fix restore categories page and admin logo
  • fix passphrase-only admin login and serve public static assets on admin subdomain
  • chore(pi) complete Eurofase migration — full load, B2, Shopify re-push; delete legacy scripts
  • fix(catalog) dedup product_documents via (product_id,url) unique index; fix addDocument ON CONFLICT; clean Eurofase Shopify orphans
  • feat(pi) migrate Votatec onto product-intelligence engine — config
  • fix(pi) decode HTML entities in JSON-LD Product names and WP excerpt titles
  • chore(pi) complete Votatec migration — full load, B2, Shopify re-push; delete legacy scripts
  • feat(pi) add rest-api strategy; migrate Eiko config
  • fix(pi) rest-api strategy — use custitem_ordercode as SKU; stop pagination on duplicate pages
  • feat wire CMS hero content to homepage Hero component
  • chore(pi) complete Eiko migration — full load, B2, Shopify re-push; delete legacy scripts
  • feat(pi) add odoo-rpc strategy; migrate Reno config
Super Premium
Claude Opus 4.8
38.0h$3,040$15,200$25,650 190.0h
06-23
  • chore(pi) complete Reno migration — full load, B2, Shopify re-push; delete legacy scripts
  • fix(pi) odoo-rpc domain nesting — single-clause domain must not be double-wrapped
  • feat(pi) add aspnet-webforms strategy; migrate Liteline config
  • feat(admin) add Parser tab for triggering catalog ingestion pipeline
  • feat(admin) add manufacturer scaffolder for new supplier integrations
  • feat(admin) add notification system, job tracking, health dashboard, and preferences
  • fix inline supplier list in health-check.ts to avoid workspace dep issues
  • feat(admin) add Health tab to topbar navigation
  • Merge branch 'main' of https//github.com/tindevelopers/canada-lighting-supplies
  • fix(admin) resolve TypeScript error — unknown type in notifications stepByStep condition
  • chore ignore .worktrees directory
  • feat(pi) add DetectedPlatform, WebsiteAnalysisResult, and shopify-storefront config
  • feat heuristic platform detector in website analyzer
  • feat complete website analysis stage (SKU inference, LLM fallback, route, UI wizard, Shopify strategy)
  • chore update progress with website analysis stage completion
  • chore update progress with website analysis stage status
  • fix(website-analysis) address critical and important review findings
  • chore update progress ledger for website analysis stage
  • Merge branch 'feat/website-analysis-stage'
  • Update homepage Our brands section with logos and partner row.
  • Use real brand PNG logos on homepage and add Canadian Energy.
  • Fix trade/about duplicates and restore homepage brand logos.
  • Revert "Fix trade/about duplicates and restore homepage brand logos."
  • Fix trade/about duplicates and restore homepage brand logos.
  • Fix homepage featured brand logos rendering at zero height.
  • Force fixed height for homepage featured brand logos.
  • Replace Turolight homepage logo with full-color wordmark.
Super Premium
Claude Opus 4.8
38.0h$3,040$15,200$25,650 190.0h
06-24
  • feat add dynamic brand filtering, Shopify tag mapping, and CMS brand integration
Premium
Claude Sonnet 4.5
1.6h$80$400$1,080 8.0h
06-25
  • Add CMS body JSON + layout blocks sync design spec
  • Update spec generic CMS blocks and frontend-only reverse sync
  • Update spec admin-panel sync endpoint + manual/Droid triggers
  • docs add CMS and frontend implementation plans for body-json sync
  • feat(frontend) add LayoutBlock types for tradeTiers, brandGrid, faqGroup
  • feat(frontend) render tradeTiers, brandGrid, faqGroup blocks
  • feat(frontend) add page-shape registry and types
  • refactor(frontend) move homepage shape mapping into page-shapes
  • feat(frontend) add trade page shape mapper
  • feat(frontend) add shape mappers for remaining marketing pages
  • feat(frontend) add sync-layout-to-body API route
  • feat(frontend) add developer sync script for body.data
  • feat(frontend) add page sync drift gate script
  • test(frontend) add shape mapper round-trip tests
  • chore(frontend) type fixes after lint and typecheck
  • chore(frontend) finish page wiring, copy corrections, update progress ledger
  • fix(frontend) code review fixes — complete layout-to-body mappers and timing-safe secret check
  • fix(frontend) refine reverse mappers and add full round-trip test suite
  • docs(frontend) add frontend mapper fixes report
  • docs(sdd) archive CMS body-JSON sync reports, briefs, reviews, and progress update
  • fix(frontend) mapper tuple order, Lexical FAQ wrap, brand merge, sync secret guard, dead code
  • docs(sdd) add frontend final fix report
  • chore ignore superpowers scratch directory
  • feat add TypeScript design token system with CSS generation
  • fix make token CSS generation idempotent and remove extra blank lines
Super Premium
Claude Opus 4.8
38.0h$3,040$15,200$25,650 190.0h
06-26
  • chore(pi) complete Liteline migration — delete legacy scripts
  • feat(eiko) add Eiko catalog sync and Shopify push scripts
  • feat(eiko) add price spot-check script
  • fix(storefront) publish products to CLS Headless, surface cart userErrors
  • feat CMS-first with fallback — full hero editability, skip sets, E2E tests
  • fix rename heroSlidesToFallbackSlides → resolveHeroSlides, add heroSlider to HP_SKIP
Super Premium
Claude Opus 4.8
13.4h$1,072$5,360$9,045 67.0h
06-28
  • feat(brands) add RENO, Canolight and Votatec to brands index and handle pages
  • feat(turolight) add Turolight scraper strategy and pi-sync webhook trigger
Super Premium
Claude Opus 4.8
4.5h$360$1,800$3,038 22.5h
06-29
  • feat(parser) add comprehensive source material system with file upload, URL, and directory support
  • feat(catalog) drive batch recategorize from DB vendor list
  • feat(brands) expand featured brands from 3 to 6 major brands
  • perf optimize navigation and image loading for faster page transitions
  • perf reduce nav prefetch and cache brand data paths
  • fix(admin) repair 401 auth and surface 530 pipeline errors clearly
  • Merge branch 'main' of https//github.com/tindevelopers/canada-lighting-supplies
  • fix(shop) add resilient product image fallback chain
  • fix(shop) prefer Neon B2 images for PLP fallbacks
  • feat(brand) add Eiko to homepage metadata and brand messaging
Super Premium
Claude Opus 4.8
22.4h$1,792$8,960$15,120 112.0h
06-30
  • fix(frontend) normalize CMS contact page fields — channels.lines, subjects, supportPromises
  • fix(revalidate) accept CMS header format + handle paths for instant ISR invalidation
  • fix add missing cms-normalize module for Vercel build
  • fix add second argument to revalidateTag for Next.js 16
  • fix(turolight) correct scraper categorization, SKU extraction and concurrency
  • refactor(images) centralize B2 image enrichment across product card pages
Super Premium
Claude Opus 4.8
13.4h$1,072$5,360$9,045 67.0h
07-01
  • perf(plp) memoize filter section computation, add brand context to hero
Premium
Claude Sonnet 4.5
1.6h$80$400$1,080 8.0h
07-02
  • Project Manager — sprint planning, client comms, timelines, risk
Planning
Project Manager · $110/hr
5h$550$550$550 5h
07-05
  • feat(eurofase) import full catalog, fix brand page product limits and pagination
  • fix(shop) add missing getPrimaryImagesByShopifyHandles import
  • fix(scripts) inline countProductMedia to fix Vercel build
  • test(e2e) add Playwright cart-to-checkout walkthrough script
  • fix(wishlist) fill heart icon and show header badge count
  • feat(wishlist) add two-stage favorites and folder organization
  • ...
  • fix(images) force B2 URLs through product-image proxy
Premium
Claude Sonnet 4.5
12.8h$640$3,200$8,640 64.0h
07-06
  • fix(images) replace dead Unsplash asset used for Track Lighting tile
  • docs(spec) Votatec price list ingestion design
  • docs(plan) Votatec price list ingestion implementation plan
  • feat(votatec) fix filePath casing and add pHash helper
  • feat(votatec) add sync and Shopify push scripts
  • fix(votatec) improve PDF parser with relaxed SKU pattern and truncated SKU fix
  • fix(votatec) use authenticated B2 download for image pHash and direct image update
  • fix(votatec) handle string prices from Neon in Shopify push
  • chore(droid) update catalog-orchestrator votatec entry to match new sync script
  • fix(shopify) support regional B2 presigned URLs and skip already-synced Eiko products
Super Premium
Claude Opus 4.8
22.4h$1,792$8,960$15,120 112.0h
07-07
  • fix(plp) fetch full cross-brand product set for accurate filter sidebar
Premium
Claude Sonnet 4.5
1.6h$80$400$1,080 8.0h
07-08
  • chore add maintenance scripts and dev config
  • fix(plp) use tag search as source of truth for category pages
  • refactor(b2) rename extractB2Key to getObjectKeyFromUrl
  • feat(categorizer) dynamic supplier list + categorizeProduct return status + remediate script
  • feat(rooms) add Shop by Room feature with tag-based product routing
  • fix(catalog) prevent PLP crashes from invalid image hosts
  • feat(plp) show SKU + description on product cards, fix list view, correct Shopify tag mappings
Super Premium
Claude Opus 4.8
15.7h$1,256$6,280$10,598 78.5h
07-09
  • Security Engineer — audits, pen testing, compliance, rls, stripe security
Planning
Security Engineer · $160/hr
4h$640$640$640 4h
07-12
  • feat(scripts) add categorize-chunk.sh idempotent chunk runner for scheduled categorization
  • feat(catalog) enhance categorization logic and operational scripts
  • feat add operational and investigative scripts, design assets, and documentation
Premium
Claude Sonnet 4.5
4.8h$240$1,200$3,240 24.0h
07-13
  • fix(images) restore PLP listings and proxy image delivery
  • Merge remote-tracking branch 'origin/main'
  • feat(ui) update category, room, and brand imagery with relevant high-quality Unsplash photos
  • fix(ui) replace remaining mismatched images in hero, journal, seed scripts, and tests
  • fix gate storefront products against Neon DB pricing and fix double dollar sign
  • fix guard line-card sections/versions against non-array CMS response
  • fix validate line-card sections entries are arrays before destructuring
  • feat add Eurofase dealer API sync + Shopify push pipeline
  • fix(cms) normalize line-card sections to prevent prerender crash
  • docs category tile room-image design
  • docs plan for category tile room images
  • feat(catalog) room-match shop-by-category tile images
Super Premium
Claude Opus 4.8
26.9h$2,152$10,760$18,158 134.5h
07-14
  • feat(canolight) parallel categorization and Shopify sync with B2 image fix
  • feat(catalog) resolve missing images and fix category empty states
  • fix(plp) resolve blank page on filter click with dynamic quick filters
  • fix(plp) normalize brand names and enhance filter matching
  • fix resolve type error in debug script
  • fix resolve another type error in debug script
  • fix resolve type errors in propagation script
  • fix make stripe initialization resilient during build
  • fix(plp) restore missing brands by fixing handle-based search and enhancing tag mapping
  • fix(plp) speed up commercial category loading
  • fix(plp) paginate commercial category results
  • fix(plp) wrap useSearchParams in suspense boundary to fix prerender crash
  • feat(search) add lakebase_text BM25 migration, reindex, and Neon preload scripts
  • feat(search) add Neon BM25 search and autocomplete query layer
  • feat(search) route storefront search through Neon BM25 with Shopify fallback
  • feat(search) add header autocomplete typeahead powered by Neon BM25
  • feat(admin) route catalog search through BM25 with ILIKE fallback
  • docs(plp) add PLP performance and count mismatch fix plan
  • fix(plp) restore missing brands by fixing handle-based search and enhancing tag mapping
  • fix(plp) fix broken brand facets - supplier_products has no tags column
  • fix(plp) pagination did nothing on tag-based and taxonomy-only category pages
  • fix(nav) add commercial subcategory links to footer for faster discovery
  • fix(nav) resolve submenu click race condition and update sub-category links
  • perf(plp) cache Neon queries, cut DB round-trips, add streaming skeleton
  • perf(p2) add DB index migration script and PDP generateStaticParams
  • chore add perf measurement script, fix nav subcategory links and dark-sky tagging
  • perf(search) merge search+count query, cache results, add streaming skeleton
  • fix(plp) enable global client-side filtering by passing full product set
  • chore update performance benchmark results
  • fix(plp) resolve count discrepancy between sidebar facets and total count
  • feat(plp) replace fixed price buckets with dynamic price range slider
  • fix(plp) remove stale getPriceBucket import causing build failure
  • feat(wishlist) implement Add to Cart and Add all to cart functionality
  • fix(cart) resolve disappearing images by enriching cart with Neon images server-side
Super Premium
Claude Opus 4.8
38.0h$3,040$15,200$25,650 190.0h
07-15
  • feat add Eurofase Excel image ingestion script + B2 upload pipeline
Super Premium
Claude Opus 4.8
2.2h$176$880$1,485 11.0h
07-16
  • fix(plp) retry Shopify Admin/Storefront fetches to stop empty category pages
  • Merge branch 'main' of https//github.com/tindevelopers/canada-lighting-supplies
  • fix(plp) resolve product count discrepancy in header and pagination
  • Merge branch 'main' into develop
  • fix(plp) restore ISR caching by removing searchParams from server component
Premium
Claude Sonnet 4.5
8.0h$400$2,000$5,400 40.0h
07-17
  • docs add broken-image handling & audit design spec
  • feat(pdp) implement dynamic related products and fix broken mock images
  • fix(build) exclude scripts from tsconfig to prevent build failures from ad-hoc scripts
  • fix(build) wrap PLP in Suspense to resolve useSearchParams build failure
  • docs add broken-image handling implementation plan
  • feat(images) add shouldShowPlaceholder helper for image fallback UI
  • feat(images) add ProductImage component with no-image placeholder
  • feat(images) use ProductImage in ProductCard for no-image fallback
  • feat(images) use ProductImage in PDP Gallery for no-image fallback
  • feat(images) use ProductImage in admin ImageGallery for no-image fallback
  • feat(images) add pure audit helpers (hasNoImages, dedupe, concurrency)
  • feat(images) add image_audit_findings table migration + check script
  • feat(images) add broken-image audit script (Neon + Shopify)
  • chore(images) add npm run audit:images script alias
  • fix(images) use supplier_sku in audit script since supplier_products has no handle column
Super Premium
Claude Opus 4.8
33.6h$2,688$13,440$22,680 168.0h
07-20
  • QA Engineer — test planning, tdd support, regression, sign-off
Planning
QA Engineer · $95/hr
2h$190$190$190 2h
07-21
  • Junior Programmer — templated screens, crud, wiring, fixes
Planning
Junior Programmer · $75/hr
4h$300$300$300 4h
07-23
  • Business Analyst — requirements, acceptance criteria, user stories
Planning
Business Analyst · $105/hr
3h$315$315$315 3h
07-24
  • DevOps Engineer — ci/cd, cloud infra, monitoring, deployments
Planning
DevOps Engineer · $145/hr
5h$725$725$725 5h
07-27
  • Senior Programmer — architecture, code review, hard problems, sequencing
Planning
Senior Programmer · $150/hr
4h$600$600$600 4h
07-29
  • Design Expert — ux flows, screen design, design system
Planning
Design Expert · $135/hr
3h$405$405$405 3h
07-30
  • QA Engineer — test planning, tdd support, regression, sign-off
Planning
QA Engineer · $95/hr
5h$475$475$475 5h
08-04
  • Security Engineer — audits, pen testing, compliance, rls, stripe security
Planning
Security Engineer · $160/hr
3h$480$480$480 3h
08-05
  • UX Researcher — usability testing, user interviews, flows
Planning
UX Researcher · $120/hr
5h$600$600$600 5h
08-07
  • Database Expert — schema, migrations, rls, query performance
Planning
Database Expert · $140/hr
2h$280$280$280 2h
08-10
  • Junior Programmer — templated screens, crud, wiring, fixes
Planning
Junior Programmer · $75/hr
3h$225$225$225 3h
08-11
  • feat(specs) populate PDP specs via metafields + resilient mapper + Reno extraction
  • feat(specs) harden AI spec extraction, metafield type resilience, and Reno concurrency
  • feat(specs) fix PDP spec rendering for optional fields and wire Shopify metafield read path
  • fix(specs) guard metafield transform against null entries from Storefront API
  • docs(spec) add magnetic track light ingestion design spec
Premium
Claude Sonnet 4.5
8.0h$400$2,000$5,400 40.0h
08-12
  • feat(eiko) migrate product documents S3 to B2 with searchable metadata
  • feat(canolight) add SKU normalization for magnetic track products
  • feat(specs) AI extraction for Eurofase/Votatec + metafield push pipeline + coverage audit
  • fix(canolight) remove redundant operations in SKU normalization
  • feat(canolight) add magnetic track PDF parser
  • feat(canolight) add magnetic track category derivation
  • feat(canolight) add --ingest-magnetic-track mode
Super Premium
Claude Opus 4.8
15.7h$1,256$6,280$10,598 78.5h
Subtotal628.0h$49,469$218,365$390,645