Changelog

Overzicht van alle wijzigingen aan de website

7 maart 2026

feat: add mail SLA system, auto-assign, auto-reopen, filter fixes and changelog migration

7460f14door Henk-Jan

fix: use ubuntu + deb-based Railway CLI install for deploy (matching working pattern)

ff3375cdoor Henk-Jan

fix: remove railway whoami (incompatible with project tokens), improve error output

761ab89door Henk-Jan

fix: add railway whoami check and verbose deploy output

e46ef1bdoor Henk-Jan

fix: improve email sender name and signature formatting

3a31494door Henk-Jan

perf: optimize CI/CD - single checks job with node:20-alpine container

5e41b34door Henk-Jan

fix: add debug output to Railway deploy step

e95a809door Henk-Jan

feat: consolidate Forgejo workflows into single CI/CD pipeline

1461230door Henk-Jan

fix: add FORGEJO_TOKEN to checkout steps for private repo access

a0d6c85door Henk-Jan

feat: migrate CI/CD from GitHub Actions to Forgejo Actions with Railway deploy

5b3873ddoor Henk-Jan

feat: add Svix signature verification and support opened/failed webhook events

d5d34bfdoor Henk-Jan

feat: show Resend delivery status in email stats table

06968bcdoor Henk-Jan

fix: change transactional from address to hallo@notify.deduikvereniging.nl

9b65c7fdoor Henk-Jan

fix: resolve Resend SDK type error for html field in sendEmail

f5ea030door Henk-Jan

feat: add delivery status tracking and Outlook-style email headers in tickets

9c04e01door Henk-Jan

feat: migrate all outgoing email from SMTP/Nodemailer to Resend API

494124ddoor Henk-Jan

6 maart 2026

chore: test Railway auto-deploy

81e4dc4door Henk-Jan

5 maart 2026

fix: resolve high npm audit vulnerabilities

d1afb8cdoor Henk-Jan

fix: prevent duplicate cron job execution with atomic database lock

b408faedoor Henk-Jan

4 maart 2026

fix: show AI prompts as editable text instead of placeholder

fdb89a4door Henk-Jan

fix: allow clearing price/min/max on dives and auto-confirm pending registrations

60a256cdoor Henk-Jan

feat: editable AI prompts, email error clearing, API health improvements

d75020bdoor Henk-Jan

feat: add email retry button and fix period filter on email stats

e9e3108door Henk-Jan

fix: add SMTP env var fallbacks for transactional email

dd53a65door Henk-Jan

fix: save endTime and tentativeDate when creating a dive

f72a5dadoor Henk-Jan

3 maart 2026

fix: compute total in byType for email stats to prevent runtime error

a5f67cbdoor Henk-Jan

refactor: centralize EmailLog logging in sendReply()

0f9a42adoor Henk-Jan

fix: add EmailLog logging for broadcast, compose and reply routes

ab11093door Henk-Jan

1 maart 2026

fix: convert /auth/app-login from JSON response to 302 redirect

de15d44door Henk-Jan

feat: add AI-powered spam detection for mail inbox

2b37b34door Henk-Jan

fix: add /auth/app-login route and fix session cookie name for iOS OAuth

0358fb5door Henk-Jan

feat: add HIBP password breach check and shared requirements component

047b1a6door Henk-Jan

28 februari 2026

feat: replace email proxy with direct SMTP, add stats and OAuth callback

1617ce7door Henk-Jan

feat: add DiveAuth (Authentik OIDC) login for board members

4955b9cdoor Henk-Jan

fix: remove IT-access gate from FtD analyze — available to all members

d484145door Henk-Jan

feat: add centralized AI proxy with rate limiting, cost tracking, and admin dashboard

1213247door Henk-Jan

26 februari 2026

feat: add mail attachments, compose, broadcast, WYSIWYG editor and preview

2d4aa0bdoor Henk-Jan

fix: prevent internal port 8080 leaking into non-www redirect

3723f53door Henk-Jan

fix: resolve IT page overflow, limit webhook events, and swap mail filter default

23ccf3adoor Henk-Jan

fix: rename Expo Push label to iOS Pushnotifications in UI

cb916badoor Henk-Jan

feat: add APNs push notifications for IT alerts

d03c72ddoor Henk-Jan

fix: default mail filter to 'open' and show cron error details

fd1be45door Henk-Jan

feat: add conversation delete with S3 cleanup and confirmation modal

5865979door Henk-Jan

feat: add AI auto-priority and reply suggestions

a9fe37bdoor Henk-Jan

fix: use bodyHtml for summaries to avoid CSS-polluted bodyText

7168819door Henk-Jan

fix: improve email summary prompt to describe content, not subject

496c302door Henk-Jan

feat: add summarize endpoint and backfill script

0f20429door Henk-Jan

feat: add AI email summaries using Claude Haiku

623cfe7door Henk-Jan

fix: better CSS stripping from email preview text

d282e4ddoor Henk-Jan

fix: strip HTML/CSS artifacts from email preview text

a9bec3ddoor Henk-Jan

fix: improve mail page layout and message display

fdc630adoor Henk-Jan

fix: convert memberNumber to string before search

557c65edoor Henk-Jan

feat: add active/inactive toggle to mailbox cards

b537684door Henk-Jan

fix: map API field names in MailboxSettings

bd714a6door Henk-Jan

feat: add integrated email/ticket system

08b2264door Henk-Jan

feat: add IT notification preferences to Expo push tokens

5d5fa34door Henk-Jan

25 februari 2026

feat: add hourly granularity and session metrics to admin analytics API

c0f4d9bdoor Henk-Jan

fix: increase watermark opacity in secure document viewer

f641360door Henk-Jan

fix: add missing size classes to password validation icons

7cec6c4door Henk-Jan

feat: add secure document viewer for Fit-to-Dive in admin mode

a0ed647door Henk-Jan

fix: add Reply-To header to contact form email

0f17a7edoor Henk-Jan

feat: add hasITAccess to User model and session response

f62a298door Henk-Jan

fix: prevent double cron job execution caused by fallback trigger

f1158d6door Henk-Jan

refactor: migrate admin cron-jobs endpoints from cron-job.org to internal DB

877ea7adoor Henk-Jan

feat: add web analytics admin endpoint for iOS app

1c98b83door Henk-Jan

fix: add Scalar API docs component and install missing dependency

d071a84door Henk-Jan

feat: replace Expo Push with native APNs for iOS push notifications

f01b35cdoor Henk-Jan

23 februari 2026

fix: correct turningAge calculation for upcoming birthdays

6972075door Henk-Jan

feat: complete OpenAPI documentation with full request/response schemas

ec2ebdedoor Henk-Jan

feat: document Better Auth login flow and Bearer token usage

32c04f6door Henk-Jan

fix: serve Scalar API docs as standalone HTML page via CDN

bc1b970door Henk-Jan

fix: open API docs link in new tab

d5cffb8door Henk-Jan

fix: move ssr:false into client component for Next.js compatibility

2266c4cdoor Henk-Jan

fix: resolve ESLint warnings causing CI failure

8b8a0d8door Henk-Jan

fix: remove API Docs menu item from sidebar nav

1781e0fdoor Henk-Jan

fix: replace @scalar/nextjs-api-reference with @scalar/api-reference-react

3f7eff9door Henk-Jan

feat: complete OpenAPI documentation for all 133 paths / 183 endpoints

1330683door Henk-Jan

feat: add OpenAPI documentation system with Scalar UI and redesign API Info page

ffcb817door Henk-Jan

22 februari 2026

fix: prefix unused destructured PII vars with underscore for ESLint

2566e43door Henk-Jan

fix: resolve TypeScript error in bulk dive-registrations PII stripping

d16ada1door Henk-Jan

fix: security hardening - strip PII from public endpoints, add security headers

2c87ed5door Henk-Jan

feat: add Web Vitals diagnostics with INP/LCP breakdowns and visibility filtering

209f72cdoor Henk-Jan

fix: remove unused icon imports from WebVitalsDetail

8677dcbdoor Henk-Jan

feat: Web Vitals dashboard met attributie en device breakdowns

39a1055door Henk-Jan

21 februari 2026

feat: improve Railway webhook event display with icons, context and metadata

0773e67door Henk-Jan

feat: add cron jobs management UI and API routes

8024d33door Henk-Jan

chore: update changelog.json with recent commits

c226f47door Henk-Jan

fix: prevent push notification toggles from disappearing on endpoint rotation

01f3b0ddoor Henk-Jan

fix: Railway webhook auth via query parameter en cleanup orphaned cron jobs

23ad125door Henk-Jan

feat: add AI document validation, modal flow, and truthfulness confirmation for FtD

5d29a63door Henk-Jan

fix: trigger FtD AI analysis for both PDF and image uploads

a65b1f5door Henk-Jan

feat: add AI-powered Fit-to-Dive document analysis with Claude Vision

d2ff077door Henk-Jan

20 februari 2026

fix: handle S3/R2 lowercase metadata keys for encrypted file content type

a9dad48door Henk-Jan

fix: prevent FtD edit from wiping encrypted file metadata

75759eadoor Henk-Jan

feat: replace Railway cron polling with webhook-based monitoring

038bba7door Henk-Jan

fix: add missing birthdays preference to push subscribe route

286c245door Henk-Jan

feat: add 6 push notification types + Railway stats IT page

afe89c8door Henk-Jan

refactor: optimize Perplexity Sonar prompts and add search parameters

a6687b2door Henk-Jan

feat: replace Tavily with Perplexity Sonar for location descriptions

f366dabdoor Henk-Jan

feat: split push settings per category, device deletion, toggle fix

c1b85c8door Henk-Jan

feat: add Apprise notification gateway integration

c430b9cdoor Henk-Jan

fix: add birthdays to web push notification preferences

c799473door Henk-Jan

feat: bulk uitnodigingen versturen naar geselecteerde leden

4ded57edoor Henk-Jan

fix: full-screen import modal, paginatie fix en SMTP throttling

8694707door Henk-Jan

feat: uitnodigingsmails bij import, anoniem veld en J/N boolean parsing

e3cef50door Henk-Jan

fix: vervang xlsx dependency door eigen CSV parser

a8d26aedoor Henk-Jan

feat: CSV/Excel leden import met wizard en kolom-mapping

a0d4db7door Henk-Jan

chore: upgrade Gemini models van 2.0/1.5 naar 2.5 Flash

