B&J marketing site stack (`bj-next`, dev URL `bjweb.candidcreative.ca`) — VERIFIED LIVE STACK
Created 2026-05-24
Source-of-truth note: the repo's CLAUDE.md is the live source of truth. The BoucherJones_MarketingSite_TechStack.docx document in project knowledge is partially superseded (see column 3 for the supersession notes). When the case study describes the stack, use the values below.
| Layer | Choice | Note |
|---|---|---|
| Framework | Next.js 16 App Router, React 19, TypeScript strict | [Verified — repo CLAUDE.md]. Tech-stack doc said Next.js 15 — superseded. |
| Styling | Tailwind v4 + shadcn (New York style), tokens in globals.css @theme block |
[Verified — Kevin's memory]. Tech-stack doc referenced a custom design system with no Tailwind — superseded. |
| Database | PostgreSQL 17 | [Verified] |
| ORM / DB access | Raw pg in src/lib/services/ (no Prisma on this surface) |
[Verified]. CRM project plan calls for Prisma — that's the CRM stack, not the marketing site. Do not conflate. |
| API layer | Next.js Route Handlers (Express 5 migration deferred) | [Verified]. Tech-stack doc named Express 5 — superseded for the marketing site. |
| Authentication | JWT, role-based, multi-role | [Verified — tech-stack doc] |
| File storage | Garage (S3-compatible, self-hosted), WebP at 80% | [Verified — tech-stack doc] |
| Tooling discipline | ESLint 9 flat config (direct imports, not FlatCompat) + Prettier + Husky pre-commit (lint-staged + tsc) | [Verified]. Stage 3 enforcement layer complete. |
| Infrastructure | Docker Compose, --platform linux/amd64 on builds |
[Verified] |
| Public HTTPS | Cloudflare Tunnel (UUID 003a7aa0-9b94-4d33-8ebf-534e944b85c8) |
[Verified — Kevin's memory] |
| Hosting | Self-hosted VPS (Hetzner). Site runs in Proxmox LXC CT 104, boucher-jones, 192.168.1.78, port 3201, behind the tunnel. |
[Verified] |
| Service management | systemd: boucherjones-web. Deploy: git pull && npm ci && npm run build && sudo systemctl restart boucherjones-web |
[Verified] |
| Branch convention | Local main tracks origin/bj-next-foundation |
[Verified] |
Parallel services still running (do not disturb)
boucher-jones-kbon port 3100bj-website(legacy/predecessor) on port 3200- B&J intake form via Cloudflare Pages
[Verified — Kevin's memory]
Related
- reference B&J CRM platform — PLANNED stack (not yet built)
- reference Manifold data platform — Candid Creative product powering embedded widgets on the B&J site
- rule Rule (B&J): when describing the marketing site tech stack, the live repo CLAUDE.md is the source of truth — not the project-knowledge tech-stack doc
Referenced by (7)
- reference Boucher & Jones Fuels — case-study source material, v1 (parent index) relates-to
- reference B&J case study — critical overclaim guards (READ BEFORE WRITING) relates-to
- rule Rule (B&J): when describing the marketing site tech stack, the live repo CLAUDE.md is the source of truth — not the project-knowledge tech-stack doc depends-on
- reference B&J — repo and codebase facts (v2, verified 2026-05-24) relates-to
- reference B&J — database state (v2, verified 2026-05-24) — marketing site is materially read-only relates-to
- reference B&J — service uptime, memory footprint, and tunnel reachability (v2, verified 2026-05-24) relates-to
- reference B&J — five structural craft signals worth surfacing in case-study narrative (v2) relates-to