Changelog
Overzicht van alle wijzigingen aan de website
24 december 2025
Fix: Daily dive notifications kijkt nu naar duiken sinds gisteren in plaats van alleen vandaag
Voeg uitgebreide logging toe voor datum debugging in calendar URL generatie
Combineer aantal en namen van deelnemers in één regel in iCal feed
Detecteer en vervang oude format calendar short URLs
Verbeter URL logging en cache instellingen voor calendar feed
Voeg voornamen van deelnemers toe aan iCal calendar feed
Verbeter check voor bestaande calendar short URLs en voeg uitgebreide logging toe
Verbeter calendar feed: check bestaande short URLs, verwijder colon escape, gebruik adres als locatie
Verbeter calendar feed: verwijder inschrijflink, fix reminder volgorde en newline handling
Fix TypeError: price.toFixed is not a function - voeg type checking toe voor price veld
Voeg iCal line folding toe en verbeter escaping voor calendar feed compatibiliteit
Voeg debug logging toe aan calendar feed en verbeter escaping van speciale karakters
Fix calendar feed: corrigeer GPS property handling om lege calendar te voorkomen
Voeg uitgebreide calendar features toe om deelname te stimuleren
Verhoog timeouts en delays voor Shlink API om timeout problemen op te lossen
Updated deps
Fix ESLint warnings en voeg calendar URL generatie toe aan post-deploy script
Voeg calendar_short_url toe aan Dive fields en implementeer iCal feed met calendar short URLs
Fix: Vervang interne API call door directe slug generatie logica
Fix: Verwijder dubbele errors declaratie in shorten-urls cron job
Verbeter error handling en status codes voor cron jobs
Fix Directus filter queries: gebruik URLSearchParams en verbeter error handling
Fix ESLint errors: unused variables en prefer-const warnings
Migreer shorten-urls cron job naar cron-job.org voor Hobby plan
Feature: Automatische WhatsApp short URLs en slug generatie via Shlink
Sitemap: Voeg ontbrekende pagina's en blog posts toe
23 december 2025
Documentatie: Automatische slug generatie voor Directus flows
Fix: verwijder ongebruikte redirect import
Plausible tracking uitgebreid: outbound links, file downloads, 404 errors en ecommerce revenue
Nieuwe URL structuur voor duiken: /duiken/[datum]/[slug] met backward compatibility
UTM parameters toegevoegd aan alle links in emails voor betere tracking
Ondersteuning voor self-hosted Plausible Analytics toegevoegd
5 december 2025
Disable ESLint rule for dialog stopPropagation handlers
Fix accessibility errors: add onKeyDown handlers to dialog elements
Fix workflow to properly check for ESLint errors only
Update workflow to only fail on ESLint errors, not warnings
Fix remaining linter errors and disable problematic warnings
Fix indentation in FeedbackWidget fieldset
Fix fieldset closing tag in FeedbackWidget
Fix remaining accessibility errors: add dialog roles and fieldset for labels
Fix syntax error: remove duplicate closing bracket in DiveWeatherWidget
Fix remaining ESLint errors: scripts unused vars, accessibility improvements
Fix ESLint errors: remove unused variables, fix prefer-const, update ts-ignore to ts-expect-error
Remove old .eslintrc.json file (replaced by eslint.config.js)
Migrate ESLint to flat config format for ESLint 9 compatibility
Update Node.js version to 20 for Next.js 16 compatibility in CI workflows
Fix TypeScript error: diveId scope in catch block
Update contributieprijs van €60 naar €65 per jaar
27 november 2025
Fix: Toon alle duiken van dit kalenderjaar in statistieken
21 november 2025
Toon zowel duik beschrijving als locatie beschrijving op duikpagina
19 november 2025
Fix ronde foto weergave in bestuur modal op mobiel - voeg aspect-square en object-center toe voor correcte crop
17 november 2025
Verhoog gewicht van temperatuur in duikcijfer berekening
Fix: tekst afkapping op mobiel voor email subscription banner
Add penningmeester email notification when payment link cannot be generated
7 november 2025
Fix TypeScript error: ensure lat/lon are always assigned
Fix weather forecast: gebruik directe coördinaten, adres en betere error handling
3 november 2025
Voeg Plausible tracking toe voor Feedback formulier met properties
Switch Plausible terug naar gehoste versie in plaats van self-hosted
2 november 2025
feat: Configureer Plausible voor self-hosted met custom domain
feat: Voeg 'Delen' kop toe boven agenda en WhatsApp knoppen
feat: Plaats agenda en WhatsApp knoppen naast elkaar in compacte layout
feat: Verplaats inschrijfknop onder deelnemerslijst en verbeter vol-status
perf: Optimaliseer netwerkafhankelijkheidsstructuur voor kritieke keten
style: Pas faciliteiten grid layout aan naar 2 kolommen mobiel, 3 kolommen desktop
feat: Maak titel op DiveCard klikbaar naar dive pagina
refactor: Gebruik altijd faciliteiten uit location_id in plaats van dive.facilities
fix: Update current_participants bij annulering van duik registratie
fix: Voeg critters dependency toe voor optimizeCss feature
perf: Optimaliseer resource load delay voor betere performance
feat: Voeg development logging toe voor address lookup API's
feat: Gebruik PDOK FREE API als primaire adres lookup bron
fix: Wrap useSearchParams in Suspense boundary voor build compatibiliteit
feat: Voeg Plausible tracking toe voor annulering en email subscriptions
docs: Voeg Plausible Analytics setup documentatie toe
feat: Vervang Vercel Analytics met Plausible Analytics en voeg custom events toe
perf: Optimaliseer resource loading om Speed Insights scores te verbeteren
perf: Voorkom JavaScript render blocking met lazy loading
fix: Maak archief pagina static generation compatible met force-cache
fix: Maak sitemap static generation compatible met force-cache
fix: Corrigeer return type van getDiveFacilities naar undefined
fix: Corrigeer TypeScript types voor locatie helper functies
feat: Implementeer duiklocaties database en diverse verbeteringen
Fix: Vervang laatste todayString referentie door todayNL
Fix: Vervang todayString door todayNL in alle filters
Fix: Gebruik Nederlandse tijdzone voor datum filtering (timezone fix)
Fix: Force dynamic rendering voor kalender/homepage zodat oude duiken direct verdwijnen
Fix: Duiken verdwijnen nu op de dag na de duik (geen gisteren meer op kalender)
1 november 2025
Verbeter GitHub API authenticatie en error handling voor changelog
Voeg GITHUB_TOKEN configuratie toe aan env.example
Fix: Gebruik altijd GitHub API op Vercel + ondersteuning private repos
Voeg GitHub API fallback toe voor changelog op Vercel (shallow clone fix)
Vereenvoudig changelog: haal alle commits op tijdens build ipv incrementeel
Fix: Toon alle commits in changelog ipv alleen eerste 100
Verbeter changelog: voeg nieuwe commits toe ipv volledig overschrijven
Voeg gegenereerde changelog.json toe
Voeg build-time changelog generatie toe voor Vercel productie
Fix: Voeg expliciete types toe aan git.ts callbacks
Fix: Voeg description toe aan PageHeader in changelog
Fix: Verwijder subtitle prop van PageHeader in changelog pagina
Verbeter changelog: voeg dateRaw toe voor juiste sortering
Voeg changelog pagina toe met git commits, subtiele link in footer
Fix: Maak dummy payment link als placeholder API key wordt gebruikt, geen link als API key ontbreekt
Verbeter: Geen dummy payment link bij ontbrekende Mollie API key - email toont bericht over penningmeester
Fix: Pas sendDiveSuggestionStatusEmail aanroep aan naar plat object structuur
Fix: Voeg page_url toe aan FeedbackEmailData test data
Fix: Pas MembershipEmailData test data aan naar juiste interface velden
Fix: Pas sendAdminConfirmationEmail aanroep aan naar juiste parameters
Fix: Gebruik testDive ipv testRegistration voor dive parameter
Fix: Voeg limit=-1 toe aan subscription queries om alle subscribers op te halen
Voeg test API toe om alle emails in een keer te versturen voor layout check
Verwijder universele transparent regel en voeg table/td transparantie toe
Forceer transparante achtergrond in emails met !important
Verwijder witte achtergrond uit emails: gebruik native email client achtergrond
Verbeter foto layout in nieuwe duiken email: maak foto aansluitend op detail-box
Fix: voorkom dat envelope icoon ook in uitgeklapte header langwerpig wordt
Fix: voorkom dat envelope icoon rondje langwerpig wordt
Voeg duikfoto toe aan nieuwe duiken email en hardcode links naar productie URL
Voeg TEST_SECRET toe aan env.example
Test endpoint: test volledige flow met echte subscriptions uit Directus
Voeg test endpoint toe voor nieuwe duiken email
Fix logo URL in emails: gebruik altijd publieke productie URL
Voeg uitgebreide logging toe voor token hash debugging en normaliseer ID
Fix token hash verificatie: normaliseer email en voeg debugging toe
Verwijder CancelNotification van kalender (niet meer nodig)
Voeg bevestigingspagina toe voor annuleringen
Fix annuleerlink: voeg notification toe en verbeter logging
Fix TypeScript: Replace secondaryColor with accentColor in email template
Fix TypeScript: Use spread operator for registration object in cancel admin email
Fix TypeScript error: Add missing dive_id field in cancel registration admin email
Ensure unsubscribe and cancel links always use public production URL
Fix: Ensure registration ID is available for cancel link in dive registration emails
Add detailed Directus setup guide for email subscriptions
Add email subscription system with unsubscribe and dive registration cancellation
Fix ESLint warning: capture mapRef.current at effect start
Fix datum en tijd velden grootte op mobiel voor duik-voorstellen formulier
Fix build errors: Leaflet CSS import en ESLint warnings
Activeer alle email functionaliteit met Directus flows
Duik voorstellen flows en validatie updates
Duik voorstellen functionaliteit met interactieve kaart
Automatische bevestiging voor gratis duiken
29 oktober 2025
Poll functionaliteit toegevoegd aan homepage
âš¡ LCP optimalisaties: preconnect, WebP format en lazy loading
Fix: Voeg cross-env toe voor Windows compatibiliteit van bundle analyzer
Optimalisatie #3: Implementeer bundle analyzer voor JavaScript bundle analyse en optimalisatie
Optimalisatie #2: Implementeer bulk fetch voor dive registrations - vermindert API calls van N naar 1
Optimalisatie #1: Verhoog bestuurspagina cache naar 1 uur (bestuursleden veranderen niet vaak)
Verbeter SWR cache logging - maak onderscheid tussen cache hits en API calls duidelijker
Voeg client-side logging toe voor SWR cache debugging
Fix hoisting error - verplaats calculateDiveScore functies buiten component
Implementeer SWR voor client-side caching van weather API calls - voorkom onnodige API requests
Verbeter logging door de hele site - consistente emoji-based logging voor alle API routes en Directus functies
Fix inconsistent participant pills loading - better error handling en logging
Verwijder contact sectie van bestuurspagina
Voeg retry logica toe voor deelnemers ophalen op mobiel
Maak alle deelnemer pillen oranje en verbeter refresh snelheid met no-cache
Maak deelnemer pillen oranje consistent met buttons
Fix bestuur kaarten centrering met flex-wrap voor piramide layout
Centreer bestuurskaarten voor piramide uitlijning
Vervang klok icon door verjaardagstaart icon bij leeftijd
Voeg leeftijd en certificering toe aan bestuur modal
Maak Lees verder knop oranje op bestuur kaarten
Voeg modal toe voor volledige bio op bestuurspagina met max hoogte kaarten
Update bestuur pagina: WYSIWYG voor bio en oranje contact knop
Voeg Bestuur pagina toe met Directus integratie en documentatie
Verbeter email template met uitgebreidere voorbereidingstips voor duiken
Voeg 24-uurs herinnering toe aan agenda items voor duiken
Voeg UTM-parameters toe aan WhatsApp share link voor duiken
Voeg UTM-parameters toe aan alle social share links voor tracking
Voeg helpende tekst toe bij screenshot upload met lampje emoji
Maak feedback verzenden knop oranje voor consistentie met andere CTAs
Verbeter feedback formulier layout - overzichtelijker met visuele secties
Maak icoontje positie consistent in volgende duik kaart (items-start)
Maak label tekstgrootte consistent in statistieken sectie (text-lg)
Verwijder underline bij location link hover - oranje kleur is voldoende feedback
Pas contactformulier button op Word lid pagina aan naar oranje gradient
Voeg oranje hover states sitebreed toe (subtiel)
Voeg subtiele oranje accenten toe als secondary accentkleur
Pas Hero tekst aan: binnen- en buitenland -> mooiste binnenwateren
Verwijder bedrag uit Hero en maak CTA knop aantrekkelijker
Update Hero tekst voor meer impact en conversie
Maak 'Word lid' knoppen opvallender met oranje gradient en subtiele animaties
Pas 'Word Lid' aan naar 'Word lid' in navigatie en pagina's
Pas hoofdlettergebruik aan in titels en koppen
Vervang logo.jpg door logo.png
Vervang SVG logo door logo.jpg in header en gebruik als favicon
Voeg KVK nummer toe aan contactpagina
Update tekst: 'Bekijk alle nieuws' naar 'Bekijk al het nieuws'
Verhoog testimonials carousel interval naar 10 seconden
Update testimonials subtekst: voeg 'van QDiving' toe
Fix ESLint waarschuwing: escape quotes in testimonials
Voeg testimonials carousel toe en verbeter menu structuur
Update: BlogPost types en documentatie - Voeg user_created/updated velden toe - Voeg archived status optie toe - Update documentatie met status beheer sectie
Feat: Blog/Nieuws functionaliteit (Actueel)
Contact pagina & footer updates
Fix: Membership form file upload en slimme validatie
Move scroll anchor to wrapper div to keep step indicator visible on mobile
Add email confirmation and spam folder reminder to all forms
Improve form scroll position to keep step indicator visible on mobile
Add external link icon to Fit2Dive link and update URL to duikkeuring article
Fix scroll behavior in multi-step form - keep form in view instead of jumping to page top
Add local development setup with live backend configuration
Move contact section to left column under membership benefits
Add definitive iOS Safari date input width fix with flex container and CSS !important
Replace direct email/phone links with contact form links on membership and about pages
Remove overflow-hidden from date inputs to prevent iOS picker cutoff
Fix iOS Safari date input width with overflow wrapper
Upgrade address lookup to Pro6PP API with PDOK fallback
Add automatic address lookup by postal code and house number
Add stronger iOS Safari date input width fix with box-border and maxWidth
Move membership fee text below 'Wat krijg je als lid?' heading
Fix iOS date input width while preserving native date picker
Fix date input width on iOS Safari
Add 2-step membership form with diving experience and Fit2Dive upload
Add two-column layout for Word Lid page on desktop
Update Word Lid benefits: focus on safety and social diving with meals
Improve Word Lid page with better benefits section and add admin documentation
Fix dynamic server usage error for all API routes
Add complete SEO optimization with Open Graph, sitemap, and OG image
Fix Lighthouse CI assertions - disable non-essential checks
Remove redundant Vercel deploy workflow
Adjust desktop menu breakpoint to 1190px for better tablet support
Fix iPad navigation: use hamburger menu for tablets
Use consistent droplet icon for precipitation widget
Use location address for better geocoding accuracy
Fix TypeScript error: make dive time optional in forecast widget
Add weather forecast widget for individual dive pages
Set weather location to Vinkeveen diving spot
Improve weather score algorithm and fix mobile layout
Add dive weather widget with graceful degradation
Weather status
Add debug logging for screenshot upload
Fix ESLint warning for screenshot preview
Add screenshot upload to feedback widget
28 oktober 2025
Organize documentation in docs/ folder
Update feedback button to orange gradient matching next dive badge
Remove debug logging from feedback API
Fix TypeScript error in feedback API payload
Fix feedback API to handle 204 No Content response
Improve feedback API error logging with direct fetch
Export Directus client for feedback API route
Add feedback widget system
Fix build errors: move themeColor to viewport, remove experimental CSS
Optimize performance: images, JS, CSS for PageSpeed 99+
Fix deprecated packages and security vulnerabilities
Fix ESLint configuration
Fix font preload warning and optimize console logs
Add Lighthouse CI for automatic performance monitoring
Add package-lock.json with SWC dependencies
Optimize CSS for better performance
Enable Next.js image optimization for better performance
Add Vercel Analytics and Speed Insights
Add Vercel Speed Insights
Remove debug logging - stats working
Add debug logging for participants
Count pending and confirmed registrations, exclude cancelled
Fix: Correct Settings collection name to lowercase 'settings'
Clean up: Remove debug files and restore production settings
Add debug logging for stats
Add date debug endpoint
Add production CMS hostname for images
Remove vercel.json - not needed for Vercel deployment
Fix vercel.json voor deployment
Over ons
Over ons
aanmelden werkt
Duikkalender
27 oktober 2025
Deel 2
Basis staat