0e0312cdoor Henk-Jan

feat: WhatsApp opt-in, anonieme deelnemerslijst en bredere FtD tekst

47a932fdoor Henk-Jan

perf: dynamic imports, ISR optimization, AVIF support and Suspense boundaries

a4b9bf8door Henk-Jan

perf: optimize dive queries and remove debug code

3304adbdoor Henk-Jan

perf: parallelize database queries across 15 more API routes

6aaaf87door Henk-Jan

perf: parallelize sequential database queries across 7 API routes

9b6e76edoor Henk-Jan

perf: add DNS resolution timing and IP check to debug endpoint

4af7689door Henk-Jan

perf: add raw pg warm pool test to isolate Prisma adapter vs network latency

9698b84door Henk-Jan

perf: add min pool connections to prevent cold connection overhead

bdb9733door Henk-Jan

fix: remove unused variables in debug endpoint (ESLint)

1e77a10door Henk-Jan

fix: resolve image loader width warning + add latency diagnostics

1c03221door Henk-Jan

perf: disable SSL for Railway internal database connections

5c33fb5door Henk-Jan

fix: update jspdf to 4.2.0 for security fix + add DB latency to debug endpoint

129d29ddoor Henk-Jan

fix: disable Cloudflare cdn-cgi for local images and detect Railway in changelog

a7369a6door Henk-Jan

19 februari 2026

fix: adjust Short URLs table column widths for better spacing

a71ac7ddoor Henk-Jan

fix: remove destination URL column from Short URLs table

d0c1ddbdoor Henk-Jan

fix: resolve overflow on Short URLs table with table-fixed layout

7345df7door Henk-Jan

fix: use 302 redirect for short URLs to prevent browser caching

bf16766door Henk-Jan

feat: add Short URLs management page to IT dashboard

b96c778door Henk-Jan

fix: merge middleware into proxy.ts for Next.js 16 compatibility

96ad3f7door Henk-Jan

chore: remove Plausible Analytics (replaced by own analytics)

9ade001door Henk-Jan

feat: replace Shlink with built-in URL shortener on duik.link

c6a0325door Henk-Jan

fix: simplify security audit to only check production dependencies

26064cadoor Henk-Jan

chore: remove @lhci/cli dependency and lighthouserc.json

850155bdoor Henk-Jan

chore: remove bundle size workflow

5083c55door Henk-Jan

chore: remove Lighthouse CI and leftover workflow files

3d91b4bdoor Henk-Jan

18 februari 2026

feat: show dashboard link in hero for logged-in users

0cec21bdoor Henk-Jan

docs: update CLAUDE.md cron and deployment sections for Railway

f46bf41door Henk-Jan

chore: remove PM2/VPS/Vercel deployment artifacts

634c6a6door Henk-Jan

chore: clean up working tree and remove obsolete workflows

1c9fc93door Henk-Jan

fix: overhaul cron trigger to use nextRunAt instead of shouldRunNow

c60d041door Henk-Jan

feat: add non-www redirect and fix cron runner for Railway

e7b4589door Henk-Jan

feat: add health endpoint and update cron UI for Railway

cb2c77cdoor Henk-Jan

fix: remove PM2 dashboard and fix IT page overflow

f168fe4door Henk-Jan

fix: add NEXT_PUBLIC_SITE_URL fallback for Railway build

7fc5916door Henk-Jan

revert: remove unused railpack.json and restore start script

cc219e7door Henk-Jan

fix: force HOSTNAME=0.0.0.0 in start command for Railway

522cc54door Henk-Jan

fix: replace nixpacks.toml with railpack.json for Railway

0d7bbe1door Henk-Jan

fix: resolve all TypeScript errors blocking pre-push hook

73b0b38door Henk-Jan

feat: add standalone mode support for Railway deployment

0629130door Henk-Jan

chore: clean up env files, remove unused variables

cc44d77door Henk-Jan

chore: remove Docker and Directus files

24e3d00door Henk-Jan

fix: resolve 21 high npm audit vulnerabilities (fast-xml-parser DoS)

41877dddoor Henk-Jan

refactor: remove cron-job.org integration, use local cron runner only

0cc32fbdoor Henk-Jan

11 februari 2026

chore: remove outdated scripts, test files, and Directus env vars

9b07e1fdoor Henk-Jan

fix: update AWS SDK, jsPDF, and fast-xml-parser to resolve 22 high vulnerabilities

43a9b53door Henk-Jan

chore: remove obsolete Docker/Directus documentation

1fa7d05door Henk-Jan

chore: update deps, fix lint warnings, remove Directus/Docker artifacts

b4dc42fdoor Henk-Jan

fix: memberNumber type parsing, email verification on password reset, and birthday cron route

f8e232cdoor Henk-Jan

chore: add .gitattributes to enforce LF line endings

e0407f5door Henk-Jan

16 januari 2026

feat: add member number generation, canLogin check, and FtD alerts for members without FtD

2b710a3door Henk-Jan

fix: correct willingToBeDiveLeader field name in Prisma queries

7b3cf73door Henk-Jan

feat: add admin dashboard alerts, copy dive, attendance stats, postcode normalization

f7d1826door Henk-Jan

feat: add event fields to blog posts + rename to Actueel

0352811door Henk-Jan

feat: add privacy policy page + fix birthday push deep linking

0381ab5door Henk-Jan

feat: add push notifications for all events + birthday notifications

3522b65door Henk-Jan

feat: add memberId support for new member notifications deep linking

a774c04door Henk-Jan

refactor: update push-test page to match IT dashboard layout

67c7963door Henk-Jan

feat: add Expo push notifications support for mobile app

f02a841door Henk-Jan

fix: remove demo birthday data from dashboard stats

abe2fd4door Henk-Jan

feat: add Expo push notification preferences API

8355a1ddoor Henk-Jan

feat: add Expo push token registration endpoint

12879f8door Henk-Jan

chore: add test birthday data for mobile app testing

2386866door Henk-Jan

fix: add dateOfBirth and memberNumber to /api/user/me response

91deed0door Henk-Jan

15 januari 2026

feat: add firstName/lastName to dive registration user data

02824aadoor Henk-Jan

fix: include dive relation in user full API for mobile app

bb354abdoor Henk-Jan

feat: add mobile app origins to trusted origins list

9d20bc3door Henk-Jan

feat: add dashboard stats API endpoint for mobile app

13ba0c3door Henk-Jan

feat: add hasPassword field to user API responses

7cfa29edoor Henk-Jan

fix: improve analytics event filtering and consolidate login events

cfd2109door Henk-Jan

chore: remove temporary debug endpoint

5d108b4door Henk-Jan

chore: add PID and CF headers to debug endpoint

08ce44fdoor Henk-Jan

fix: allow localhost access to debug endpoint

7b2bb6bdoor Henk-Jan

chore: add temporary debug endpoint for auth investigation

57be9cedoor Henk-Jan

fix: use ternary instead of spread for socialProviders config

e95fbd4door Henk-Jan

fix: remove hardcoded baseURL from auth client

518d5d8door Henk-Jan

fix: move baseURL inside initializeAuth for runtime evaluation

1d9a8b3door Henk-Jan

fix: remove NEXT_RUNTIME check and add debug logging for Google OAuth

310f143door Henk-Jan

fix: lazy evaluate Google OAuth credentials at runtime

e37aa61door Henk-Jan

feat: add Google OAuth social login with Better Auth

c774fc5door Henk-Jan

chore: exclude hono vulnerability from GitHub security audit workflow

9068c4bdoor Henk-Jan

chore: exclude hono vulnerability from npm audit (dev-only via @prisma/dev)

8240b39door Henk-Jan

feat: add device/country filters and migrate events to custom analytics

c1982d8door Henk-Jan

13 januari 2026

fix: improve iOS/iPad detection in analytics

56a3920door Henk-Jan

fix: TypeScript errors in Recharts and cron jobs mobile layout

3586ebfdoor Henk-Jan

feat: add StatCard component and consistent styling across IT dashboard

c904db0door Henk-Jan

feat: enhance analytics dashboard UI with consistent icons and colors

3e09e51door Henk-Jan

fix: improve analytics map UX - smaller markers, hide reset button, fix reset

bed5b3edoor Henk-Jan

fix: make city markers visible on analytics map

6016e21door Henk-Jan

feat: improve analytics map with click-to-zoom and fix session fingerprint

613400bdoor Henk-Jan

fix: zoom buttons use correct _setScale method and improve city markers

bcabb54door Henk-Jan

fix: viewsPerSession chart data key and add map zoom features

669e157door Henk-Jan

fix: gracefully handle missing city columns in analytics API

76eb41edoor Henk-Jan

feat: add interactive analytics dashboard with city tracking

9241127door Henk-Jan

fix: improve WorldMap component with error handling and full-width layout

d9868f8door Henk-Jan

feat: migrate weather to Open-Meteo and fix map security vulnerability

114b77fdoor Henk-Jan

feat: add privacy-friendly analytics system to replace Plausible

7b49440door Henk-Jan

fix: correctly display CLS values with 3 decimals in web vitals dashboard

6133015door Henk-Jan

12 januari 2026

chore: remove old web-vitals implementation

053742ddoor Henk-Jan

feat: ad-blocker resistant web vitals tracking

993a024door Henk-Jan

revert: rename bubbles back to web-vitals

ed9bf5fdoor Henk-Jan

refactor: rename web-vitals to bubbles to avoid ad blocker detection

c11cf94door Henk-Jan

fix: prevent duplicate web vitals requests

f6c8485door Henk-Jan

feat: improve PWA appearance with proper icons and metadata

bdea834door Henk-Jan

feat: add VAPID public key to GitHub Actions build

ea75330door Henk-Jan

feat: add Web Push notifications for admin/IT users

51922e4door Henk-Jan

feat: display recent emails in email proxy dashboard

1e0c6bedoor Henk-Jan

feat: show extended error info in email proxy dashboard

92f6625door Henk-Jan

fix: improve PM2 dashboard - hide empty timestamps and use live stats

aa3b834door Henk-Jan

fix: use null instead of 'unknown' for missing timestamps

7e407c1door Henk-Jan

fix: support PM2 log_date_format with timezone

80a0b19door Henk-Jan

fix: improve PM2 log timestamp parsing

398965adoor Henk-Jan

fix: load .env file in PM2 ecosystem config

8abe430door Henk-Jan

