# Roadmap
- [x] English frontend (/en): shared chrome, shop flow, account, info pages, legal pages, Kennisbank + Peptidewijzer
- [x] English product texts via WPML (name + descriptions overlay)
- [x] English category names + English category URLs
- [ ] English blog posts (not yet translated in WPML)

## Backend (Laravel)
- [x] Supabase vervangen door de Laravel-backend (database, interne API, schema 1-op-1 overgezet)
- [x] Eén Laravel-app als deployment-unit: frontend in `src/` gebouwd naar `public/build`, webroot `public/`
- [x] Frontend-assets op de root (`/assets/...`), shell op `/shell.html`, afbeeldingen lokaal in `public/media` (stonden op de platform-CDN)
- [x] SSR-runtime naast de app (`npm run build:server` + `PW_SSR_RUNTIME_URL`), met terugval op de gepubliceerde shell
- [x] `npm run dev:all` start runtime + app samen; server-build in eigen map (`.output-server`) zodat bouwen elkaar niet overschrijft
- [x] Runtime-configuratie komt uit de backend: `php artisan settings export --env-file=.dev.vars`; de runtime injecteert GraphQL-URL + Turnstile-sitekey in de pagina (geen rebuild nodig)
- [x] GraphQL-endpoint en Turnstile-fouten zijn nu expliciet in de console i.p.v. stil falende calls
- [x] Admin-paneel op `/admin`: login met sessie (pw uit env), dashboard met gateway-/WooCommerce-status en tabellen, en een instellingenpanneel voor alle groepen (incl. runtime-secrets), in ShadCN-stijl
- [x] Admin in eigen huisstijl: logo, licht/donker thema, geen em-dashes
- [x] Inloggegevens beheerbaar in het paneel (wachtwoord als hash, alle sessies uit bij wijziging) en 2FA met Google Authenticator plus herstelcodes
- [x] CMS in het paneel: contentpagina's en blog met WYSIWYG (Quill), mediabibliotheek met picker, aparte galerijpagina, NL/EN per veld
- [x] Leesbare content-API voor de storefront: `/api/content/pages`, `/api/content/posts`, `/api/content/gallery`
- [ ] Contentpagina's en blog in de frontend op de Laravel-content laten wijzen (nu nog WordPress voor de blog)
- [x] Credentials beheerbaar in de backend (`/admin/settings`, `php artisan settings`)
- [x] ConfluxAPI als betaalprovider, credentials + routing in de backend
- [x] Gyvo als tweede gateway met instelbare multi-routing en fallback
- [x] Conflux-notificatie verifiëren en claimen in de backend (secret op één plek)

## Storefront
- [x] Track & trace in het klantaccount (code uit klantnotities/ordermeta, vervoerder, status, opnieuw bestellen)
- [x] Peptidewijzer-vragen, -teksten en productmapping beheerbaar in WP-admin (companion plugin)
- [x] Loyalty-regels (tiers, spaarfactor, waarde per punt, bonussen) instelbaar in WP-admin
- [ ] Loyalty: vervaldatum handhaven, tier op besteed bedrag, handmatig bij-/afboeken (zie docs/loyalty-programma.md)
- [ ] Configuratie-endpoint voor de runtime-creds (WC/SliceWP) i.p.v. de env-export
- [ ] Server functions naar Laravel verhuizen zodat er geen JS-runtime meer nodig is (start met de WooCommerce-proxy; dan verdwijnt ook mode B met de hydration-melding)
