{"id":838,"slug":"client-bjf-manifold-data-platform","title":"Manifold data platform — Candid Creative product powering embedded widgets on the B&J site","kind":"reference","scope":"client-case-studies","status":"current","audiences":["kevin","candid-team","client-prospect"],"topics":["tech-stack","data-infrastructure","client-boucher-jones","case-study-source","client-tech-stack"],"reference_body":"**Critical framing for any case-study writing:** Manifold is a **separate Candid Creative product** with its own brand, its own URL (`manifold.candidcreative.ca`), and its own roadmap. It is **not a B&J asset.** The B&J site **consumes** Manifold via API to power embedded widgets.\n\nThis is unusual: most agencies hardcode data into pages. Modeling the data layer as an independent product is itself a craft signal worth surfacing in the case study.\n\n| Layer | Choice |\n|---|---|\n| Backend | Express 5 |\n| DB | PostgreSQL via raw `pg` |\n| Language | JavaScript (ESM, no TypeScript) |\n| Frontend | None — API only |\n| URL | `manifold.candidcreative.ca` |\n\n**[Verified — Kevin's memory]**. Manifold provides endpoints like `/api/derived/tax-rates` and `/api/derived/regulations` consumed by B&J site widgets.\n\n## Lubricants ingest (verified entity counts)\n\n- 269 products / 41 families / 95 OEM specs / 280 spec-meeting relationships / 470 brand edges / 361 product images\n- 946 total entities, 1,443 total relationships\n\n**[Verified — Manifold ingestion roadmap v2.1]**\n\n## Phase 3 features (planned)\n\n- \"What's in a litre\" diesel tax-stack widget\n- Coloured-diesel eligibility explainer\n- Furnace oil weekly price band\n- Programs widget\n- Price seasonality bands\n- Cost-of-capital context\n\nSee [[client-bjf-roadmap-what-is-next]].","rationale_body":null,"metadata":null,"links":{"outgoing":[],"incoming":[{"slug":"client-bjf-case-study-source-v1","title":"Boucher & Jones Fuels — case-study source material, v1 (parent index)","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-custom-vs-industry-erp","title":"B&J architectural decision: custom platform vs Manage Petro / PDI / Cargas — why custom won","kind":"decision-record","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-marketing-site-stack","title":"B&J marketing site stack (`bj-next`, dev URL `bjweb.candidcreative.ca`) — VERIFIED LIVE STACK","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-arch-decisions-ranked","title":"B&J architectural decisions worth surfacing in case-study narrative — eight, ranked","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-critical-context-flags","title":"B&J case study — critical overclaim guards (READ BEFORE WRITING)","kind":"reference","scope":"client-case-studies","link_type":"relates-to"},{"slug":"client-bjf-lubricants-data-pattern-v2","title":"B&J — lubricants module shape (v2): 81 records in a TS module, deliberately lift-and-shift-ready for the Manifold swap","kind":"reference","scope":"client-case-studies","link_type":"relates-to"}]},"created_at":"2026-05-24T00:26:55.441Z","updated_at":"2026-05-24T00:26:55.441Z"}