fix: remove pm2 jlist command, use only dump file

567749adoor Henk-Jan

fix: add custom PM2 log path for duikvereniging project

c25c32cdoor Henk-Jan

fix: read PM2 logs directly from log files

ed3bcbcdoor Henk-Jan

feat: add XSS protection, fix TypeScript types, and improve PM2 integration

237ecdedoor Henk-Jan

feat: add image upload support for Fit-to-Dive declarations

d073478door Henk-Jan

feat: improve mobile-friendliness across admin components

a144c49door Henk-Jan

11 januari 2026

feat: redesign dashboards with Admin Dashboard Pattern

8c04c65door Henk-Jan

feat: various improvements and cleanup

b68d84edoor Henk-Jan

feat: add Cookie Consent tracking and PM2 Dashboard

c27d37adoor Henk-Jan

fix: extract download filename from Content-Disposition header

1fa27ebdoor Henk-Jan

feat: add browser GPS geolocation with reverse geocoding for Fit-to-Dive downloads

724cc09door Henk-Jan

feat: enable zero-downtime deployments with PM2 reload

1dc5f26door Henk-Jan

fix: remove deprecated --skip-generate flag from prisma db push

89bb870door Henk-Jan

fix: run prisma db push in GitHub Actions instead of VPS

86f56f3door Henk-Jan

feat: improve deploy-vps workflow

566a44adoor Henk-Jan

feat: add error tracking and display for cron runner

587a88bdoor Henk-Jan

fix: update crontab config example in cron jobs page

4ebe0f9door Henk-Jan

fix: update CronJobDetail to use local cron API

3fa7142door Henk-Jan

fix: migrate daily-dive-notifications to use local Prisma database

b00941cdoor Henk-Jan

fix: use dynamic imports in cron script for dotenv loading

5bf4196door Henk-Jan

fix: use relative imports for prisma in cron scripts

9e77520door Henk-Jan

feat: add local cron runner system with UI

bff8a1ddoor Henk-Jan

feat: add trial member expiry notification system

24232b0door Henk-Jan

feat: add LAUNCH_MODE for user invitation emails

2bb07bfdoor Henk-Jan

refactor: rename /api/admin/error-stats to /api/it/api-metrics

4ac2771door Henk-Jan

feat: add API tracking to 18 remaining endpoints (Batch 4f - Final)

8c71feedoor Henk-Jan

feat: add API tracking to 15 admin user endpoints (Batch 4e)

599c39cdoor Henk-Jan

feat: add API tracking to 13 admin endpoints (Batch 4d)

33d6efadoor Henk-Jan

feat: add API tracking to 20 admin endpoints (Batch 4c)

63e1e04door Henk-Jan

feat: add API tracking to 5 admin endpoints (Batch 4b)

4566050door Henk-Jan

feat: add API tracking to 10 admin endpoints (Batch 4a)

2cdb1fcdoor Henk-Jan

feat: add API tracking to 8 public/admin endpoints (Batch 3)

43e4094door Henk-Jan

feat: add API tracking to 10 user endpoints (Batch 2)

5e36418door Henk-Jan

fix: remove proxy and internal log-performance endpoint

c92193ddoor Henk-Jan

feat: add API tracking to 8 high-priority endpoints (Batch 1)

ccee20adoor Henk-Jan

feat: add production-ready API tracking wrapper with test implementation

d03f5d8door Henk-Jan

fix: improve /it/api-info page layout and error handling

96a7d70door Henk-Jan

10 januari 2026

fix: store feedback screenshots as public files

fb2eabedoor Henk-Jan

fix: disable encryption for feedback screenshots

5d62419door Henk-Jan

feat: block AVIF uploads and remove debug code

07abf10door Henk-Jan

fix: skip Cloudflare Image Resizing for AVIF files (unsupported format)

2f7dc8adoor Henk-Jan

fix: normalize malformed URLs in fixImageUrl to prevent triple slashes

8ec218ddoor Henk-Jan

chore: add debug logging to fixImageUrl

d6a3b6fdoor Henk-Jan

chore: add debug logging to image loader

b077f96door Henk-Jan

chore: add image URL comparison debug page

9aa96f0door Henk-Jan

fix: add env fallbacks in next.config.js to ensure vars are always available

e055143door Henk-Jan

fix: remove redundant npm ci step that breaks standalone build

94403b0door Henk-Jan

test: add image loader test page for debugging

920d1b3door Henk-Jan

fix: add NEXT_PUBLIC_R2_CUSTOM_DOMAIN to GitHub Actions build

5396068door Henk-Jan

fix: add fallback for R2_CUSTOM_DOMAIN in listFilesInFolder

5438903door Henk-Jan

feat: add extensive MediaLibrary debug logging

65e428bdoor Henk-Jan

fix: add R2 custom domain to remotePatterns for loader to work

eb5b25bdoor Henk-Jan

feat: add MediaLibrary debug logging

3ae2bb7door Henk-Jan

fix: ensure fixImageUrl returns R2 URLs for Cloudflare Image Resizing

e67d0dddoor Henk-Jan

feat: add VPS media library diagnostic script

0548667door Henk-Jan

fix: encrypt feedback screenshots for privacy protection

6f2bb25door Henk-Jan

fix: ensure Cloudflare Image Resizing works for R2 custom domain URLs

74de32edoor Henk-Jan

fix: remove isDevelopment check from Cloudflare Image Loader

a9b4412door Henk-Jan

feat: add blog post image migration to R2 custom domain script

696e083door Henk-Jan

feat: migrate to R2 custom domain URLs for Cloudflare Image Resizing

0ec48b1door Henk-Jan

fix: handle leading slash in s3-proxy route keys

86dd7f0door Henk-Jan

fix: use relative URLs for Cloudflare Image Resizing

9efd5fadoor Henk-Jan

fix: enable Cloudflare Image Resizing for /api/s3-proxy/ URLs

76bf934door Henk-Jan

fix: allow public/ keys without leading slash in s3-proxy route

c5634fddoor Henk-Jan

fix: improve error logging in s3-proxy route for debugging

47381bbdoor Henk-Jan

fix: use NODE_ENV for development check to prevent hydration errors

e6bde99door Henk-Jan

feat: use R2 custom domain for public files with Cloudflare Image Resizing

daab94ddoor Henk-Jan

fix: serve /api/s3-proxy/ routes directly without Cloudflare transform

1a67d40door Henk-Jan

revert: remove timeout config from prisma Pool - back to original

232ecfddoor Henk-Jan

revert: remove force-dynamic flags from pages added in previous commits

f3ad64cdoor Henk-Jan

fix: add force-dynamic to blog post pages and fix image loader

9a318d3door Henk-Jan

fix: use Cloudflare Image Resizing for /api/s3-proxy/ routes

3dd1cb7door Henk-Jan

fix: increase database timeouts and make pages dynamic

506bbc6door Henk-Jan

fix: syntax error in generate-changelog.js - remove extra closing brace

a1f2c12door Henk-Jan

fix: use Next.js image optimization for /api/s3-proxy/ routes

d7f8f1fdoor Henk-Jan

fix: prevent database connection during build time

7958cfadoor Henk-Jan

fix: R2_S3_* environment variables support + improved s3-proxy error handling

13daa4ddoor Henk-Jan

fix: /api/files/ geen transformatie + domein migratie documentatie

1e6f0dedoor Henk-Jan

fix: toon welke S3 provider wordt gebruikt in migratie script

150bf4edoor Henk-Jan

fix: verbeter error handling in migratie script

30d0633door Henk-Jan

fix: voeg CopyObjectCommand toe aan S3 exports voor migratie script

c213b1fdoor Henk-Jan

feat: update folder structuur naar public/ en private/ in root

7fa6563door Henk-Jan

feat: voeg R2 setup guide en test script toe

e044ed4door Henk-Jan

fix: gebruik /api/s3-proxy/ URLs met encoding voor publieke uploads

52c7fe1door Henk-Jan

fix: herken /api/s3-proxy/ URLs in alle image helper functies

125f2c6door Henk-Jan

fix: implement correct Cloudflare Image Resizing with proxy route

858ffa3door Henk-Jan

refactor: remove hardcoded fallback URL in Cloudflare loader

bcffd47door Henk-Jan

fix: use absolute URLs with proxied domain for Cloudflare Image Resizing

e5cf8fddoor Henk-Jan

feat: migrate to Cloudflare Image Resizing with S3 public/private folders

a72662ddoor Henk-Jan

feat: enable Cloudflare Image Resizing for public S3 images

ed5b1c0door Henk-Jan

fix: bypass Cloudflare Image Resizing for /api/files/ proxy routes

a9a1c7adoor Henk-Jan

feat: add Cloudflare Image Resizing env vars to deploy workflow

88a9cb7door Henk-Jan

chore: add env debug endpoint for troubleshooting

a889611door Henk-Jan

fix: resolve URL formatting issues in Cloudflare image loader

9f2a603door Henk-Jan

feat: implement Cloudflare Image Resizing for better performance and cost savings

ce16213door Henk-Jan

9 januari 2026

revert: switch deploy back to GitHub-hosted runner

feb3596door Henk-Jan

feat: use self-hosted runner only for deploy job

31c0ed7door Henk-Jan

revert: switch all workflows back to GitHub-hosted runners

2be3802door Henk-Jan

feat: migrate all workflows to self-hosted runner

ac9dca8door Henk-Jan

feat: use self-hosted runner for deploy and lighthouse workflows

36089f4door Henk-Jan

fix: PM2 git metadata via environment variables and stop/start

9595fd5door Henk-Jan

fix: load PATH and use npx fallback for PM2 in deployment

a0e90fadoor Henk-Jan

feat: add PM2 git metadata and manual Lighthouse trigger

90e931bdoor Henk-Jan

chore: rebuild with correct VPS site URL

8296ba9door Henk-Jan

fix: update Lighthouse env vars (remove Directus)

2623150door Henk-Jan

fix: correct check names in wait-for-checks

c5e5b51door Henk-Jan

fix: add permissions for wait-on-check action

0bd06c2door Henk-Jan

feat: implement workflow dependencies

f173985door Henk-Jan

chore: cleanup VPS deployment workflow

2cf746edoor Henk-Jan

feat: vervang afmeld button door dashboard link in bevestigingsmails

811e119door Henk-Jan

fix: correct memberNumber field location in email subscriptions

