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, ...).
    • Witty 404-pagina met AED-knipoog en snelle links naar de kaart, gemeentepagina's en reanimatiegids.

    Changed

    Aangepast
    • Gemeentepagina's tonen meteen titel, intro en knoppen; enkel de AED-lijst en statistieken laden in met skeletons.
    • Interne links naar de live kaart krijgen `rel="nofollow"` zodat zoekmachines hun crawl-budget aan de inhoudspagina's geven.

    Fixed

    Hersteld
    • Geen dubbele meta-description meer per pagina (Helmet vervangt nu de geprerenderde versie correct).
    • Canonical van /aed-gemeenten verwijst nu consistent naar de www-versie.
    • E-mailadres in de supporters-sectie is geobfusceerd zodat scrapers het niet meer kunnen oogsten.

    v1.6.2

    Supporters en slimme postcodesuggesties

    De homepage toont nu wie het project steunt, en bij het toevoegen van een AED wordt de postcode automatisch ingevuld op basis van de kaartlocatie.

    Added

    Nieuw
    • Supporters-sectie op de homepage met vermelding van de maker en mensen die het project steunen.
    • Bij het toevoegen van een AED wordt de postcode automatisch voorgesteld op basis van de gekozen kaartlocatie. Als de locatie dicht bij een postcodegrens ligt, verschijnen alternatieve postcodes als chips zodat je makkelijk de juiste kan kiezen.

    Fixed

    Hersteld
    • Content Security Policy laat nu Google Fonts toe (stylesheets en font-bestanden), waardoor blokkades in de console verdwijnen.

    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