Changeset 98fe58a in Klonkt


Ignore:
Timestamp:
06/27/2026 02:18:24 PM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
5f483e3
Parents:
eb5f978
Message:

docs(changelog): rewrite — accurate, user-facing, no contradictions

  • CHANGELOG.md — the [Unreleased] section described features later removed (Google login, favourites) and hub bits, plus file paths/code symbols. Rewritten to a clean, plain-language, user-facing summary of what Klonkt actually is now; dropped the stale federation-proto note. [1.0.0-beta.2] kept as released history, de-jargoned.
  • CHANGELOG.nl.md / CHANGELOG.de.md — re-translated from the clean English base.
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG.de.md

    reb5f978 r98fe58a  
    11# Änderungen — Klonkt
    22
    3 Alle nennenswerten Änderungen an Klonkt. Neueste oben.
     3Alle nennenswerten Änderungen an Klonkt. Das Neueste oben.
    44Versionen folgen [SemVer](https://semver.org/lang/de/) (`1.0.0-beta.N` während der Beta).
    5 
    6 > **Zwei getrennte Versionsnummern — nicht verwechseln:**
    7 > - **App-Version** (dieses Changelog + Footer, `package.json`) = kosmetisch; bei jeder Release erhöhen.
    8 > - **Föderations-Proto** (`KLONKT_PROTO` in `CircleFederation.js`, derzeit **2**) = bestimmt, ob
    9 >   Klonkt-Sites in ihrem jeweiligen **Cirkel** föderieren können (Teil der signierten Grundlage).
    10 >   Eine App-Versions-Erhöhung ändert das Proto **nicht** und bricht somit keine Cirkels. Erhöhe das
    11 >   Proto **nur** bei Föderations-/Sicherheitsänderungen und rolle es dann im **Gleichschritt**
    12 >   auf alle Instanzen aus (inkl. der Democirkels), damit sie weiterhin zusammenarbeiten.
    135
    146## [Unreleased]
    157
    168### Hinzugefügt
    17 - Die Suche durchsucht jetzt auch **Titel** (nach Titel, Künstler und Album), nicht nur Beiträge.
    18   Gefundene Titel sind direkt in der Ergebnisliste abspielbar, mit einem
    19   „im Beitrag →"-Link zum Beitrag/Album/zur Playlist, in dem der Titel vorkommt.
    20 - Die Beitragssuche nutzt jetzt **Präfix-Matching**: tippe „astr" und du findest „astra"
    21   (jedes Wort als Präfix, UND zwischen den Wörtern) — angenehmeres Suchen-während-du-tippst.
    22 - **Fediverse-Client**: folge Konten (WebFinger → signiertes Follow), eine
    23   **Home-Timeline** (`/tijdlijn`) von denen, denen du folgst, ein **Benachrichtigungs-Posteingang**
    24   (`/meldingen`) und ⭐-Like / 🔁-Boost / ↩-Antworten aus der Timeline heraus.
    25 - **Liken und Antworten über das Fediverse** bei einem Beitrag: Besucher geben nur
    26   ihren eigenen Server ein (`@du@server` oder `server.com`) und wickeln es auf ihrem
    27   eigenen Konto ab (`/authorize_interaction`).
    28 - **HTTP-Signaturen erzwungen** im Posteingang: unsignierte oder gefälschte
    29   Aktivitäten werden abgewiesen — keine gefälschten Reaktionen/Likes/Follower mehr.
    30 - **Blockieren/Defederieren** eines Kontos oder einer ganzen Domain (`/blokkeren`).
    31 - **Live-Theme-Vorschau** in Verwaltung → Site-Einstellungen: Akzent, Theme und Palette
    32   sofort sichtbar, bevor du speicherst.
     9- **Klonkt ist jetzt im Fediverse (ActivityPub).** Deine Seite ist ein echtes
     10  Fediverse-Konto: Menschen auf **Mastodon** — oder auf einem anderen **Klonkt** — können
     11  dir folgen, und deine Beiträge landen in ihren Feeds. Du kannst Konten folgen und ihre
     12  Beiträge in einem **News**-Feed lesen, **Benachrichtigungen** erhalten und Beiträge
     13  **liken, teilen und beantworten**. Eingehende Aktivität wird überprüft, sodass gefälschte
     14  Antworten, Likes und Follower abgewiesen werden.
     15- **Jede:r kann deine Beiträge aus dem Fediverse beantworten, liken oder teilen** —
     16  Besucher:innen interagieren von ihrem eigenen Konto aus (sie geben einfach ihren Server
     17  ein); ein Konto auf deiner Seite ist nicht nötig.
     18- **Circles**: Folge anderen **Klonkt**-Seiten und zeigt euch gegenseitig die öffentlichen
     19  Beiträge in eurem **Circle** — dezentral, ohne zentrale Plattform.
     20- **Sensible (NSFW) Beiträge** mit eigenem Warnhinweis-Text: auf der ganzen Seite
     21  verschwommen mit Klick zum Anzeigen, und im Fediverse als Inhaltswarnung dargestellt.
     22- **Blockiere** ein Konto oder eine ganze Domain, von der du lieber nichts hören möchtest.
     23- Die Suche findet jetzt auch **Tracks** (nach Titel, Künstler:in und Album), direkt aus den
     24  Ergebnissen abspielbar mit einem Link zum Beitrag, in dem sie vorkommen — und die
     25  Beitragssuche zeigt Treffer schon beim Tippen.
     26- **Live-Theme-Vorschau** in Verwaltung → Seiteneinstellungen: Akzent, Theme und Palette
     27  aktualisieren sich sofort, noch bevor du speicherst.
     28- Hochgeladene Bilder werden automatisch zu **WebP** optimiert, für schnellere Seiten.
     29- Ein großzügigeres **mobiles Schreiberlebnis**: Tippe, um einen ablenkungsfreien
     30  Vollbild-Editor zu öffnen, wobei die Formatierungsleiste über der Tastatur sichtbar bleibt.
    3331
    3432### Geändert
    35 - **Paletten überarbeitet** auf 8: die neutrale **Klonkt** (Weiß/Schwarz, goldener Akzent)
    36   ist jetzt der Standard, dazu 7 echte Farb-Themes (Forest, Ocean, Teal, Lilac,
    37   Sunset, Candy, Amber). Akzent-Auswahl aufgeräumt; der Klonkt-Hintergrund folgt
    38   jetzt der gewählten Akzentfarbe.
     33- **Paletten auf 8 überarbeitet**: das neutrale **Klonkt** (goldener Akzent) ist der neue
     34  Standard, dazu sieben Vollfarb-Themes — **Forest**, **Ocean**, **Teal**, **Lilac**,
     35  **Sunset**, **Candy** und **Amber**.
    3936
    4037### Entfernt
    41 - **Hub-Modus** entfernt — Klonkt ist von nun an **solo oder Cirkels**. Ein
    42   Kollektiv/Label erstellst du jetzt über **Cirkels** (föderierte einzelne Sites).
    43 - **Native Reaktionen + Google-Login** entfernt — Interaktion läuft jetzt vollständig
    44   über das **Fediverse**.
    45 - **Lokale Favoriten (♥)** entfernt — ersetzt durch das ⭐ Fediverse-Like.
     38- **Hub-Modus** — **Klonkt** ist jetzt **solo oder Circles**; ein Kollektiv oder Label baust
     39  du über **Circles** auf (föderierte, eigenständige Seiten).
     40- **Native Kommentare und Google-Login** — Antworten, Likes und Boosts laufen jetzt komplett
     41  über das Fediverse.
     42- **Lokale Favoriten (♥)** — ersetzt durch das ⭐ Fediverse-Like.
    4643
    4744### Behoben
    48 - Mini-Player: Springen + Scrollen zum spielenden Track funktioniert jetzt auch aus einem
    49   **Album oder einer Playlist** (die Track-ID fehlte in der Wiedergabe-Queue).
    50 - Der gerade spielende Track erhält ein **dauerhaftes Highlight** im Beitrag.
    51 - Leere **Album-/Playlist-Cover** behoben (eine fehlende Referenz in der
    52   WebP-Konvertierung) + sie fallen jetzt auf das Cover des ersten Tracks zurück.
    53 - Kaputtes **Avatar/Profilbild** in der Kopfzeile nach der WebP-Konvertierung: der Viewer-Avatar
    54   (und die Rolle) wird jetzt frisch aus der Datenbank gelesen, sodass sich eine alte Sitzung
    55   ohne erneutes Einloggen selbst wiederherstellt.
    56 
    57 ### Behoben (früher)
    58 - Inline-Content-Layout auf Touch vereinfacht: keine Formatierungs-Toolbar/Rand mehr inline
    59   (du bearbeitest ohnehin im Vollbild) — nur die Content-Vorschau + die Tippen-zum-Bearbeiten-Pille.
    60 - Konnte auf der Bearbeiten-Seite nicht scrollen: die Vollbild-Scroll-Sperre (overflow:hidden
    61   auf html/body) blieb hängen. Sperre entfernt — das Vollbild-Frame deckt die Seite
    62   bereits ab und auf Touch sind die Scrollbalken ausgeblendet.
    63 - Das Verlassen des Vollbilds scrollt jetzt an den Anfang des Contents (statt durchzuspringen
    64   zum Footer).
    65 - Der „Tippen zum Bearbeiten"-Hinweis auf Touch ist jetzt eine Pille, die sticky unten am
    66   Container klebt (über der Speichern-Leiste), statt unschön zentriert im Text.
    67 - Scrollbalken ausgeblendet auf Mobil & Tablet (Touch) — Scrollen funktioniert weiterhin,
    68   nur die Balken-UI ist weg (keine verwirrenden/doppelten Balken).
    69 - Vollbild-Editor: kein doppelter Scrollbalken mehr — im Vollbild scrollt ausschließlich
    70   das Textfeld; das Frame und die Seite (html+body) dahinter sind gesperrt.
    71 - Editor: das Bild springt nicht mehr beim Anklicken einer Formatierungsschaltfläche.
    72   Auf Mobil ist das Schreibfeld jetzt eine begrenzte Scroll-Box mit der Formatierungs-Toolbar
    73   STICKY oben: der Text scrollt darunter, die Toolbar bleibt immer im Blick, und
    74   das Caret-Scrollen, das mobiles Chrome erzwingt, bleibt innerhalb der Box, statt die ganze
    75   Seite springen zu lassen. (Plus: die Scrollposition wird rund um jeden
    76   Formatierungsbefehl beibehalten.) `interactive-widget=resizes-content` wieder entfernt — das ließ
    77   die Seite vor der Tastatur nach oben scrollen und brach die kb-open-Erkennung; die
    78   Aktionsleiste + Vollbild regeln die Tastatur über den Visual Viewport.
    79 - Post-Editor auf Mobil: die Speichern/Abbrechen-Leiste bleibt jetzt knapp über der
    80   Tastatur (sticky mit dynamischem Bottom-Offset = Maximum aus Tastatur- und
    81   Audioplayer-Höhe), statt dahinter zu fallen oder mitten im Bild zu schweben.
    82   Der Viewport skaliert mit der Tastatur mit (`interactive-widget=resizes-content`).
    83 - Mobile Tastatur vs. Layout (site-weit): sobald die Tastatur während des
    84   Tippens öffnet, blenden sich die festen Unterleisten (Bottom-Tab + Mini-Player) aus, sodass
    85   sie nicht mehr über dem Eingabefeld schweben oder es überlappen. Sie kehren zurück, sobald
    86   die Tastatur schließt. (Erkennung über visualViewport → `body.kb-open`.)
    87 - Beitrag bearbeiten auf Mobil öffnete nicht mehr sofort die Tastatur: der Titel erhielt
    88   nicht länger automatisch Fokus (`autofocus` entfernt). Auf dem Desktop fokussiert der Titel noch.
    89 - Beiträge schreiben auf Mobil: eine Formatierungsschaltfläche (fett/kursiv/…) stahl den Fokus aus dem
    90   Textfeld → die Auswahl ging verloren (fett konnte nicht mehr ausgeschaltet werden) und die
    91   Seite sprang nach unten. Die Toolbar hält den Fokus jetzt im Editor
    92   (mousedown-preventDefault + Fokus ohne Scroll), sodass das Umschalten funktioniert und es keinen
    93   Sprung mehr gibt. Toolbar-Taps sind auch schneller (touch-action: manipulation). Aktive
    94   Formatierung ist jetzt deutlich mit der Akzentfarbe gefüllt (und :hover klebt nicht mehr auf
    95   Touch), sodass sichtbar ist, ob z. B. fett an oder aus ist.
    96 
    97 ### Hinzugefügt
    98 - Bilder → **WebP**: neue Uploads (Beitragsbilder/Cover, Avatar, Site-Foto,
    99   Hub-Hero, Audio-Cover) werden automatisch in WebP umgewandelt (kleiner); bestehende
    100   Bilder wurden in einem Durchgang umgewandelt und alle Referenzen aktualisiert.
    101 - Bilder sind **schwerer zu speichern** (Rechtsklick-„Speichern" + Ziehen
    102   blockiert) — Reibung, kein wasserdichter Schutz.
    103 - Mini-Player (Desktop): Klick auf den spielenden Track → **springe zum Beitrag und scrolle
    104   zu diesem Track** (mit Highlight); funktioniert auch für site-weite Tracks über eine Lookup.
    105 - Textfelder (`<textarea>`) wachsen jetzt site-weit mit dem Inhalt mit, statt intern
    106   zu scrollen (Scrollen-im-Scrollen war verwirrend). Das Inline-Schreibfeld wächst
    107   ebenfalls einfach mit; Tippen auf Mobil/Tablet geht ohnehin ins Vollbild.
    108 - Auf **Mobil & Tablet** (Touch) verhält sich der Inhalt wie ein Beitrag: inline ist er
    109   **nicht tippbar** (Tap-Fläche mit „✎ Tippen zum Bearbeiten"-Pille). Ein Tipp öffnet eine
    110   **Vollbild-Schreib-„Seite"** — mit echter Zurück-Schaltflächen-Unterstützung, sodass das
    111   Browser-Zurück oder die **„✓ Fertig"-Schaltfläche** sie schließt und du wieder im Formular
    112   stehst (alle Felder intakt), woraufhin du alles zusammen mit der normalen Speichern-Schaltfläche speicherst.
    113 - Schreibfenster kann auf **Vollbild** (Schaltfläche in der Editor-Toolbar, oder Escape zum
    114   Zurückgehen) — angenehm für ablenkungsfreies Schreiben auf Mobil. Die Formatierungs-Toolbar
    115   bleibt dabei immer oben im Blick, auch wenn die mobile Tastatur öffnet
    116   (Frame folgt dem Visual Viewport).
    117 - Verwalter kann sein **Google-Konto verknüpfen** (Konto → Mit Google anmelden) und
    118   sich danach auch mit Google anmelden. Sicher: Verknüpfen ist nur möglich, während du mit
    119   Passwort angemeldet bist, und der Google-Login gewährt nur Verwaltung, wenn das exakte
    120   verknüpfte Google-Konto (`google_sub`) übereinstimmt. Entkoppeln ist möglich, solange es ein
    121   Passwort gibt.
    122 - Beiträge liken / favorisieren: angemeldete Benutzer können einen Beitrag mit einer ♥-Schaltfläche liken
    123   (zeigt die Anzahl der Likes). Deine gelikten Beiträge stehen auf der neuen **Favoriten**-Seite
    124   (`/favorieten`, Link im Kontomenü). Nicht angemeldet → die Schaltfläche führt zum Login.
    125 
    126 ### Geändert
    127 - Beitrags-Navigation (Newer/Older) zeigt jetzt ein 📌, wenn der verlinkte Beitrag angepinnt ist.
    128 - Die Newer/Older-Beitragsnavigation steht jetzt auch auf der Fan-Gate (Login-Wall eines
    129   fan-only-Beitrags), sodass ein Besucher nicht festhängt, sondern weiterblättern kann.
    130   Navigation in ein gemeinsames Partial verschoben (`partials/post-nav.ejs`).
    131 - Login aufgeteilt: die öffentliche Login-Seite (`/auth/login`) zeigt für Besucher jetzt
    132   **nur** Google-Login (Zuhörer/Fans). Der Verwalter-Login (Benutzername +
    133   Passwort) ist verborgen auf `/auth/admin` (nirgends verlinkt).
    134 - Beitrags-Navigation (Newer/Older) behält jetzt auf jedem Beitrag dieselbe Zwei-Karten-Struktur:
    135   fehlt ein neuerer/älterer Beitrag, dann steht dort ein dezenter ausgegrauter
    136   Platzhalter („Neuester Beitrag" / „Ältester Beitrag") statt einer leeren Stelle.
    137 - Beim Öffnen eines verwandten/nächsten Beitrags springst du jetzt an den Anfang der
    138   Seite (vorher: du bliebst an der alten Scrollposition hängen).
     45- Der Mini-Player springt und scrollt zum gerade laufenden Track — auch aus einem Album oder
     46  einer Playlist — und hält ihn hervorgehoben.
     47- Leere Album-/Playlist-Cover greifen jetzt auf das Cover des ersten Tracks zurück.
     48- Ein Profilfoto, das nach dem Wechsel zu **WebP** im Header kaputtging, repariert sich nun
     49  selbst.
     50- Viele Korrekturen am **mobilen Beitrags-Editor**: zuverlässiges Scrollen, eine
     51  Formatierungsleiste, die an Ort und Stelle bleibt, keine Seitensprünge beim Tippen auf eine
     52  Schaltfläche, und eine Speicherleiste, die direkt über der Tastatur sitzt.
    13953
    14054## [1.0.0-beta.2] — 2026-06-19
    14155
    142 Erste Release, bei der wir die Version aktiv pflegen (sichtbar im Footer →
    143 klicke darauf für diese Seite). Föderations-Proto: **2** (unverändert).
     56Erste Veröffentlichung, bei der wir die Version aktiv mitverfolgen (im Fußbereich angezeigt —
     57klick darauf für diese Seite).
    14458
    14559### Hinzugefügt
    146 - Release-Tracking: die Versionsnummer im Footer verlinkt auf diese Änderungen-Seite.
    147 - Acht Premium-Funktionen (Patreon-gated): Newsletter/Mailingliste, Download-für-E-Mail,
    148   Release-Planung + fan-only Previews, EPK/Pressekit, Pro-Statistiken, Link-in-Bio +
    149   Klick-Statistiken, einbettbarer Player und Show-Agenda + Notify-Me.
    150 - Newsletter-Anmeldefeld im Footer (an/aus in Verwaltung → Einstellungen).
    151 - SMTP-Einstellungen einstellbar in Verwaltung → Einstellungen (kein `.env`-Edit mehr nötig),
    152   mit Testmail-Schaltfläche.
     60- Versionsverfolgung: Die Versionsnummer im Fußbereich verlinkt auf diese Changelog-Seite.
     61- Acht Premium-Funktionen (über **Patreon** freigeschaltet): Newsletter/Mailingliste,
     62  Download-für-E-Mail, Veröffentlichungsplanung + Vorschauen nur für Fans, **EPK**/Pressekit,
     63  Profi-Statistiken, Link-in-Bio + Klickstatistiken, einbettbarer Player sowie Konzertkalender
     64  + Benachrichtigung.
     65- Newsletter-Anmeldefeld im Fußbereich (ein/aus in Verwaltung → Einstellungen).
     66- **SMTP**-Einstellungen in Verwaltung → Einstellungen konfigurierbar (keine Bearbeitung der
     67  Konfigurationsdatei mehr nötig), mit einer Test-Mail-Schaltfläche.
    15368
    15469### Geändert
    155 - Verwaltung → Einstellungen: Hub- und Cirkel-Konfiguration stehen jetzt direkt unter der Modus-Karte;
    156   Formulare aufgeräumter (gestapelte Labels, full-width Inputs).
    157 - EPK/Pressekit zeigt die Top 10 der meistgehörten Titel.
    158 - Aufgeräumtere 404-Seite (mobilfreundlich) und deutlichere Login-Fehlermeldungen.
     70- Aufgeräumtere Einstellungsformulare (gestapelte Beschriftungen, Eingabefelder in voller
     71  Breite).
     72- Das **EPK**/Pressekit zeigt die 10 meistgehörten Tracks.
     73- Schönere 404-Seite (mobilfreundlich) und klarere Login-Fehlermeldungen.
    15974
    16075### Behoben
    161 - Site-weiter Audioplayer erhielt keine Tracks (falsche Spalte in der Query).
    162 - Schaltflächentext wurde beim Hover unlesbar (gleiche Farbe wie die Schaltfläche).
    163 - Datumsauswahl folgt jetzt dem Theme.
    164 - htmx-Navigation aktualisiert die Adressleiste wieder; keine doppelte Kopfzeile bei zurück/vorwärts.
     76- Der seitenweite Audioplayer lud keine Tracks.
     77- Schaltflächentext wurde beim Überfahren unlesbar.
     78- Datumsauswahlen folgen jetzt dem Theme.
     79- Die Vor-/Zurück-Navigation zeigt keinen doppelten Header mehr.
  • CHANGELOG.md

    reb5f978 r98fe58a  
    44Versions follow [SemVer](https://semver.org/) (`1.0.0-beta.N` during the beta).
    55
    6 > **Two separate version numbers — don't confuse them:**
    7 > - **App version** (this changelog + footer, `package.json`) = cosmetic; bump every release.
    8 > - **Federation proto** (`KLONKT_PROTO` in `CircleFederation.js`, now **2**) = determines whether
    9 >   Klonkt sites can federate into each other's **circle** (it's part of the signed basis).
    10 >   An app-version bump does **not** change the proto and therefore doesn't break circles. Bump the
    11 >   proto **only** for federation/security changes, and then roll it out in **lockstep**
    12 >   to all instances (including the democircles) so they keep working together.
    13 
    146## [Unreleased]
    157
    168### Added
    17 - Search now also covers **tracks** (by title, artist and album), not just posts.
    18   Found tracks are directly playable in the results list, with an
    19   "in post →" link to the post/album/playlist the track appears in.
    20 - Posts search now uses **prefix matching**: type "astr" and you'll find "astra"
    21   (each word as a prefix, AND between the words) — nicer search-as-you-type.
    22 - **Fediverse client**: follow accounts (WebFinger → signed Follow), a
    23   **home timeline** (`/tijdlijn`) of who you follow, a **notifications inbox**
    24   (`/meldingen`), and ⭐-like / 🔁-boost / ↩-reply from the timeline.
    25 - **Like and reply via the fediverse** on a post: visitors only fill in
    26   their own server (`@you@server` or `server.com`) and handle it on their
    27   own account (`/authorize_interaction`).
    28 - **HTTP signatures enforced** on the inbox: unsigned or forged
    29   activities are rejected — no more fake replies/likes/followers.
    30 - **Block/defederate** an account or an entire domain (`/blokkeren`).
    31 - **Live theme preview** in Admin → site settings: accent, theme and palette
    32   visible immediately before you save.
     9- **Klonkt is now on the fediverse (ActivityPub).** Your site is a real fediverse
     10  account: people on Mastodon — or another Klonkt — can follow you, and your posts
     11  reach their feeds. You can follow accounts and read their posts in a **News** feed,
     12  get **notifications**, and **like, boost and reply** to posts. Incoming activity is
     13  verified, so fake replies, likes and followers are rejected.
     14- **Anyone can reply, like or boost your posts from the fediverse** — visitors interact
     15  from their own account (they just enter their server); no account on your site needed.
     16- **Circles**: follow other Klonkt sites and show each other's public posts in your
     17  Circle — decentralised, with no central platform.
     18- **Sensitive (NSFW) posts** with your own content-warning text: blurred with
     19  click-to-reveal across the site, and shown as a content warning on the fediverse.
     20- **Block** an account or an entire domain you'd rather not hear from.
     21- Search now also finds **tracks** (by title, artist and album), playable straight from
     22  the results with a link to the post they appear in — and post search matches as you type.
     23- **Live theme preview** in Admin → site settings: accent, theme and palette update
     24  instantly, before you save.
     25- Uploaded images are automatically optimised to **WebP** for faster pages.
     26- A roomier **mobile writing experience**: tap to open a distraction-free fullscreen
     27  editor, with the formatting toolbar staying in view above the keyboard.
    3328
    3429### Changed
    35 - **Palettes revised** to 8: the neutral **Klonkt** (white/black, gold accent)
    36   is now the default, plus 7 real-color themes (Forest, Ocean, Teal, Lilac,
    37   Sunset, Candy, Amber). Accent choice cleaned up; the Klonkt background now
    38   follows the chosen accent color.
     30- **Palettes revised to 8**: the neutral **Klonkt** (gold accent) is the new default,
     31  plus seven full-colour themes — Forest, Ocean, Teal, Lilac, Sunset, Candy and Amber.
    3932
    4033### Removed
    41 - **Hub mode** removed — Klonkt is now **solo or circles**. You now create a
    42   collective/label via **Circles** (federated standalone sites).
    43 - **Native comments + Google login** removed — interaction now runs entirely
    44   via the **fediverse**.
    45 - **Local favorites (♥)** removed — replaced by the ⭐ fediverse like.
     34- **Hub mode** — Klonkt is now **solo or Circles**; you build a collective or label
     35  through **Circles** (federated, standalone sites).
     36- **Native comments and Google login** — replies, likes and boosts now run entirely
     37  through the fediverse.
     38- **Local favourites (♥)** — replaced by the ⭐ fediverse like.
    4639
    4740### Fixed
    48 - Mini player: jump + scroll to the playing track now also works from an
    49   **album or playlist** (the track id wasn't in the playback queue).
    50 - The currently playing track now gets a **persistent highlight** in the post.
    51 - Empty **album/playlist covers** fixed (a missed reference in the
    52   WebP conversion) + they now fall back to the cover of the first track.
    53 - Broken **avatar/profile photo** in the header after the WebP conversion: the viewer avatar
    54   (and role) is now read fresh from the database, so an old session repairs
    55   itself without logging in again.
    56 
    57 ### Fixed (earlier)
    58 - Inline content layout on touch simplified: no formatting toolbar/border inline
    59   anymore (you edit fullscreen anyway) — only the content preview + the tap-to-edit pill.
    60 - Couldn't scroll on the edit page: the fullscreen scroll lock (overflow:hidden
    61   on html/body) stayed stuck. Lock removed — the fullscreen frame already covers the page
    62   and on touch the scrollbars are hidden.
    63 - Leaving fullscreen now scrolls to the top of the content (instead of jumping
    64   down to the footer).
    65 - The "tap to edit" hint on touch is now a pill that sticks to the bottom of the
    66   container (above the Save bar) instead of being ugly-centered in the text.
    67 - Scrollbars hidden on mobile & tablet (touch) — scrolling still works,
    68   only the bar UI is gone (no confusing/duplicate bars).
    69 - Fullscreen editor: no more double scrollbar — in fullscreen only the
    70   text field scrolls; the frame and the page (html+body) behind it are locked.
    71 - Editor: the view no longer jumps when clicking a formatting button.
    72   On mobile the writing field is now a bounded scroll box with the formatting toolbar
    73   STICKY at the top: the text scrolls underneath it, the toolbar always stays in view, and
    74   the caret scroll that mobile Chrome forces stays within the box instead of making the whole
    75   page jump. (Plus: scroll position is held around each
    76   formatting command.) `interactive-widget=resizes-content` removed again — it made
    77   the page scroll up for the keyboard and broke the kb-open detection; the
    78   action bar + fullscreen handle the keyboard via the visual viewport.
    79 - Post editor on mobile: the Save/Cancel bar now stays just above the
    80   keyboard (sticky with a dynamic bottom offset = max of keyboard and
    81   audio-player height), instead of falling behind it or floating in the middle of the screen.
    82   Viewport scales with the keyboard (`interactive-widget=resizes-content`).
    83 - Mobile keyboard vs. layout (site-wide): as soon as the keyboard opens while
    84   typing, the fixed bottom bars (bottom-tab + mini player) hide themselves, so
    85   they no longer float over or overlap the input field. They come back as soon as
    86   the keyboard closes. (Detection via visualViewport → `body.kb-open`.)
    87 - Editing a post on mobile no longer immediately opened the keyboard: the title no longer
    88   gets automatic focus (`autofocus` removed). On desktop the title still focuses.
    89 - Writing posts on mobile: a formatting button (bold/italic/…) stole the focus from the
    90   text field → the selection was lost (bold couldn't be turned off anymore) and the
    91   page jumped down. The toolbar now keeps the focus in the editor
    92   (mousedown-preventDefault + focus without scroll), so toggling works and there's no
    93   more jump. Toolbar taps are also faster (touch-action: manipulation). Active
    94   formatting is now clearly filled with the accent color (and :hover no longer sticks on
    95   touch), so it's visible whether e.g. bold is on or off.
    96 
    97 ### Added
    98 - Images → **WebP**: new uploads (post images/cover, avatar, site photo,
    99   hub hero, audio cover) are automatically converted to WebP (smaller); existing
    100   images were converted in one go and all references updated.
    101 - Images are **harder to save** (right-click "save" + dragging
    102   blocked) — friction, not watertight protection.
    103 - Mini player (desktop): click the playing track → **jump to the post and scroll
    104   to that track** (with highlight); also works for site-wide tracks via a lookup.
    105 - Text fields (`<textarea>`) now grow site-wide with the content instead of scrolling
    106   internally (scroll-within-scroll was confusing). The inline writing field also grows
    107   along naturally; typing on mobile/tablet goes fullscreen anyway.
    108 - On **mobile & tablet** (touch) the content behaves like a post: inline it is
    109   **not typable** (tap area with a "✎ Tap to edit" pill). One tap opens a
    110   **fullscreen writing "page"** — with real back-button support, so the
    111   browser back or the **"✓ Done" button** closes it and you're back in the form
    112   (all fields intact), after which you save everything together with the normal Save button.
    113 - The writing window can go **fullscreen** (button in the editor toolbar, or Escape to
    114   go back) — nice for distraction-free writing on mobile. The formatting toolbar
    115   always stays at the top of the view, even when the mobile keyboard opens
    116   (frame follows the visual viewport).
    117 - The admin can link their **Google account** (Account → Sign in with Google) and
    118   then also log in with Google. Safe: linking is only possible while you're logged in
    119   with a password, and Google login only grants admin access if the exact
    120   linked Google account (`google_sub`) matches. Unlinking is possible as long as there's a
    121   password.
    122 - Liking / favoriting posts: logged-in users can like a post with a ♥ button
    123   (shows the number of likes). Your liked posts are on the new **Favorites** page
    124   (`/favorieten`, link in the account menu). Not logged in → the button leads to the login.
    125 
    126 ### Changed
    127 - Post navigation (Newer/Older) now shows a 📌 if the linked post is pinned.
    128 - The Newer/Older post navigation now also appears on the fan gate (login wall of a
    129   fan-only post), so a visitor doesn't get stuck but can keep browsing.
    130   Nav moved to a shared partial (`partials/post-nav.ejs`).
    131 - Login split: the public login page (`/auth/login`) now shows visitors
    132   **only** Google login (listeners/fans). The admin login (username +
    133   password) is hidden at `/auth/admin` (not linked anywhere).
    134 - Post navigation (Newer/Older) now keeps the same two-card structure on every post:
    135   if a newer/older post is missing, there's a subtle grayed-out
    136   placeholder ("Newest post" / "Oldest post") instead of an empty space.
    137 - When opening a related/next post you now jump to the top of the
    138   page (was: you stayed stuck at the old scroll position).
     41- The mini-player jumps and scrolls to the track that's playing — also from an album or
     42  playlist — and keeps it highlighted.
     43- Empty album/playlist covers now fall back to the first track's cover.
     44- A profile photo that broke in the header after the WebP switch now repairs itself.
     45- Many **mobile post-editor** fixes: reliable scrolling, a formatting toolbar that stays
     46  put, no page jumps when you tap a button, and a Save bar that sits just above the keyboard.
    13947
    14048## [1.0.0-beta.2] — 2026-06-19
    14149
    142 First release where we actively track the version (visible in the footer →
    143 click it for this page). Federation proto: **2** (unchanged).
     50First release where we actively track the version (shown in the footer — click it for
     51this page).
    14452
    14553### Added
     
    14957  click stats, embeddable player, and show agenda + notify-me.
    15058- Newsletter signup field in the footer (on/off in Admin → Settings).
    151 - SMTP settings configurable in Admin → Settings (no more `.env` edit needed),
    152   with a test-mail button.
     59- SMTP settings configurable in Admin → Settings (no more config-file edit needed), with
     60  a test-mail button.
    15361
    15462### Changed
    155 - Admin → Settings: Hub and Circle config now sit directly under the Mode card;
    156   forms tidier (stacked labels, full-width inputs).
     63- Tidier settings forms (stacked labels, full-width inputs).
    15764- EPK/press kit shows the top 10 most-listened tracks.
    15865- Nicer 404 page (mobile-friendly) and clearer login error messages.
    15966
    16067### Fixed
    161 - The site-wide audio player got no tracks (wrong column in the query).
    162 - Button text became unreadable on hover (same color as the button).
     68- The site-wide audio player wasn't loading any tracks.
     69- Button text became unreadable on hover.
    16370- Date pickers now follow the theme.
    164 - htmx navigation updates the address bar again; no double header on back/forward.
     71- Back/forward navigation no longer shows a doubled header.
  • CHANGELOG.nl.md

    reb5f978 r98fe58a  
    44Versies volgen [SemVer](https://semver.org/lang/nl/) (`1.0.0-beta.N` tijdens de beta).
    55
    6 > **Twee losse versienummers — niet verwarren:**
    7 > - **App-versie** (deze changelog + footer, `package.json`) = cosmetisch; bump elke release.
    8 > - **Federatie-proto** (`KLONKT_PROTO` in `CircleFederation.js`, nu **2**) = bepaalt of
    9 >   Klonkt-sites in elkaars **cirkel** kunnen federeren (zit in de getekende grondslag).
    10 >   Een app-versie-bump verandert de proto **niet** en breekt cirkels dus niet. Bump de
    11 >   proto **alleen** bij federatie-/security-wijzigingen, en rol die dan in **lockstep**
    12 >   uit naar álle instances (incl. de democirkels) zodat ze blijven samenwerken.
    13 
    146## [Unreleased]
    157
    168### Toegevoegd
    17 - Zoeken doorzoekt nu ook **nummers** (op titel, artiest én album), niet alleen posts.
    18   Gevonden nummers zijn direct afspeelbaar in de resultatenlijst, met een
    19   "in post →"-link naar de post/album/playlist waarin het nummer voorkomt.
    20 - Posts-zoek gebruikt nu **prefix-matching**: typ "astr" en je vindt "astra"
    21   (elk woord als prefix, AND tussen de woorden) — fijner zoeken-terwijl-je-typt.
    22 - **Fediverse-client**: volg accounts (WebFinger → ondertekende Follow), een
    23   **home-tijdlijn** (`/tijdlijn`) van wie je volgt, een **meldingen-inbox**
    24   (`/meldingen`), en ⭐-like / 🔁-boost / ↩-reageren vanuit de tijdlijn.
    25 - **Liken én reageren via de fediverse** op een post: bezoekers vullen alleen
    26   hun eigen server in (`@jij@server` of `server.com`) en handelen het af op hun
    27   eigen account (`/authorize_interaction`).
    28 - **HTTP-handtekeningen afgedwongen** op de inbox: ongetekende of vervalste
    29   activiteiten worden geweigerd — geen nep-reacties/likes/volgers meer.
    30 - **Blokkeren/defedereren** van een account of een heel domein (`/blokkeren`).
    31 - **Live thema-preview** in Beheer → site-instellingen: accent, thema en palet
    32   meteen zichtbaar vóór je opslaat.
     9- **Klonkt zit nu op de fediverse (ActivityPub).** Je site is een echt
     10  fediverse-account: mensen op **Mastodon** — of een andere **Klonkt** — kunnen je
     11  volgen, en je berichten komen in hun feed. Je kunt zelf accounts volgen en hun
     12  berichten lezen in een **News**-feed, **notificaties** krijgen, en berichten **liken,
     13  boosten en erop reageren**. Inkomende activiteit wordt geverifieerd, dus nep-reacties,
     14  -likes en -volgers worden geweigerd.
     15- **Iedereen kan vanaf de fediverse op je berichten reageren, ze liken of boosten** —
     16  bezoekers reageren vanuit hun eigen account (ze vullen alleen hun server in); een
     17  account op jouw site is niet nodig.
     18- **Circles**: volg andere Klonkt-sites en toon elkaars openbare berichten in je
     19  Circle — decentraal, zonder centraal platform.
     20- **Gevoelige (NSFW) berichten** met je eigen waarschuwingstekst: vervaagd met
     21  klik-om-te-tonen op de hele site, en getoond als inhoudswaarschuwing op de fediverse.
     22- **Blokkeer** een account of een heel domein waar je liever niets van hoort.
     23- Zoeken vindt nu ook **tracks** (op titel, artiest en album), direct af te spelen vanuit
     24  de resultaten met een link naar het bericht waarin ze voorkomen — en bij berichten zoek
     25  je al terwijl je typt.
     26- **Live thema-voorbeeld** in Beheer → site-instellingen: accent, thema en palet worden
     27  direct bijgewerkt, nog vóór je opslaat.
     28- Geüploade afbeeldingen worden automatisch geoptimaliseerd naar **WebP** voor snellere
     29  pagina's.
     30- Een ruimere **schrijfervaring op mobiel**: tik om een afleidingsvrije, schermvullende
     31  editor te openen, met de opmaakbalk die boven het toetsenbord in beeld blijft.
    3332
    3433### Gewijzigd
    35 - **Paletten herzien** naar 8: de neutrale **Klonkt** (wit/zwart, gouden accent)
    36   is nu de standaard, plus 7 echte-kleur thema's (Forest, Ocean, Teal, Lilac,
    37   Sunset, Candy, Amber). Accent-keuze opgeschoond; de Klonkt-achtergrond volgt
    38   nu de gekozen accentkleur.
     34- **Paletten teruggebracht naar 8**: het neutrale **Klonkt** (goud accent) is de nieuwe
     35  standaard, plus zeven volkleurige thema's — **Forest**, **Ocean**, **Teal**, **Lilac**,
     36  **Sunset**, **Candy** en **Amber**.
    3937
    4038### Verwijderd
    41 - **Hub-modus** verwijderd — Klonkt is voortaan **solo of cirkels**. Een
    42   collectief/label maak je nu via **Cirkels** (gefedereerde losse sites).
    43 - **Native reacties + Google-login** verwijderd — interactie loopt nu volledig
    44   via de **fediverse**.
    45 - **Lokale favorieten (♥)** verwijderd — vervangen door de ⭐ fediverse-like.
     39- **Hub-modus** — Klonkt is nu **solo of Circles**; je bouwt een collectief of label
     40  via **Circles** (gefedereerde, zelfstandige sites).
     41- **Eigen reacties en Google-login** — reageren, liken en boosten loopt nu volledig
     42  via de fediverse.
     43- **Lokale favorieten (♥)** — vervangen door de ⭐ fediverse-like.
    4644
    4745### Opgelost
    48 - Mini-speler: spring + scroll naar de spelende track werkt nu ook vanuit een
    49   **album of playlist** (de track-id zat niet in de afspeel-queue).
    50 - De track die nu speelt krijgt een **blijvende highlight** in de post.
    51 - Lege **album/playlist-covers** hersteld (een gemiste verwijzing in de
    52   WebP-conversie) + ze vallen nu terug op de cover van de eerste track.
    53 - Kapotte **avatar/profielfoto** in de kop na de WebP-conversie: de viewer-avatar
    54   (en rol) wordt nu vers uit de database gelezen, dus een oude sessie herstelt
    55   zichzelf zonder opnieuw inloggen.
    56 
    57 ### Opgelost (eerder)
    58 - Inline content-layout op touch versimpeld: geen opmaak-toolbar/rand meer inline
    59   (je bewerkt toch fullscreen) — alleen de content-preview + de tik-om-te-bewerken-pill.
    60 - Kon niet scrollen op de bewerk-pagina: de fullscreen scroll-lock (overflow:hidden
    61   op html/body) bleef hangen. Lock verwijderd — het fullscreen-frame dekt de pagina
    62   al af en op touch zijn de scrollbalken verborgen.
    63 - Fullscreen verlaten scrolt nu naar de top van de content (i.p.v. door te springen
    64   naar de footer).
    65 - "Tik om te bewerken"-aanwijzing op touch is nu een pill die sticky onderaan de
    66   container plakt (boven de Opslaan-balk) i.p.v. lelijk gecentreerd in de tekst.
    67 - Scrollbalken verborgen op mobiel & tablet (touch) — scrollen blijft werken,
    68   alleen de balk-UI is weg (geen verwarrende/dubbele balken).
    69 - Fullscreen-editor: geen dubbele scrollbalk meer — in fullscreen scrollt alléén
    70   het tekstveld; het frame en de pagina (html+body) erachter zijn vergrendeld.
    71 - Editor: het beeld verspringt niet meer bij het aanklikken van een opmaakknop.
    72   Op mobiel is het schrijfveld nu een begrensde scroll-box met de opmaak-toolbar
    73   STICKY bovenin: de tekst scrollt eronder, de toolbar blijft altijd in beeld, en
    74   de caret-scroll die mobiel Chrome forceert blijft binnen de box i.p.v. de hele
    75   pagina te laten verspringen. (Plus: scrollpositie wordt vastgehouden rond elk
    76   opmaak-commando.) `interactive-widget=resizes-content` weer verwijderd — dat liet
    77   de pagina omhoog scrollen voor het toetsenbord en brak de kb-open-detectie; de
    78   actiebalk + fullscreen regelen het toetsenbord via de visual viewport.
    79 - Post-editor op mobiel: de Opslaan/Annuleren-balk blijft nu net bóven het
    80   toetsenbord (sticky met dynamische bottom-offset = max van toetsenbord- en
    81   audiospeler-hoogte), i.p.v. erachter te vallen of midden in beeld te zweven.
    82   Viewport schaalt mee met het toetsenbord (`interactive-widget=resizes-content`).
    83 - Mobiel toetsenbord vs. layout (site-breed): zodra het toetsenbord opent tijdens
    84   het typen, verbergen de vaste onderbalken (bottom-tab + mini-speler) zich, zodat
    85   ze niet meer over het invoerveld zweven of het overlappen. Ze komen terug zodra
    86   het toetsenbord sluit. (Detectie via visualViewport → `body.kb-open`.)
    87 - Post bewerken op mobiel opende niet meer meteen het toetsenbord: de titel kreeg
    88   niet langer automatisch focus (`autofocus` weg). Op desktop focust de titel nog wel.
    89 - Posts schrijven op mobiel: een opmaakknop (vet/cursief/…) stal de focus uit het
    90   tekstveld → de selectie ging verloren (vet kon niet meer uitgezet worden) en de
    91   pagina sprong naar beneden. De toolbar houdt de focus nu in de editor
    92   (mousedown-preventDefault + focus zonder scroll), dus toggelen werkt en er is geen
    93   sprong meer. Toolbar-taps zijn ook sneller (touch-action: manipulation). Actieve
    94   opmaak is nu duidelijk gevuld met de accentkleur (en :hover plakt niet meer op
    95   touch), zodat zichtbaar is of bv. vet aan of uit staat.
    96 
    97 ### Toegevoegd
    98 - Afbeeldingen → **WebP**: nieuwe uploads (post-afbeeldingen/cover, avatar, site-foto,
    99   hub-hero, audio-cover) worden automatisch naar WebP omgezet (kleiner); bestaande
    100   afbeeldingen zijn in één keer omgezet en alle verwijzingen bijgewerkt.
    101 - Afbeeldingen zijn **lastiger op te slaan** (rechtsklik-"opslaan" + slepen
    102   geblokkeerd) — frictie, geen waterdichte beveiliging.
    103 - Mini-speler (desktop): klik op de spelende track → **spring naar de post én scroll
    104   naar die track** (met highlight); werkt ook voor site-brede tracks via een lookup.
    105 - Tekstvelden (`<textarea>`) groeien nu site-breed mee met de inhoud i.p.v. intern
    106   te scrollen (scroll-binnen-scroll was verwarrend). Het inline schrijfveld groeit
    107   ook gewoon mee; typen op mobiel/tablet gaat sowieso fullscreen.
    108 - Op **mobiel & tablet** (touch) gedraagt de inhoud zich als een post: inline is het
    109   **niet typbaar** (tap-vlak met "✎ Tik om te bewerken"-pill). Eén tik opent een
    110   **fullscreen schrijf-"pagina"** — met echte back-knop-ondersteuning, dus de
    111   browser-back of de **"✓ Klaar"-knop** sluit 'm en je staat terug in het formulier
    112   (alle velden intact), waarna je alles samen opslaat met de gewone Opslaan-knop.
    113 - Schrijfvenster kan op **volledig scherm** (knop in de editor-toolbar, of Escape om
    114   terug te gaan) — fijn voor afleidingsvrij schrijven op mobiel. De opmaak-toolbar
    115   blijft daarbij altijd bovenaan in beeld, ook als het mobiele toetsenbord opent
    116   (frame volgt de visual viewport).
    117 - Beheerder kan z'n **Google-account koppelen** (Account → Inloggen met Google) en
    118   daarna óók met Google inloggen. Veilig: koppelen kan alleen terwijl je met
    119   wachtwoord bent ingelogd, en Google-login geeft alleen beheer als de exacte
    120   gekoppelde Google-account (`google_sub`) matcht. Ontkoppelen kan zolang er een
    121   wachtwoord is.
    122 - Posts liken / favorieten: ingelogde gebruikers kunnen een post liken met een ♥-knop
    123   (toont het aantal likes). Je gelikete posts staan op de nieuwe **Favorieten**-pagina
    124   (`/favorieten`, link in het accountmenu). Niet-ingelogd → de knop leidt naar de login.
    125 
    126 ### Gewijzigd
    127 - Post-navigatie (Newer/Older) toont nu een 📌 als de gelinkte post vastgepind is.
    128 - De Newer/Older-postnavigatie staat nu óók op de fan-gate (login-wall van een
    129   fan-only post), zodat een bezoeker niet vastloopt maar verder kan bladeren.
    130   Nav verhuisd naar een gedeeld partial (`partials/post-nav.ejs`).
    131 - Login gesplitst: de publieke loginpagina (`/auth/login`) toont voor bezoekers nu
    132   **alleen** Google-login (luisteraars/fans). De beheerders-login (gebruikersnaam +
    133   wachtwoord) staat verborgen op `/auth/admin` (nergens gelinkt).
    134 - Post-navigatie (Newer/Older) houdt nu op elke post dezelfde twee-kaarten-structuur:
    135   ontbreekt er een nieuwere/oudere post, dan staat er een subtiele uitgegrijsde
    136   placeholder ("Nieuwste post" / "Oudste post") i.p.v. een lege plek.
    137 - Bij het openen van een gerelateerde/volgende post spring je nu naar boven van de
    138   pagina (was: je bleef op de oude scrollpositie hangen).
     46- De mini-speler springt en scrollt naar de track die speelt — ook vanuit een album of
     47  afspeellijst — en houdt die gemarkeerd.
     48- Lege album-/afspeellijst-covers vallen nu terug op de cover van de eerste track.
     49- Een profielfoto die na de overstap naar **WebP** kapotging in de koptekst, herstelt
     50  zichzelf nu.
     51- Veel verbeteringen aan de **mobiele berichten-editor**: betrouwbaar scrollen, een
     52  opmaakbalk die op z'n plek blijft, geen pagina-sprongen als je op een knop tikt, en een
     53  Opslaan-balk die net boven het toetsenbord zit.
    13954
    14055## [1.0.0-beta.2] — 2026-06-19
    14156
    142 Eerste release waarbij we de versie actief bijhouden (zichtbaar in de footer →
    143 klik erop voor deze pagina). Federatie-proto: **2** (ongewijzigd).
     57Eerste release waarbij we de versie actief bijhouden (te zien in de footer — klik erop voor
     58deze pagina).
    14459
    14560### Toegevoegd
    146 - Release-tracking: versienummer in de footer linkt naar deze wijzigingen-pagina.
    147 - Acht premium-functies (Patreon-gegate): nieuwsbrief/mailinglijst, download-voor-email,
    148   release-planning + fan-only previews, EPK/perskit, pro-statistieken, link-in-bio +
    149   klikstats, inbedbare speler, en show-agenda + notify-me.
     61- Releasetracking: het versienummer in de footer linkt naar deze wijzigingenpagina.
     62- Acht premiumfuncties (achter **Patreon**): nieuwsbrief/mailinglijst, download-voor-e-mail,
     63  release-planning + previews alleen voor fans, **EPK**/perskit, pro-statistieken,
     64  link-in-bio + klikstatistieken, insluitbare speler, en showagenda + houd-me-op-de-hoogte.
    15065- Nieuwsbrief-aanmeldveld in de footer (aan/uit in Beheer → Instellingen).
    151 - SMTP-instellingen instelbaar in Beheer → Instellingen (geen `.env`-edit meer nodig),
    152   met testmail-knop.
     66- **SMTP**-instellingen in te stellen in Beheer → Instellingen (geen aanpassing van een
     67  configuratiebestand meer nodig), met een testmail-knop.
    15368
    15469### Gewijzigd
    155 - Beheer → Instellingen: Hub- en Cirkel-config staan nu direct onder de Modus-kaart;
    156   forms netter (gestapelde labels, full-width inputs).
    157 - EPK/perskit toont de top 10 meest beluisterde nummers.
    158 - Nettere 404-pagina (mobielvriendelijk) en duidelijkere login-foutmeldingen.
     70- Nettere instellingenformulieren (gestapelde labels, volledig brede invoervelden).
     71- **EPK**/perskit toont de top 10 meest beluisterde tracks.
     72- Mooiere 404-pagina (mobielvriendelijk) en duidelijkere inlogfoutmeldingen.
    15973
    16074### Opgelost
    161 - Site-brede audiospeler kreeg geen tracks (verkeerde kolom in de query).
    162 - Knoptekst werd onleesbaar bij hover (zelfde kleur als de knop).
     75- De sitebrede audiospeler laadde geen enkele track.
     76- Knoptekst werd onleesbaar bij hover.
    16377- Datumkiezers volgen nu het thema.
    164 - htmx-navigatie werkt de adresbalk weer bij; geen dubbele kop bij terug/vooruit.
     78- Vooruit/terug-navigatie toont geen dubbele koptekst meer.
Note: See TracChangeset for help on using the changeset viewer.