I’ve open‑sourced shop404 — a small, realistic demo shop you can run locally or in Docker to validate analytics and experimentation setups before they ever touch production.

Repository: https://github.com/Puttrix/shop404

Why this matters

  • Prevent bad data: Catch tracking gaps, naming drift, and consent issues early.
  • Parity checks: Verify GA4 vs Matomo mappings with the same journeys.
  • Faster onboarding: Practice clean implementations without legacy constraints.
  • Smoother launches: Rehearse GTM/MTM, consent, and experiments end‑to‑end.

What shop404 is

  • Lightweight demo: simple ecommerce flow plus a multi‑step donation wizard.
  • Tool‑agnostic: emits a unified data layer that GTM (GA4) and MTM (Matomo) can consume.
  • Consent‑aware: set up GTM Consent Mode v2 and Matomo _paq.requireConsent side‑by‑side.
  • Runtime config: inject IDs/URLs via /config.json so you can quickly switch environments.
  • Local or Docker: easy to spin up for QA, workshops, or CI smoke checks.

Tools you can practice

  • GA4 via GTM: ecommerce events, list impressions, purchase, and donation steps.
  • Matomo via MTM: cart updates, content tracking, and parity with GA4 naming.
  • Optimizely Web: drop in the snippet to demo activation + measurement (optional).
  • ODP: wire up SDK for event capture and profile enrichment (optional).

Quick start See the README for authoritative steps. Typical flow:

git clone https://github.com/Puttrix/shop404.git
cd shop404
npm install
npm run dev    # http://localhost:5173

To test tags in dev, point /public/config.json (or envs in Docker) at your GTM/MTM containers and optional Optimizely/ODP URLs. Keep secrets out of Git.

Credible testing checklist

  • Always include currency on cart/checkout/purchase; keep transaction_id unique.
  • For list impressions, include list context and stable indexing.
  • Test consent “on” and “off”, verify behavior in GTM Preview and MTM Preview.
  • Compare GA4 vs Matomo payloads for key events to confirm mapping.

Use cases

  • Pre‑launch QA for tagging plans
  • Training and demos without touching production
  • Migration dry‑runs (GA4 ↔ Matomo) with the same traffic

Roadmap (short)

  • Snapshot tests for emitted payloads and GA4/Matomo parity
  • Example Optimizely variations for activation patterns

If you try shop404 and want something added, open an issue or ping me.