Verantwoording

Wat is gebouwd, wat niet.

Deze pagina hoort bij de oplevering, niet bij de gastbeleving. Alles wat hier staat is na te lopen in de code en in de crawlbewijzen.

GREEN Publieke site: home, wellness, behandelingen, overnachten, arrangementen, restaurant, cadeaubonnen, praktisch Volledig gebouwd en doorgeklikt op 390, 430, 768, 1280 en 1680 px.
GREEN Reserveringswizard met vijf stappen, prijsopbouw en statusmodel Werkt end-to-end; statussen bevestigd / aanvraag / wachtlijst / geannuleerd worden getoond en opgeslagen.
GREEN Gastomgeving “Mijn Midwolda” Toont reserveringen uit deze browser, wijzigen en annuleren aangevraagd; zonder account (demo).
GREEN Dashboard “Jouw dag” Dagoverzicht, actielijst, tijdlijn, indicatoren. Alle cijfers zijn herkenbaar als DEMO gemarkeerd.
GREEN Beheer (CMS-licht) Mededeling, tijdelijke sluiting en openingstijden aanpassen met preview en terugzetten.
GREEN Toegankelijkheid WCAG 2.2 AA nagestreefd: toetsenbord, focus, contrast, labels, reduced motion, drie tekstgroottes.
GREEN SEO-fundament Per pagina title, description, canonical, hreflang, Open Graph, structured data (HealthAndBeautyBusiness), sitemap, robots.
YELLOW Duitse vertaling Startpagina, praktische informatie en de reserveringswizard zijn in het Duits. De overige pagina’s nog niet — geen automatische vertaling als eindproduct.
YELLOW Betalingen Geen betaalprovider aangesloten. De wizard eindigt met “betaling volgt”; er wordt niets afgeschreven.
GREEN Beschikbaarheid en dubbele boekingen De boekings-API controleert de capaciteit in een SQLite-transactie; twee gelijktijdige boekingen kunnen niet allebei het laatste bed plaatsen. Getest met twee processen tegelijk.
YELLOW E-mail en bevestigingen De keten staat: outbox, Nederlandse en Duitse sjablonen, herhaalpogingen en een verwerk-endpoint. Er is nog geen mailprovider aangesloten, dus er wordt niets bezorgd — en dat zegt de site ook.
YELLOW Fotografie De beelden zijn conceptbeelden (AI). Echte fotografie en de rechten daarvan staan open als Q6.
YELLOW Letters De site gebruikt een systeem-serif voor prestaties en omdat er nog geen licenties zijn voor Cormorant Garamond / Inter. Zelf hosten is de volgende stap.
GREEN Boekingsbackend en database Gebouwd: SQLite met vier additieve migraties, transacties, statussen, idempotentie en een auditspoor. 80 tests in vijf lagen, alle groen.
RED Reviews Geen echte beoordelingen aangeleverd, dus de sectie staat bewust leeg in plaats van met verzonnen quotes.
GREEN Inloggen en accounts Gastportaal met magic link en beveiligde link per reservering; medewerkers met wachtwoord, rol en tweede factor (TOTP). Beheeracties vragen twee stappen.
YELLOW Medewerkersomgeving in productie De pagina bestaat en werkt tegen de API, maar de conceptomgeving praat nog niet met de productie-database. Koppelen en testen op de server is de volgende stap.

Bronnen

  • Crawl van saunabeautyfarmmidwolda.nl, 2 november 2026 (54 pagina’s in docs/sauna-midwolda/bewijs/raw).
  • Tarieven, openingstijden, faciliteiten, behandelingen, arrangementen en overnachtingstarieven komen uit die crawl.
  • Master Project Brief v1.0 en het uitvoeringsplan Fase 1 + 2 (v1.1), beide in deze repository.

Aannames

  • Capaciteitsgetallen per dagdeel zijn voorbeeldwaarden; de echte capaciteit is niet opgevraagd.
  • Tijdsloten voor behandelingen (09.30 – 16.45) zijn een voorstel, geen bevestigde agenda.
  • Annuleringstermijn van 24 uur is gebruikelijk in de branche maar nog niet door de eigenaar bevestigd.
  • De menukaart in het restaurant is een voorbeeld; alleen soep, lunchgerecht en ontbijttijd zijn bevestigd.

Wat er technisch achter zit

  • Statische site, gegenereerd uit één inhoudsbron (build.py), dus geen dubbele teksten.
  • Geen framework, geen externe libraries, geen tracking. Eén stylesheet en één script.
  • Reserveringen en instellingen staan in localStorage; bij het wissen van de browser ben je ze kwijt.
  • Beeld is geoptimaliseerd naar 1536 px breed, loading="lazy" buiten de eerste sectie.

Wat nodig is voor productie

  1. Boekingsbackend met echte beschikbaarheid en transacties.
  2. Betaalprovider (Stripe) met webhooks en idempotente verwerking.
  3. Authenticatie voor gasten en medewerkers, met rollen.
  4. Contentbeheer (WordPress headless) met publicatie en rollback.
  5. Echte fotografie en de rechten daarvan.
  6. Duitse vertaling van de resterende pagina’s, door een mens.