e231505door Henk-Jan

feat: add email subscriptions management to IT dashboard

cbabc6fdoor Henk-Jan

feat: improve calendar subscription instructions

f038cfddoor Henk-Jan

fix: resolve all ESLint warnings

2198df0door Henk-Jan

feat: redesign email preferences and calendar section

c94f06bdoor Henk-Jan

feat: add dynamic countdown to upcoming dive section

15db1bbdoor Henk-Jan

feat: improve dashboard notifications styling

c83ba12door Henk-Jan

fix: add missing slug field in getUpcomingDives

5431b25door Henk-Jan

feat: improve upcoming dive display on dashboard

8b2924edoor Henk-Jan

feat: show feedback type labels in list and detail views

eb950f9door Henk-Jan

fix: map feedback type labels to correct backend values

0132f43door Henk-Jan

fix: improve error visibility and feedback notifications

89d7625door Henk-Jan

feat: disable all feature flags - always use new functionality

94b819bdoor Henk-Jan

chore: remove deprecated Directus migrate scripts

44fb1cedoor Henk-Jan

fix: comment out deprecated Directus SDK imports in migrate scripts

e19af9bdoor Henk-Jan

fix: resolve all TypeScript errors and build issues

14c544bdoor Henk-Jan

feat: duik suggestie verbeteringen en locatie weergave

cbe9b79door Henk-Jan

8 januari 2026

fix: los ESLint warnings op (ongebruikte imports en unescaped entities)

2283230door Henk-Jan

refactor: verwijder Cloudflare Image Resizing, terug naar Next.js Image Optimization

fb81b00door Henk-Jan

fix: Gebruik Next.js Image Optimization voor API routes

ccc5646door Henk-Jan

fix: Gebruik originele URLs voor externe images

1a19b2adoor Henk-Jan

fix: Proxy Directus assets via lokale route

ccc9a21door Henk-Jan

fix: Encode alleen protocol slashes voor Cloudflare Image Resizing

9ab110bdoor Henk-Jan

fix: URL-encode externe URLs voor Cloudflare Image Resizing

ac664d3door Henk-Jan

fix: Voorkom dubbele 'Het Bestuur' menu item

853f4d7door Henk-Jan

fix: Gebruik cloudflareImageLoaderInline functie in CloudflareImage component

6ea9ca5door Henk-Jan

chore: Verwijder ongebruikte cloudflareImageLoaderInline imports

b842a6bdoor Henk-Jan

fix: Cloudflare Image Resizing development fallback

10e0a9cdoor Henk-Jan

fix: Cloudflare Image Resizing development fallback

9816f2edoor Henk-Jan

feat: Automatische API monitoring via middleware voor alle routes

a740e4fdoor Henk-Jan

chore: Verwijder ongebruikte imports

d58e80adoor Henk-Jan

feat: Hernoem Error Tracking naar API Info met uitgebreide API informatie

c9d89e6door Henk-Jan

fix: Prisma client cache invalidation voor nieuwe models

95ae47edoor Henk-Jan

fix: TypeScript errors in error tracking

7909d58door Henk-Jan

feat: Error tracking en API performance monitoring

e27fa11door Henk-Jan

feat: Web Vitals tracking en IT dashboard uitbreidingen

d6e26a7door Henk-Jan

feat: implement Web Vitals tracking with Plausible and API endpoint

9fe155cdoor Henk-Jan

fix: preserve adminRole and adminBio when updating member profile without these fields

7b543f0door Henk-Jan

perf: critical LCP optimizations - unoptimized hero image and image caching config

94e5d3cdoor Henk-Jan

feat: add all required environment variables to build process for VPS deployment

da24e2edoor Henk-Jan

7 januari 2026

test: deployment workflow verification

87753f4door Henk-Jan

docs: add SSH key troubleshooting guide

d83988cdoor Henk-Jan

fix: bestuursfoto's server-side URL formatting

438605adoor Henk-Jan

fix: bestuursfoto's en TypeScript errors

ceb9ee3door Henk-Jan

fix: Fix TypeScript errors - duplicate prisma import

a03b8abdoor Henk-Jan

feat: Migreer duiken en registraties naar Prisma database met vereenvoudigde flow

f31d6e5door Henk-Jan

perf: Optimaliseer caching strategie voor Prisma database migratie

0767dd4door Henk-Jan

fix: Verwijder ongebruikte isPending variabelen uit useTransition

6a06f80door Henk-Jan

perf: Optimaliseer INP (Interaction to Next Paint) voor betere gebruikerservaring

0340558door Henk-Jan

fix: Escape apostrophes in PagesManagement component

3f2c1ffdoor Henk-Jan

feat: Migreer Pages en Bestuur naar Prisma database

262681adoor Henk-Jan

fix: herstel standaard AI prompt voor duiklocaties

9bfb057door Henk-Jan

fix: verwijder ongebruikte imports uit MembershipContent

919bdacdoor Henk-Jan

refactor: herindeling dashboard en naamwijziging Profiel naar Mijn Gegevens

77f4420door Henk-Jan

fix: verbeter responsive knop en badge limiet in DiveCard

79ed9cddoor Henk-Jan

6 januari 2026

fix: ondersteun Directus registraties als ENABLE_DIVES_MANAGEMENT uit staat

1d81cf5door Henk-Jan

feat: pas Compact List Item Pattern toe op admin pagina's en verbeter UI

516efdfdoor Henk-Jan

feat: pas DMARC email tekst aan en gebruik Compact List Item Pattern voor Fit-To-Dive accesslog

287cf61door Henk-Jan

fix: testimonial bewerken en verwijderen functionaliteit

4d220d2door Henk-Jan

fix: verbeter weergave deelgenomen duiken in admin gebruikerspagina

da5ba2adoor Henk-Jan

feat: toon alle brevetten in duiker toevoegen formulier

bcb226edoor Henk-Jan

feat: voeg verwijder functionaliteit toe voor deelnemers

a0c080fdoor Henk-Jan

fix: verwijder ongebruikte fullName variabele

8ef1f9fdoor Henk-Jan

feat: wijzig Certificaat naar Brevet en voeg CSV export toe

f0f3d5edoor Henk-Jan

fix: verbeter certificate mapping met certificate-types definitie

a30c581door Henk-Jan

feat: vul telefoonnummer en brevet automatisch in bij duiker selectie

cbe2ee8door Henk-Jan

fix: verwijder date_created veld uit Directus query

9073f05door Henk-Jan

fix: verbeter Directus dive registraties ophalen

be1c1b9door Henk-Jan

fix: los TypeScript errors op voor proeflid en dieetwensen

3057ccbdoor Henk-Jan

feat: voeg proeflid flag en dieetwensen functionaliteit toe

3ae1ccadoor Henk-Jan

feat: implementeer security fase 2 - email validatie, rate limiting en input sanitization

48a652cdoor Henk-Jan

feat: implementeer security fase 1 - webhook verificatie, file validation en error handling

dd12688door Henk-Jan

docs: voeg curl commands toe voor testen van alle emails

8bf4670door Henk-Jan

fix: voeg ALV email test toe aan all-emails endpoint

8fe412bdoor Henk-Jan

feat: voeg ALV registration confirmation email toe aan test endpoint

58d275adoor Henk-Jan

fix: verwijder laatste directe SMTP calls uit dive suggestion emails

be590ecdoor Henk-Jan

refactor: verwijder alle directe SMTP calls uit email functies

7d401b4door Henk-Jan

fix: verwijder direct SMTP check uit sendALVRegistrationConfirmationEmail

facee5fdoor Henk-Jan

feat: voeg logging toe voor email methode detectie

448d090door Henk-Jan

chore: update email proxy configuration

019bfb3door Henk-Jan

fix: TypeScript error voor from adres parsing

0a53bf2door Henk-Jan

feat: integreer Email Proxy Service voor email verzending

066dbc7door Henk-Jan

feat: integreer Email Proxy Service voor email verzending

a000d20door Henk-Jan

revert: terug naar werkende SMTP configuratie

44836d8door Henk-Jan

fix: pas TLS configuratie aan voor poort 465 SSL handshake problemen

5c10671door Henk-Jan

fix: verhoog ook timeouts in hoofdconfiguratie

f57ea59door Henk-Jan

fix: verhoog SMTP timeouts voor betere compatibiliteit met cloud providers

71ed54adoor Henk-Jan

fix: verwijder initEmailService call uit getTransporter om recursie te voorkomen

8e6883fdoor Henk-Jan

fix: voorkom oneindige recursie in SMTP transporter initialisatie

60b1268door Henk-Jan

feat: automatische fallback naar poort 587 als 465 faalt

6413fa0door Henk-Jan

fix: verwijder restrictieve TLS configuratie die SMTP verbinding blokkeert

78ac8c4door Henk-Jan

fix: verbeter SMTP diagnostiek en troubleshooting

6217f8adoor Henk-Jan

fix: verbeter SMTP configuratie en error handling

89c7669door Henk-Jan

fix: verbeter SMTP configuratie voor betere connectiviteit

0ca5197door Henk-Jan

fix: verbeter error logging voor ALV registratie email

7ff85cedoor Henk-Jan

feat: voeg eet- en dieetwensen veld toe aan ALV aanmeldingen

068a1cadoor Henk-Jan

5 januari 2026

fix: negeer ook lodash.template vulnerability via @oclif

b178b4adoor hknobbe

fix: corrigeer npm audit JSON parsing in security checks

6cc1310door hknobbe

chore: verwijder audit temp bestanden en voeg toe aan gitignore

78adb48door hknobbe

docs: bevestig dat dotenv-vault niet in productie build komt

f4fea7fdoor hknobbe

fix: update check:all script to ignore dev-only vulnerability

c5f8974door hknobbe

fix: negeer lodash.template vulnerability in dev-only dependency

35444e3door hknobbe

fix: verwijder resterende delete functies uit DivesManagement

2e234eadoor hknobbe

fix: verwijder ongebruikte delete functionaliteit uit DivesManagement

c650e44door hknobbe

fix: verwijder argument van loadDives aanroep

6fd317adoor hknobbe

feat: herstructureren duikaanmeldingen en autocomplete fix

5b5a490door hknobbe

fix: transformeer Prisma object naar email interface formaat in dive registration

cfd78abdoor Henk-Jan

fix: los TypeScript errors op in dive registration route

0926429door Henk-Jan

