Wat is er nieuw?

    Changelog

    Hier vind je alle belangrijke veranderingen aan Hart in Nood, netjes geordend per versie. Geschreven in mensentaal — geen geheime ontwikkelaars-jargon.

    Formaat gebaseerd op Keep a Changelog • versies volgen Semantic Versioning.

    Unreleased

    Waar we nu aan werken

    Dit komt er aan.

    Added

    Nieuw
    • Een homepagina met meeer beweging in (nieuwe features, nieuwe AED's, ...).

    v1.6.1

    Kaartstijlen + accuratere afstanden in noodmodus

    Kies je favoriete kaartstijl en zie in de noodmodus de werkelijke wandelafstand in plaats van de hemelsbrede.

    Added

    Nieuw
    • Keuze uit drie kaartstijlen (Carto Voyager, Carto Light en OpenStreetMap): instelbaar in je profiel én via een nieuwe knop linksboven op de kaart (tikken om door te wisselen). Je voorkeur wordt onthouden op je toestel, ook zonder aanmelden.

    Changed

    Aangepast
    • In het 'Kies een AED'-paneel tonen de top 3 nu de werkelijke wandelafstand (zelfde routeberekening die de wandeltijd al gebruikt) in plaats van de hemelsbrede afstand. Geen extra wachttijd: we hergebruiken de route die we toch al ophalen.

    v1.6.0

    Eigen Cloud + opgepoetste landingspagina's

    We zijn verhuisd naar onze eigen backend, hebben overal dezelfde knoppen gemaakt en honderden kleine details fijngeslepen.

    Added

    Nieuw
    • Verhuisd naar een eigen Lovable Cloud-instantie: alle gegevens, foto's, gebruikers en functies meegenomen zonder dat iemand iets merkte.
    • Nieuwe herbruikbare knoppen-component en banner-component zodat elke knop in de app er hetzelfde uitziet.
    • Banner met geanimeerde rand voor extra opvallende oproepen.
    • Twee componenten 'Check jouw gemeente' en 'Reanimatie-instructies nodig' die we nu op meerdere pagina's hergebruiken.
    • Vlot werkende Google-aanmelding én Google-registratie.
    • Tabblad 'Mijn gegevens' in je profiel waar je je wachtwoord kan wijzigen.
    • Badge die laat zien of je via e-mail of via Google bent ingelogd, met uitleg dat beide manieren werken na het instellen van een wachtwoord.
    • Hartslag-animatie als laadindicator op de dekkingskaart.
    • Alle gemeentepagina's hebben nu hun eigen canonieke URL (handig voor Google).

    Changed

    Aangepast
    • Knoppen-tekstjes overal gelijkgetrokken: 'Vind nu een AED', 'Open de kaart', 'Account aanmaken', 'Verbeter de kaart'.
    • Icoon 'MapPin' overal vervangen door 'HeartPulse' (past beter bij ons hart-thema).
    • Wachtwoord-reset gebruikt nu de moderne PKCE-flow en stuurt je direct naar het juiste formulier.
    • Navigatiepaneel onderweg naar een AED ziet er nu uit als het exploratie-paneel: header met afstand, fotocarousel en status-badges.
    • Reisduur op de kaart toont nu écht de wandeltijd, niet de autotijd.
    • Foto-upload gebruikt strengere beveiligingsregels (RLS) zodat elk bestand in jouw eigen mapje belandt.
    • Footer-links hebben meer ruimte zodat ze leesbaar blijven op kleine schermen.
    • Toast bij account-creatie vervangen door een centrale alert-melding boven het formulier.
    • Betrouwbaarheidsbadge zit nu linksboven, 24/7-badge rechtsboven met dezelfde stijl.

    Removed

    Verwijderd
    • Verwarrende 'laatst bevestigd'-datum in de AED-carousel van het 'Kies een AED'-paneel.
    • Dubbele canonieke URL-tags in de HTML (Google was er niet blij mee).

    Fixed

    Hersteld
    • Netlify-build die soms een hele oude versie toonde — komt door cache + ontbrekende env-vars, nu opgelost.
    • Bug waarbij de laadanimatie te vroeg verdween terwijl de AED's nog werden opgehaald.
    • Database-fout bij Google-registratie ('Database error saving new user').
    • RLS-violation bij foto-uploads voor AED's in de nieuwe backend.
    • 400-fouten bij het openen van een 'proposal' op de kaart (door synthetic IDs).
    • Sessie-token van de oude backend werd automatisch opgekuist in de browser.
    • Algemene voorwaarden worden niet meer opnieuw gevraagd na een wachtwoordwijziging.

    Security

    Veiligheid
    • Strengere storage-policies: elke gebruiker kan enkel in zijn eigen mapje uploaden.
    • Verbeterde sessie-verificatie vóór elke upload of profielwijziging.

    v1.5.0

    Zoekmachines, gemeentepagina's en marketing-video

    We hebben een berg landingspagina's gebouwd zodat Google ons makkelijker vindt, en zelfs een eigen reclamevideo gemaakt.

    Added

    Nieuw
    • Landingspagina /aed-locatie met semantische opbouw (H1, meta, structured data).
    • Aparte pagina per gemeente (`/aed/:slug`) met statistieken, AED-lijst en mini-kaart.
    • Overzichtspagina /aed-gemeenten met alle Belgische gemeenten.
    • Dekkingskaart /aed-kaart met een heatmap van AED-dichtheid.
    • Sitemap automatisch gegenereerd.
    • Prerender-script dat statische HTML maakt voor zoekmachines.
    • llms.txt zodat AI-zoekmachines weten waar ze content kunnen vinden.

    Changed

    Aangepast
    • Build-script gebruikt nu `tsx` in plaats van `bun` voor Netlify.
    • OG-tags en canonical worden per route correct geïnjecteerd.

    Fixed

    Hersteld
    • Prerender-script haalde postcodes uit de verkeerde tabel — opgelost.
    • Vite-plugin gedowngrade zodat de Netlify-build niet meer crasht.

    v1.4.0

    Reanimatiegids, privacy-blur en accounts

    Levens redden begint bij weten wat te doen. We voegden een stap-voor-stap reanimatiegids toe en bouwden privacy-tools voor foto's.

    Added

    Nieuw
    • Reanimatiegids (/reanimeer) met 7 stappen, audio op 110 BPM en grote duidelijke knoppen voor mobiel.
    • Privacy-blur: tik of veeg over gezichten in foto's om ze onherkenbaar te maken (via Canvas API).
    • Volledige authenticatie-flow: signup, signin, e-mailverificatie, wachtwoord vergeten en reset.
    • Algemene voorwaarden-dialog met scroll-to-bottom verplichting en SHA-256 hash-bewijs.
    • Profielpagina met dashboard, statistieken en gebruikersinstellingen.
    • Foto-management: max 3 foto's per AED, compressie naar JPEG 0.65, max 1600px.

    Changed

    Aangepast
    • Gebruikersrollen apart opgeslagen met security definer.
    • AED-data gequeried via view — nooit meer ruwe tabel-toegang voor anon.

    Security

    Veiligheid
    • RLS-policies op élke tabel, met SECURITY DEFINER-functies voor admin-checks.
    • HIBP-check op nieuwe wachtwoorden om lekgekochte wachtwoorden te blokkeren.
    • User UUID's verborgen voor andere gebruikers (alleen eigenaar of admin).

    v1.3.0

    Community-stemmen en moderatie

    De community kan nu zelf de kaart up-to-date houden via voorstellen, stemmen en rapporten.

    Added

    Nieuw
    • Voorstellen-systeem: gebruikers kunnen toevoegingen, wijzigingen en verwijderingen indienen.
    • Bidirectionele voortgangsbalk per voorstel (steunend vs. tegen).
    • Locatie herbevestigen — één tik om te bevestigen dat een AED er nog steeds is.
    • Rapporteer-knop (🚩) voor verkeerde of misbruikte data.
    • Admin-dashboard: ban gebruikers, override voorstellen, los rapporten op.
    • Mutual blocking: je kan niet bevestigen of rapporteren als er een verwijdervoorstel loopt.
    • Cooldown-systeem en GPS-radius-check per voorstel.
    • Confidence-score per AED: (bevestigingen - meldingen) / (totaal + 1).
    • Gamification met XP, paarse badges en stemgewicht op basis van reputatie.

    Changed

    Aangepast
    • Voorstellen renderen als synthetic AED-records op de kaart (dashed lines).

    v1.2.0

    Kaartmodi: Focus & Explore

    We splitsten de kaart in twee modi: snel een AED vinden, of de wereld ontdekken.

    Added

    Nieuw
    • Focus-mode: één tik en je krijgt de dichtstbijzijnde AED, zonder ruis.
    • Explore-mode: hele kaart met clusters, filters en details.
    • Cluster-badges in explore-mode (Marker Cluster).
    • Routing via OSRM voor wandel- en autoroutes.
    • Navigatie-preview met afstand, tijd en pedestrian routing.
    • Tutorial-dialog (6 stappen, fullscreen, mobile-first) voor nieuwe gebruikers.
    • Leaderboards: top gebruikers en top gemeenten met podium.

    Changed

    Aangepast
    • Hero-knop op homepagina vereenvoudigd tot één 'Open de AED-kaart'.

    v1.1.0

    Toevoegen, foto's en meertaligheid

    Gebruikers kunnen zelf AED's toevoegen, met foto's én in vier talen.

    Added

    Nieuw
    • Wizard om nieuwe AED's toe te voegen (locatie, details, foto's, review).
    • GPS-locatie en camera-toegang in de toevoeg-flow.
    • Vier talen: Nederlands, Frans, Duits en Engels (i18next).
    • PWA-support: 'Add to homescreen' op iOS en Android.
    • Feedback-widget die via Resend e-mails verstuurt.
    • Cron-jobs voor automatische expiry en location-validity checks.

    v1.0.0

    De allereerste versie 🚀

    De basis: een community-kaart van AED's in heel België, voor iedereen te raadplegen.

    Added

    Nieuw
    • Volledige database met PostGIS voor locatie-queries (radius-zoekopdrachten).
    • Experimentele database met enkele AED-locaties.
    • Kaart-implementatie met `react-leaflet` en CartoDB Positron-tegels.
    • Marker-systeem voor AED's.
    • Responsive layout met header, footer en mobile-friendly navigatie.
    • Design system met semantische tokens en het teal `--aed` kleurpalet.
    • Lichte modus, propere minimalistische stijl.

    Iets gemist of een idee?

    Heb je een suggestie of zie je iets dat niet klopt? Laat het ons weten via het feedbackformulier