Samenvatting
Ma-Lowe Home Care Agency is een thuiszorgbureau in Alexandria, Virginia, met onder meer verpleging aan huis, persoonlijke verzorging en respijtzorg. De oude site draaide bij een externe partij op WordPress 5.6 en PHP 7.2, waarvoor sinds 2020 geen beveiligingsupdates meer verschijnen, en de inhoud was sinds eind 2022 niet meer aangeraakt. De nieuwe site draait op Next.js 16 met Payload CMS 3 en Postgres op een eigen VPS, met dezelfde 13 pagina's, 18 blogposts en afbeeldingen, en elk oud adres werkt nog. Daarachter zit een Front Desk: één plek waar het kantoor elke zorgaanvraag en sollicitatie ziet, ziet wie hem heeft opgepakt, en de persoon vanuit de kaart antwoordt. De eerste versie ging in één nacht van de eerste commit naar de server; in de week daarna kwamen er een auditlog, contentversies, een nachtelijke back-up, de Front Desk en nieuwe formulieren bij.
De vraag
Het kantoor wilde de site weg bij de vorige partij en in eigen beheer, zonder de bestaande vindbaarheid en links kwijt te raken: alle content moest mee en de oude adressen moesten blijven werken. Daarnaast kwamen formulierinzendingen binnen in twee Gmail-inboxen, zonder dat iemand kon zien of een collega de persoon al had teruggebeld of gemaild. Het beheer moest passen bij een klein kantoorteam zonder technische achtergrond.
Wat ik heb gebouwd
- Een migratie uit de WordPress REST API en de gerenderde thema-HTML: 13 pagina's, 18 blogposts en 41 afbeeldingen, via een idempotent importscript dat weigert te draaien zodra er in het CMS is gewerkt
- Een pariteitscontrole over alle 31 oude URL's op status en inhoud, en 308-redirects van de oude blogadressen naar hun nieuwe plek onder /home-health-care-blog/
- Payload CMS 3 met pagina's uit blokken (hero, tekst, beeld en tekst, dienstenraster, call-to-action, formulier, verzekeraars) en tot 50 bewaarde versies per pagina, post en site-instellingen
- Twee formulieren in plaats van vier: een zorgaanvraag die de papieren intake van het kantoor volgt en een sollicitatie, met honeypot, rate-limit en zod-validatie; elke inzending wordt een record in Postgres plus een notificatiemail via Resend
- De Front Desk: twee borden (cliënten en sollicitanten) met elk vijf stappen, belnotities, historie per aanvraag en antwoorden per mail met startteksten en een controlestap; de afleverstatus komt terug via een ondertekende Resend-webhook
- Een auditlog buiten de database: elke login, mislukte login en inhoudswijziging als append-only JSONL-regel op de server, met een viewer die alleen voor de beheerder openstaat
- On-page SEO die op de oude site ontbrak of fout stond: een eigen omschrijving per URL, https-canonicals, een robots.txt die stylesheets en afbeeldingen niet meer voor zoekmachines verbergt, en HomeHealthCareService-, BlogPosting- en BreadcrumbList-schema
- Hosting op een eigen VPS achter Caddy, met een nachtelijke back-up van database, media en auditlog, en een deploy die in een aparte map bouwt en daarna wisselt, zodat de site tijdens een build nooit zonder opmaak verschijnt
In detail
- Oude links blijven werken: pagina's staan op hun oude adres, en elke oude blogpost-URL stuurt permanent door naar de nieuwe plek
- Per aanvraag zichtbaar wie hem heeft, in welke stap hij staat en wat er al is gebeurd; een nieuwe aanvraag die na twee dagen niet is opgepakt wordt rood, een lopende zonder activiteit na zeven dagen oranje
- 'Take it' claimt een kaart met één voorwaardelijke SQL-update, zodat twee collega's niet dezelfde persoon terugbellen
- Het lidnummer bij Medicaid of de verzekeraar staat volledig in de Front Desk, maar gemaskeerd in de notificatiemail en in het auditlog
- Op mobiel een vaste balk met bellen en zorg aanvragen, en een knop op een dienstpagina opent het formulier met die zorgvorm al aangevinkt
- Call-to-actionteksten, kernpunten en verzekeraarslogo's zijn in het CMS te bewerken; een leeg veld valt terug op een standaardtekst
- 314 geautomatiseerde tests op de pure logica (formulieren, mail, rate-limit, SEO, audit, Front Desk-regels), en Lighthouse mobiel 100 voor toegankelijkheid en best practices
Resultaat
Gebouwd en getest. De site staat op een preview-omgeving die voor zoekmachines is afgeschermd en wacht op de overstap van het domein. Een rondleiding door de Front Desk met het kantoor volgt, en daarna een ronde over vindbaarheid, reviews en conversie.