docs: migreer van .env.local naar .env en update documentatie

6cb906fdoor Henk-Jan

fix: lint warnings in ALVManagement en DiveRegistrationsManagement

49a9417door Henk-Jan

fix: TypeScript errors in ALV, Dive en SectionHeader componenten

d857db0door Henk-Jan

feat: ALV URL structuur, dubbele aanmelding preventie, admin delete, email met .ics

5c26079door Henk-Jan

feat: ALV functionaliteit met bijlagen, WYSIWYG editor en deelbare links

4b794eedoor Henk-Jan

fix: verwijder ongebruikte total state

741ffecdoor Henk-Jan

fix: verwijder unused variable en escape quotes

fd90b04door Henk-Jan

feat: duikvoorstellen met locatie matching en gecategoriseerd admin menu

12cd7b6door Henk-Jan

fix: Remove unused id variable in blog post edit page

64dbd2edoor Henk-Jan

fix: Blog posts ID handling en list styling verbeteringen

763649adoor Henk-Jan

fix: voeg check toe voor Prisma client initialisatie in createTestimonial

7516578door Henk-Jan

fix: verwijder te strikte database check en repareer syntax error

1fa8309door Henk-Jan

fix: voeg automatische sort bepaling toe aan createTestimonial

c8d23b0door Henk-Jan

refactor: verwijder handmatige Directus input en voeg automatische sort toe

7004749door Henk-Jan

fix: verplaats getTestimonialPhotoUrl naar client-safe module

9296dd0door Henk-Jan

feat: voeg file upload toe aan testimonial form

1335ff8door Henk-Jan

fix: los lint warnings op in testimonials code

b5bdde8door Henk-Jan

feat: migreer testimonials van Directus naar Prisma

3733529door Henk-Jan

docs: voeg Neon gratis plan analyse toe

3b5e8e1door Henk-Jan

docs: voeg Neon integraties documentatie toe

cdd44bbdoor Henk-Jan

docs: voeg Neon migratie success document toe

ff25408door Henk-Jan

docs: voeg post-migratie checklist toe voor Neon

b0ed686door Henk-Jan

docs: update Neon quick start met branch informatie

18cbb5fdoor Henk-Jan

docs: voeg Neon migratie guides toe

214f516door Henk-Jan

docs: voeg Neon vs Supabase vergelijking toe

b2063b9door Henk-Jan

docs: voeg kosten vergelijking toe en goedkopere alternatieven

7ea9e77door Henk-Jan

docs: voeg gedetailleerde HA vergelijking en stappenplan toe

c8f7360door Henk-Jan

fix: voeg Auth Cancelled error vertaling toe

6f03788door Henk-Jan

feat: uitbreiden Better Auth error vertalingen

441408edoor Henk-Jan

fix: server-side hasVoted check voor polls

87e0e92door Henk-Jan

fix: escape quotes in JSX voor lint compliance

22662b5door Henk-Jan

refactor: vervang alle alert() en confirm() met inline messages

73ac449door Henk-Jan

fix: poll voting issues - userId check en Nederlandse errors

76491fcdoor Henk-Jan

fix: translate poll error message and show results after voting

a9530dddoor Henk-Jan

fix: graceful Prisma degradation for Lighthouse CI

422fb2adoor Henk-Jan

fix: improve Directus error handling for Lighthouse CI

dfeee34door Henk-Jan

fix: deployment errors - gitleaks en lighthouse CI

2e90051door Henk-Jan

4 januari 2026

fix: rename headers variable to avoid conflict with next/headers

9c4205bdoor Henk-Jan

fix: TypeScript errors in trigger route en poll vote

1e79752door Henk-Jan

fix: eslint errors in PollForm en PollStats

4925809door Henk-Jan

docs: update compliance status na verbeteringen

a1fce68door Henk-Jan

refactor: compliance verbeteringen - client components en SectionHeader

ea72a06door Henk-Jan

docs: voeg compliance audit rapport toe

47bbcdcdoor Henk-Jan

chore: archiveer Dockerfiles en email-design preview bestanden

02e2ad3door Henk-Jan

chore: archiveer docker-compose bestanden

b1d4e8edoor Henk-Jan

chore: archiveer overige Directus bestanden en voeg deprecation notices toe

2ddd7b1door Henk-Jan

chore: archiveer Directus deployment bestanden en documentatie

e72f831door Henk-Jan

fix: los semver security vulnerability op via npm override

3fcb034door Henk-Jan

feat: verbeter IT dashboard homepage

5b3896bdoor Henk-Jan

fix: los type errors en linting warnings op

c275462door Henk-Jan

feat: verbeter cron job management UI en functionaliteit

9317be1door Henk-Jan

3 januari 2026

chore: sluit infisical.ts uit van type checking

af3a8addoor Henk-Jan

chore: verwijder hardcoded user ID en email defaults

dccd254door Henk-Jan

feat: voeg model selector toe voor AI beschrijving generatie

829b6eedoor Henk-Jan

fix: Apply Safari modal fixes to all modals according to styleguide

37d11a9door Henk-Jan

docs: Add Safari modal compatibility patterns to styleguide

1d063b9door Henk-Jan

fix: Safari desktop - prevent 'Vraag code aan' button from being cut off

1fe3c67door Henk-Jan

fix: Modal max-width - respect max-w-lg on desktop, only use calc on small screens

93d975edoor Henk-Jan

fix: Safari desktop modal button overflow issue

3501646door Henk-Jan

fix: Modal Safari compatibiliteit en wachtwoord redirect

605e43adoor Henk-Jan

fix: Lint warnings opgelost (unused vars en quotes)

c15031fdoor Henk-Jan

feat: AI-powered beschrijving generatie voor duiklocaties

7881f45door Henk-Jan

2 januari 2026

feat: Duiklocaties beheer met Prisma database migratie

e5519addoor Henk-Jan

feat: voeg reset script toe om git commits database opnieuw te vullen

2ad4f03door Henk-Jan

perf: optimaliseer database opslag - schrijf alleen nieuwe commits

eef4903door Henk-Jan

fix: gebruik PrismaPg adapter voor database connectie in generate-changelog script

667e1c1door Henk-Jan

feat: voeg database opslag toe voor git commits

10d8e0cdoor Henk-Jan

fix: los laatste linting errors op

42989c9door Henk-Jan

feat: improve bundle size report with better metrics and artifact upload

84121c4door Henk-Jan

fix: remove deprecated eslint config and empty middleware to resolve Next.js 16 warnings

d7cd8d3door Henk-Jan

fix: add statuses:write permission to all workflows for Vercel notifications

1e14d93door Henk-Jan

fix: add gitleaks.toml config and allowlist comments to prevent false positives

badd768door Henk-Jan

fix: remove unsupported status parameter and add permissions to Vercel notification workflows

e498e76door Henk-Jan

fix: update documentation examples to avoid false positives in secrets scan

9c6096bdoor Henk-Jan

fix: add status parameter to Vercel deployment check notifications

5180034door Henk-Jan

fix: update Vercel deployment checks to work for production deployments

efeac44door Henk-Jan

fix: quote Vercel notification names for YAML syntax

8e58c78door Henk-Jan

feat: add Vercel deployment check notifications to GitHub Actions workflows

2808056door Henk-Jan

fix: remove docker build workflow and disable TypeScript/ESLint checks in Vercel builds

5848c87door Henk-Jan

fix: limit secrets scan to current commit only

3e2a523door Henk-Jan

fix: update secrets scan workflow and remove false positive from docs

3cfaf94door Henk-Jan

chore: setup pre-push checks and GitHub Actions workflows

d719c87door Henk-Jan

Add @floating-ui/dom as explicit dependency - Fix CI build error

5bbbd5edoor Henk-Jan

Verbeter spacing tussen dashboard componenten - Consistent spacing tussen alle kaarten en secties - Verklein spacing van 6/10 naar 4/8 voor compactere layout - Pas spacing toe op alle dashboard en admin pagina's

fd03a6edoor Henk-Jan

Verbeter audit log: paginatie, compacte layout, CSV export voor Excel, verwijder redundante reason kolom

55eed25door Henk-Jan

fix: verbeterde build-time detectie voor S3_REGION check

936d2acdoor Henk-Jan

fix: lazy initialization voor alle S3 environment variables

c404652door Henk-Jan

fix: lazy initialization voor encryption library om build errors te voorkomen

866c5dfdoor Henk-Jan

fix: Better Auth initialization met betere build-time detectie

eaf9807door Henk-Jan

fix: lazy initialization voor S3 en Better Auth om build errors te voorkomen

f14076bdoor Henk-Jan

feat: audit log retentie policy met automatische cleanup

6d58fa3door Henk-Jan

feat: audit logging met download reden, verbeterde datum/tijd formatting en IP geolocation

b5b7b26door Henk-Jan

Consolideer componenten en navigatie, voeg style guide toe

a9f7364door Henk-Jan

Fix React Hook dependency warnings in UsersManagement

c771767door Henk-Jan

1 januari 2026

Verbeter spacing tussen secties en koppen, fix lint errors

ed51a86door Henk-Jan

Dashboard en admin mobile-friendly maken, MFA beheer verbeteren en diverse UI aanpassingen

528e07ddoor Henk-Jan

Fix TypeScript compile error in PasskeyManagement

1f7f9c5door Henk-Jan

Gebruik PostgreSQL DATE type voor geboortedatum

1fef153door Henk-Jan

Verbeter login/registratie formulieren en voeg verplichte geboortedatum toe

a1676a9door Henk-Jan

feat: implementeer 'Ingelogd blijven' functionaliteit met toggle switch

8aa556fdoor Henk-Jan

Feature: Auto sign-in na email verificatie

e2be1f1door Henk-Jan

Fix: email_verified_at wordt nu automatisch gezet via Better Auth afterEmailVerification callback

cd26a25door Henk-Jan

Fix: email_verified_at timestamp, verwijder redundante email_verification_tokens tabel, en verbeter MFA login flow

ccc4f27door Henk-Jan

Fix Prisma 7 compatibiliteit - downgrade naar Prisma 6

5023d83door Henk-Jan

Fix TypeScript type-check voor Prisma Client

8f5d39adoor Henk-Jan

Fix Prisma Client generatie op Vercel

429ac53door Henk-Jan

Fix Prisma Client import - clear all caches

29d1947door Henk-Jan

Fix Prisma Client TypeScript import issue

0ae5cd1door Henk-Jan

Fix Prisma Client generatie en build

a4a0a20door Henk-Jan

Update database configuratie naar externe server

6da1e8cdoor Henk-Jan

Fase 1: Prisma database setup voor user management

b51aebddoor Henk-Jan

Add Prisma files to .gitignore for user management

0a3bb52door Henk-Jan

Update environment files: security fixes and user management prep

9098a0adoor Henk-Jan

Fix border-radius voor afbeeldingen in email cards op mobiel

25b282fdoor Henk-Jan

Gebruik SVG logo's en maak email header subtieler

c475ee9door Henk-Jan

Maak email header subtieler met logo

8318f8fdoor Henk-Jan

Verwijder preview bestand email-modern-design.ts

3131d11door Henk-Jan

Moderniseer alle email templates met nieuw design

0b18544door Henk-Jan

Fix: Verwijder dubbele border lijn in nieuwe duiken email beschrijving

c239f4cdoor Henk-Jan

Fix: Herstel originele responsive prose classes voor beschrijvingen

8287b76door Henk-Jan

Fix: Verwijder text-sm van prose p en li om originele lettergroottes te herstellen

1bbb704door Henk-Jan

Cleanup: Verwijder ongebruikte dive-description CSS class

5051f29door Henk-Jan

Revert: Zet website layout terug naar originele sidebar layout

9ede3a2door Henk-Jan

Fix: Verbeter beschrijving layout in nieuwe duiken email - label boven, tekst eronder

1fbfa29door Henk-Jan

Refactor: Compleet nieuwe layout - beschrijving full-width met max-width, sidebar items eronder

07febffdoor Henk-Jan

Fix: Geef beschrijving nog meer ruimte (70% in plaats van 60%)

4c25b09door Henk-Jan

Fix: Geef beschrijving meer ruimte op desktop door grid layout aan te passen

2b7293adoor Henk-Jan

Fix: Nieuwe dive-description class met directe Tailwind responsive classes voor desktop

4be70d8door Henk-Jan

Fix: Voeg responsive prose styling toe via CSS media queries voor desktop

6aa3b27door Henk-Jan

Fix: Gebruik Tailwind arbitrary variants voor responsive prose styling op desktop

9801946door Henk-Jan

Improve: Betere desktop typografie voor duik beschrijvingen

85d5ee5door Henk-Jan

Fix: Vervang let met const voor linter warnings

699b9fddoor Henk-Jan

Fix: Expand location_id relatie in alle email endpoints voor correcte locatie weergave

260c4e7door Henk-Jan

Fix: Verbeter location_id expansie met location_id.* syntax en handmatige fallback

a0b4235door Henk-Jan

Fix: Corrigeer fields referentie in getDiveByDateAndSlug fallback query

9e569d1door Henk-Jan

Fix: Verbeter location_id relatie expansie voor aankomende duiken met fields[] array syntax

43c76afdoor Henk-Jan

Fix: Verbeter commentaar structuur in unsubscribe route

8bb34c7door Henk-Jan

Voeg List-Unsubscribe headers toe en implementeer one-click unsubscribe + email tester endpoint

49a3744door Henk-Jan

Optimaliseer cron job voor betaald cron-job.org account met configurable timeout en hogere batch limits

0fa3299door Henk-Jan

Fix: Voorkom dubbele verkorte URLs door race condition checks en betere filtering

50e17c6door Henk-Jan

31 december 2025

Verplaats Shlink API key naar environment variables voor betere beveiliging

b100d0cdoor Henk-Jan

27 december 2025

Fix: parseFloat voor dive.price in New Dives Email om toFixed() fout te voorkomen

cbf9779door Henk-Jan

Verwijder AWS SES implementatie en terug naar SMTP-only

f0ffc56door Henk-Jan

Fix: Gebruik AWS SES API direct in plaats van Nodemailer transporter (TypeScript compatibiliteit)

2e74ab3door Henk-Jan

Fix: TypeScript error - gebruik optional chaining voor AWS_ACCESS_KEY_ID

4fe922adoor Henk-Jan

Voeg AWS SES email support toe met automatische detectie en Barracuda delist request template

ac8295fdoor Henk-Jan

Verbeter poll stem opslag: gebruik cookies (transparant via Cookiebot) met localStorage fallback

54e3bcfdoor Henk-Jan

Fix: Schakel ESLint regel uit voor Cookiebot script (vereist voor vroeg laden)

d6e2132door Henk-Jan

Voeg Cookiebot cookie consent management toe

7977cfedoor Henk-Jan

24 december 2025

Fix: Daily dive notifications kijkt nu naar duiken sinds gisteren in plaats van alleen vandaag

5c81162door Henk-Jan

Voeg uitgebreide logging toe voor datum debugging in calendar URL generatie

fe4d24adoor Henk-Jan

Combineer aantal en namen van deelnemers in één regel in iCal feed

a80aceddoor Henk-Jan

Detecteer en vervang oude format calendar short URLs

b72a72cdoor Henk-Jan

Verbeter URL logging en cache instellingen voor calendar feed

8ed913ddoor Henk-Jan

Voeg voornamen van deelnemers toe aan iCal calendar feed

21c4c84door Henk-Jan

Verbeter check voor bestaande calendar short URLs en voeg uitgebreide logging toe

7eb2615door Henk-Jan

Verbeter calendar feed: check bestaande short URLs, verwijder colon escape, gebruik adres als locatie

a18515bdoor Henk-Jan

Verbeter calendar feed: verwijder inschrijflink, fix reminder volgorde en newline handling

320985fdoor Henk-Jan

Fix TypeError: price.toFixed is not a function - voeg type checking toe voor price veld

d42086cdoor Henk-Jan

Voeg iCal line folding toe en verbeter escaping voor calendar feed compatibiliteit

65a0160door Henk-Jan

Voeg debug logging toe aan calendar feed en verbeter escaping van speciale karakters

dfd3ff9door Henk-Jan

Fix calendar feed: corrigeer GPS property handling om lege calendar te voorkomen

f6194afdoor Henk-Jan

Voeg uitgebreide calendar features toe om deelname te stimuleren

9f4e1a5door Henk-Jan

Verhoog timeouts en delays voor Shlink API om timeout problemen op te lossen

e29ce32door Henk-Jan

Updated deps

ef2a15fdoor Henk-Jan

Fix ESLint warnings en voeg calendar URL generatie toe aan post-deploy script

7729199door Henk-Jan

Voeg calendar_short_url toe aan Dive fields en implementeer iCal feed met calendar short URLs

5c41780door Henk-Jan

Fix: Vervang interne API call door directe slug generatie logica

80ab971door Henk-Jan

Fix: Verwijder dubbele errors declaratie in shorten-urls cron job

dcdf167door Henk-Jan

Verbeter error handling en status codes voor cron jobs

235c5badoor Henk-Jan

Fix Directus filter queries: gebruik URLSearchParams en verbeter error handling

464c62cdoor Henk-Jan

Fix ESLint errors: unused variables en prefer-const warnings

9a33219door Henk-Jan

Migreer shorten-urls cron job naar cron-job.org voor Hobby plan

aff8929door Henk-Jan

Feature: Automatische WhatsApp short URLs en slug generatie via Shlink

9785790door Henk-Jan

Sitemap: Voeg ontbrekende pagina's en blog posts toe

5c0a5ecdoor Henk-Jan

23 december 2025

Documentatie: Automatische slug generatie voor Directus flows

d279a82door Henk-Jan

Fix: verwijder ongebruikte redirect import

b8b296bdoor Henk-Jan

Plausible tracking uitgebreid: outbound links, file downloads, 404 errors en ecommerce revenue

4001fb4door Henk-Jan

Nieuwe URL structuur voor duiken: /duiken/[datum]/[slug] met backward compatibility

3eae61cdoor Henk-Jan

UTM parameters toegevoegd aan alle links in emails voor betere tracking

2dd4925door Henk-Jan

Ondersteuning voor self-hosted Plausible Analytics toegevoegd

8606143door Henk-Jan

5 december 2025

Disable ESLint rule for dialog stopPropagation handlers

0bbc12edoor Henk-Jan

Fix accessibility errors: add onKeyDown handlers to dialog elements

b4eeda2door Henk-Jan

Fix workflow to properly check for ESLint errors only

0781755door Henk-Jan

Update workflow to only fail on ESLint errors, not warnings

4f47f2edoor Henk-Jan

Fix remaining linter errors and disable problematic warnings

1f2ec71door Henk-Jan

Fix indentation in FeedbackWidget fieldset

5362ec3door Henk-Jan

Fix fieldset closing tag in FeedbackWidget

7e532c9door Henk-Jan

Fix remaining accessibility errors: add dialog roles and fieldset for labels

519824fdoor Henk-Jan

Fix syntax error: remove duplicate closing bracket in DiveWeatherWidget

2a0a467door Henk-Jan

Fix remaining ESLint errors: scripts unused vars, accessibility improvements

8f889aedoor Henk-Jan

Fix ESLint errors: remove unused variables, fix prefer-const, update ts-ignore to ts-expect-error

bc23ed3door Henk-Jan

Remove old .eslintrc.json file (replaced by eslint.config.js)

e052064door Henk-Jan

Migrate ESLint to flat config format for ESLint 9 compatibility

a27193adoor Henk-Jan

Update Node.js version to 20 for Next.js 16 compatibility in CI workflows

1a22a84door Henk-Jan

Fix TypeScript error: diveId scope in catch block

dda6c45door Henk-Jan

Update contributieprijs van €60 naar €65 per jaar

bd83b92door Henk-Jan

27 november 2025

Fix: Toon alle duiken van dit kalenderjaar in statistieken

5594fa2door Henk-Jan

21 november 2025

Toon zowel duik beschrijving als locatie beschrijving op duikpagina

9c8e100door Henk-Jan

19 november 2025

Fix ronde foto weergave in bestuur modal op mobiel - voeg aspect-square en object-center toe voor correcte crop

ff9e941door Henk-Jan

17 november 2025

Verhoog gewicht van temperatuur in duikcijfer berekening

86a6a16door Henk-Jan

Fix: tekst afkapping op mobiel voor email subscription banner

aa80066door Henk-Jan

Add penningmeester email notification when payment link cannot be generated

8332913door Henk-Jan

7 november 2025

Fix TypeScript error: ensure lat/lon are always assigned

e5c4d58door Henk-Jan

Fix weather forecast: gebruik directe coördinaten, adres en betere error handling

487c32cdoor Henk-Jan

3 november 2025

Voeg Plausible tracking toe voor Feedback formulier met properties

1667aeedoor Henk-Jan

Switch Plausible terug naar gehoste versie in plaats van self-hosted

14d0ceadoor Henk-Jan

2 november 2025

feat: Configureer Plausible voor self-hosted met custom domain

b1f127fdoor Henk-Jan

feat: Voeg 'Delen' kop toe boven agenda en WhatsApp knoppen

dde9737door Henk-Jan

feat: Plaats agenda en WhatsApp knoppen naast elkaar in compacte layout

51e4d09door Henk-Jan

feat: Verplaats inschrijfknop onder deelnemerslijst en verbeter vol-status

2c90dd6door Henk-Jan

perf: Optimaliseer netwerkafhankelijkheidsstructuur voor kritieke keten

2bd034adoor Henk-Jan

style: Pas faciliteiten grid layout aan naar 2 kolommen mobiel, 3 kolommen desktop

8b42f5adoor Henk-Jan

feat: Maak titel op DiveCard klikbaar naar dive pagina

10c9e46door Henk-Jan

refactor: Gebruik altijd faciliteiten uit location_id in plaats van dive.facilities

f5c13bedoor Henk-Jan

fix: Update current_participants bij annulering van duik registratie

9600f84door Henk-Jan

fix: Voeg critters dependency toe voor optimizeCss feature

a4ac56cdoor Henk-Jan

perf: Optimaliseer resource load delay voor betere performance

1bf31dddoor Henk-Jan

feat: Voeg development logging toe voor address lookup API's

6328802door Henk-Jan

feat: Gebruik PDOK FREE API als primaire adres lookup bron

78dba6adoor Henk-Jan

fix: Wrap useSearchParams in Suspense boundary voor build compatibiliteit

d1f5ab0door Henk-Jan

feat: Voeg Plausible tracking toe voor annulering en email subscriptions

55676bedoor Henk-Jan

docs: Voeg Plausible Analytics setup documentatie toe

d6d37bfdoor Henk-Jan

feat: Vervang Vercel Analytics met Plausible Analytics en voeg custom events toe

a427cb4door Henk-Jan

perf: Optimaliseer resource loading om Speed Insights scores te verbeteren

a2348f5door Henk-Jan

perf: Voorkom JavaScript render blocking met lazy loading

a1b67f1door Henk-Jan

fix: Maak archief pagina static generation compatible met force-cache

5d62f70door Henk-Jan

fix: Maak sitemap static generation compatible met force-cache

b6ca4d9door Henk-Jan

fix: Corrigeer return type van getDiveFacilities naar undefined

a3aa212door Henk-Jan

fix: Corrigeer TypeScript types voor locatie helper functies

35bf5a2door Henk-Jan

feat: Implementeer duiklocaties database en diverse verbeteringen

82d145edoor Henk-Jan

Fix: Vervang laatste todayString referentie door todayNL

661d65edoor Henk-Jan

Fix: Vervang todayString door todayNL in alle filters

d9d49cfdoor Henk-Jan

Fix: Gebruik Nederlandse tijdzone voor datum filtering (timezone fix)

4eaa6c5door Henk-Jan

Fix: Force dynamic rendering voor kalender/homepage zodat oude duiken direct verdwijnen

2374013door Henk-Jan

Fix: Duiken verdwijnen nu op de dag na de duik (geen gisteren meer op kalender)

0b2be0adoor Henk-Jan

1 november 2025

Verbeter GitHub API authenticatie en error handling voor changelog

a6bef93door Henk-Jan

Voeg GITHUB_TOKEN configuratie toe aan env.example

3979a5ddoor Henk-Jan

Fix: Gebruik altijd GitHub API op Vercel + ondersteuning private repos

ae70500door Henk-Jan

Voeg GitHub API fallback toe voor changelog op Vercel (shallow clone fix)

4dcbd7fdoor Henk-Jan

Vereenvoudig changelog: haal alle commits op tijdens build ipv incrementeel

9179c26door Henk-Jan

Fix: Toon alle commits in changelog ipv alleen eerste 100

1f858afdoor Henk-Jan

Verbeter changelog: voeg nieuwe commits toe ipv volledig overschrijven

15db55fdoor Henk-Jan

Voeg gegenereerde changelog.json toe

bb52493door Henk-Jan

Voeg build-time changelog generatie toe voor Vercel productie

448f11edoor Henk-Jan

Fix: Voeg expliciete types toe aan git.ts callbacks

1af8bb8door Henk-Jan

Fix: Voeg description toe aan PageHeader in changelog

2ff5d15door Henk-Jan

Fix: Verwijder subtitle prop van PageHeader in changelog pagina

fd1a09ddoor Henk-Jan

Verbeter changelog: voeg dateRaw toe voor juiste sortering

d86f43cdoor Henk-Jan

Voeg changelog pagina toe met git commits, subtiele link in footer

c580fefdoor Henk-Jan

Fix: Maak dummy payment link als placeholder API key wordt gebruikt, geen link als API key ontbreekt

38c4fc2door Henk-Jan

Verbeter: Geen dummy payment link bij ontbrekende Mollie API key - email toont bericht over penningmeester

aa1e6c0door Henk-Jan

Fix: Pas sendDiveSuggestionStatusEmail aanroep aan naar plat object structuur

a87d7f5door Henk-Jan

Fix: Voeg page_url toe aan FeedbackEmailData test data

247428ddoor Henk-Jan

Fix: Pas MembershipEmailData test data aan naar juiste interface velden

c21090bdoor Henk-Jan

Fix: Pas sendAdminConfirmationEmail aanroep aan naar juiste parameters

145a264door Henk-Jan

Fix: Gebruik testDive ipv testRegistration voor dive parameter

50529a8door Henk-Jan

Fix: Voeg limit=-1 toe aan subscription queries om alle subscribers op te halen

4eb0f61door Henk-Jan

Voeg test API toe om alle emails in een keer te versturen voor layout check

a216279door Henk-Jan

Verwijder universele transparent regel en voeg table/td transparantie toe

209fd86door Henk-Jan

Forceer transparante achtergrond in emails met !important

4a3395adoor Henk-Jan

Verwijder witte achtergrond uit emails: gebruik native email client achtergrond

098cd4bdoor Henk-Jan

Verbeter foto layout in nieuwe duiken email: maak foto aansluitend op detail-box

db613dfdoor Henk-Jan

Fix: voorkom dat envelope icoon ook in uitgeklapte header langwerpig wordt

17063b6door Henk-Jan

Fix: voorkom dat envelope icoon rondje langwerpig wordt

2251a30door Henk-Jan

Voeg duikfoto toe aan nieuwe duiken email en hardcode links naar productie URL

04959b1door Henk-Jan

Voeg TEST_SECRET toe aan env.example

78b29ecdoor Henk-Jan

Test endpoint: test volledige flow met echte subscriptions uit Directus

ad76dd4door Henk-Jan

Voeg test endpoint toe voor nieuwe duiken email

6cb3e2ddoor Henk-Jan

Fix logo URL in emails: gebruik altijd publieke productie URL

d69ab63door Henk-Jan

Voeg uitgebreide logging toe voor token hash debugging en normaliseer ID

9839ef3door Henk-Jan

Fix token hash verificatie: normaliseer email en voeg debugging toe

fc4a945door Henk-Jan

Verwijder CancelNotification van kalender (niet meer nodig)

d0f3b84door Henk-Jan

Voeg bevestigingspagina toe voor annuleringen

b7bd433door Henk-Jan

Fix annuleerlink: voeg notification toe en verbeter logging

432ed55door Henk-Jan

Fix TypeScript: Replace secondaryColor with accentColor in email template

6744f42door Henk-Jan

Fix TypeScript: Use spread operator for registration object in cancel admin email

1acde8bdoor Henk-Jan

Fix TypeScript error: Add missing dive_id field in cancel registration admin email

fc1eee5door Henk-Jan

Ensure unsubscribe and cancel links always use public production URL

5d4c2c5door Henk-Jan

Fix: Ensure registration ID is available for cancel link in dive registration emails

d5c347cdoor Henk-Jan

Add detailed Directus setup guide for email subscriptions

e526efcdoor Henk-Jan

Add email subscription system with unsubscribe and dive registration cancellation

905bc8fdoor Henk-Jan

Fix ESLint warning: capture mapRef.current at effect start

4769801door Henk-Jan

Fix datum en tijd velden grootte op mobiel voor duik-voorstellen formulier

b62e3eddoor Henk-Jan

Fix build errors: Leaflet CSS import en ESLint warnings

3e62b10door Henk-Jan

Activeer alle email functionaliteit met Directus flows

bcba74adoor Henk-Jan

Duik voorstellen flows en validatie updates

9fc7cbcdoor Henk-Jan

Duik voorstellen functionaliteit met interactieve kaart

7e9e937door Henk-Jan

Automatische bevestiging voor gratis duiken

b97006bdoor Henk-Jan

29 oktober 2025

Poll functionaliteit toegevoegd aan homepage

71fe392door Henk-Jan

âš¡ LCP optimalisaties: preconnect, WebP format en lazy loading

afc4127door Henk-Jan

Fix: Voeg cross-env toe voor Windows compatibiliteit van bundle analyzer

58944b4door Henk-Jan

Optimalisatie #3: Implementeer bundle analyzer voor JavaScript bundle analyse en optimalisatie

7f4beeddoor Henk-Jan

Optimalisatie #2: Implementeer bulk fetch voor dive registrations - vermindert API calls van N naar 1

a33d5cfdoor Henk-Jan

Optimalisatie #1: Verhoog bestuurspagina cache naar 1 uur (bestuursleden veranderen niet vaak)

63a9190door Henk-Jan

Verbeter SWR cache logging - maak onderscheid tussen cache hits en API calls duidelijker

f57ea75door Henk-Jan

Voeg client-side logging toe voor SWR cache debugging

65fea99door Henk-Jan

Fix hoisting error - verplaats calculateDiveScore functies buiten component

737a2d5door Henk-Jan

Implementeer SWR voor client-side caching van weather API calls - voorkom onnodige API requests

1b35e64door Henk-Jan

Verbeter logging door de hele site - consistente emoji-based logging voor alle API routes en Directus functies

0185df5door Henk-Jan

Fix inconsistent participant pills loading - better error handling en logging

db8e09adoor Henk-Jan

Verwijder contact sectie van bestuurspagina

8c22091door Henk-Jan

Voeg retry logica toe voor deelnemers ophalen op mobiel

761df83door Henk-Jan

Maak alle deelnemer pillen oranje en verbeter refresh snelheid met no-cache

9552d01door Henk-Jan

Maak deelnemer pillen oranje consistent met buttons

ffaf60cdoor Henk-Jan

Fix bestuur kaarten centrering met flex-wrap voor piramide layout

6061b5cdoor Henk-Jan

Centreer bestuurskaarten voor piramide uitlijning

d077f28door Henk-Jan

Vervang klok icon door verjaardagstaart icon bij leeftijd

170cc8adoor Henk-Jan

Voeg leeftijd en certificering toe aan bestuur modal

7469e38door Henk-Jan

Maak Lees verder knop oranje op bestuur kaarten

57dfd6cdoor Henk-Jan

Voeg modal toe voor volledige bio op bestuurspagina met max hoogte kaarten

12be802door Henk-Jan

Update bestuur pagina: WYSIWYG voor bio en oranje contact knop

61e1165door Henk-Jan

Voeg Bestuur pagina toe met Directus integratie en documentatie

098f574door Henk-Jan

Verbeter email template met uitgebreidere voorbereidingstips voor duiken

e0a2275door Henk-Jan

Voeg 24-uurs herinnering toe aan agenda items voor duiken

5f3a3c0door Henk-Jan

Voeg UTM-parameters toe aan WhatsApp share link voor duiken

7ae4594door Henk-Jan

Voeg UTM-parameters toe aan alle social share links voor tracking

52cd3b5door Henk-Jan

Voeg helpende tekst toe bij screenshot upload met lampje emoji

261dbe7door Henk-Jan

Maak feedback verzenden knop oranje voor consistentie met andere CTAs

b953f7fdoor Henk-Jan

Verbeter feedback formulier layout - overzichtelijker met visuele secties

5fbe6cadoor Henk-Jan

Maak icoontje positie consistent in volgende duik kaart (items-start)

9b72cd2door Henk-Jan

Maak label tekstgrootte consistent in statistieken sectie (text-lg)

ac74c61door Henk-Jan

Verwijder underline bij location link hover - oranje kleur is voldoende feedback

353b9a7door Henk-Jan

Pas contactformulier button op Word lid pagina aan naar oranje gradient

2eeaca1door Henk-Jan

Voeg oranje hover states sitebreed toe (subtiel)

b02763edoor Henk-Jan

Voeg subtiele oranje accenten toe als secondary accentkleur

8b1345fdoor Henk-Jan

Pas Hero tekst aan: binnen- en buitenland -> mooiste binnenwateren

5c14692door Henk-Jan

Verwijder bedrag uit Hero en maak CTA knop aantrekkelijker

da3b090door Henk-Jan

Update Hero tekst voor meer impact en conversie

962b760door Henk-Jan

Maak 'Word lid' knoppen opvallender met oranje gradient en subtiele animaties

393808adoor Henk-Jan

Pas 'Word Lid' aan naar 'Word lid' in navigatie en pagina's

327482adoor Henk-Jan

Pas hoofdlettergebruik aan in titels en koppen

8ff9accdoor Henk-Jan

Vervang logo.jpg door logo.png

236344cdoor Henk-Jan

Vervang SVG logo door logo.jpg in header en gebruik als favicon

2d06219door Henk-Jan

Voeg KVK nummer toe aan contactpagina

2cb8941door Henk-Jan

Update tekst: 'Bekijk alle nieuws' naar 'Bekijk al het nieuws'

2abdafddoor Henk-Jan

Verhoog testimonials carousel interval naar 10 seconden

0da7443door Henk-Jan

Update testimonials subtekst: voeg 'van QDiving' toe

d59b2e7door Henk-Jan

Fix ESLint waarschuwing: escape quotes in testimonials

df14c50door Henk-Jan

Voeg testimonials carousel toe en verbeter menu structuur

9c761b0door Henk-Jan

Update: BlogPost types en documentatie - Voeg user_created/updated velden toe - Voeg archived status optie toe - Update documentatie met status beheer sectie

a090277door Henk-Jan

Feat: Blog/Nieuws functionaliteit (Actueel)

b80a4ecdoor Henk-Jan

Contact pagina & footer updates

b1a46b5door Henk-Jan

Fix: Membership form file upload en slimme validatie

d64958bdoor Henk-Jan

Move scroll anchor to wrapper div to keep step indicator visible on mobile

2c9bc9bdoor Henk-Jan

Add email confirmation and spam folder reminder to all forms

cc31292door Henk-Jan

Improve form scroll position to keep step indicator visible on mobile

05f50addoor Henk-Jan

Add external link icon to Fit2Dive link and update URL to duikkeuring article

78a78ffdoor Henk-Jan

Fix scroll behavior in multi-step form - keep form in view instead of jumping to page top

64ecd13door Henk-Jan

Add local development setup with live backend configuration

99c9d57door Henk-Jan

Move contact section to left column under membership benefits

42a5147door Henk-Jan

Add definitive iOS Safari date input width fix with flex container and CSS !important

f22f34ddoor Henk-Jan

Replace direct email/phone links with contact form links on membership and about pages

61b38dbdoor Henk-Jan

Remove overflow-hidden from date inputs to prevent iOS picker cutoff

16661fcdoor Henk-Jan

Fix iOS Safari date input width with overflow wrapper

86069a1door Henk-Jan

Upgrade address lookup to Pro6PP API with PDOK fallback

7eb7277door Henk-Jan

Add automatic address lookup by postal code and house number

4f8b9badoor Henk-Jan

Add stronger iOS Safari date input width fix with box-border and maxWidth

05abcaddoor Henk-Jan

Move membership fee text below 'Wat krijg je als lid?' heading

2fed2dddoor Henk-Jan

Fix iOS date input width while preserving native date picker

f862ededoor Henk-Jan

Fix date input width on iOS Safari

d5496dddoor Henk-Jan

Add 2-step membership form with diving experience and Fit2Dive upload

b9a9f22door Henk-Jan

Add two-column layout for Word Lid page on desktop

7207316door Henk-Jan

Update Word Lid benefits: focus on safety and social diving with meals

c844790door Henk-Jan

Improve Word Lid page with better benefits section and add admin documentation

683e07fdoor Henk-Jan

Fix dynamic server usage error for all API routes

1ed6e8fdoor Henk-Jan

Add complete SEO optimization with Open Graph, sitemap, and OG image

d73eb00door Henk-Jan

Fix Lighthouse CI assertions - disable non-essential checks

b69da18door Henk-Jan

Remove redundant Vercel deploy workflow

f39442cdoor Henk-Jan

Adjust desktop menu breakpoint to 1190px for better tablet support

0b62cb3door Henk-Jan

Fix iPad navigation: use hamburger menu for tablets

857b1cedoor Henk-Jan

Use consistent droplet icon for precipitation widget

f949114door Henk-Jan

Use location address for better geocoding accuracy

5936440door Henk-Jan

Fix TypeScript error: make dive time optional in forecast widget

94a6773door Henk-Jan

Add weather forecast widget for individual dive pages

6b21b0edoor Henk-Jan

Set weather location to Vinkeveen diving spot

615ce38door Henk-Jan

Improve weather score algorithm and fix mobile layout

395336cdoor Henk-Jan

Add dive weather widget with graceful degradation

22a8aa9door Henk-Jan

Weather status

d900088door Henk-Jan

Add debug logging for screenshot upload

f2ef3e7door Henk-Jan

Fix ESLint warning for screenshot preview

3836c5cdoor Henk-Jan

Add screenshot upload to feedback widget

f3d0d11door Henk-Jan

28 oktober 2025

Organize documentation in docs/ folder

675ccb3door Henk-Jan

Update feedback button to orange gradient matching next dive badge

2a17b4edoor Henk-Jan

Remove debug logging from feedback API

414910edoor Henk-Jan

Fix TypeScript error in feedback API payload

28d8a63door Henk-Jan

Fix feedback API to handle 204 No Content response

05a49cbdoor Henk-Jan

Improve feedback API error logging with direct fetch

e323b73door Henk-Jan

Export Directus client for feedback API route

09c0a29door Henk-Jan

Add feedback widget system

4424027door Henk-Jan

Fix build errors: move themeColor to viewport, remove experimental CSS

62383cedoor Henk-Jan

Optimize performance: images, JS, CSS for PageSpeed 99+

06ddb2adoor Henk-Jan

Fix deprecated packages and security vulnerabilities

d84dcdcdoor Henk-Jan

Fix ESLint configuration

646aacddoor Henk-Jan

Fix font preload warning and optimize console logs

65df3cedoor Henk-Jan

Add Lighthouse CI for automatic performance monitoring

facf8f3door Henk-Jan

Add package-lock.json with SWC dependencies

9c78c84door Henk-Jan

Optimize CSS for better performance

6254cf9door Henk-Jan

Enable Next.js image optimization for better performance

578998ddoor Henk-Jan

Add Vercel Analytics and Speed Insights

5592fb7door Henk-Jan

Add Vercel Speed Insights

67e3f13door Henk-Jan

Remove debug logging - stats working

bcbbb09door Henk-Jan

Add debug logging for participants

4e183f0door Henk-Jan

Count pending and confirmed registrations, exclude cancelled

3cf11bbdoor Henk-Jan

Fix: Correct Settings collection name to lowercase 'settings'

1720272door Henk-Jan

Clean up: Remove debug files and restore production settings

4143818door Henk-Jan

Add debug logging for stats

d13a75fdoor Henk-Jan

Add date debug endpoint

b9d0f17door Henk-Jan

Add production CMS hostname for images

6e9986bdoor Henk-Jan

Remove vercel.json - not needed for Vercel deployment

867040fdoor Henk-Jan

Fix vercel.json voor deployment

3a1e823door Henk-Jan

Over ons

f35fd15door Henk-Jan

Over ons

7255a61door Henk-Jan

aanmelden werkt

2b8e2d4door Henk-Jan

Duikkalender

5018521door Henk-Jan

27 oktober 2025

Deel 2

b468646door Henk-Jan

Basis staat

f243abbdoor Henk-Jan