| 1 | # Changelog — Klonkt
|
|---|
| 2 |
|
|---|
| 3 | All notable changes to Klonkt. Newest at the top.
|
|---|
| 4 | Versions follow [SemVer](https://semver.org/) (`1.0.0-beta.N` during the beta).
|
|---|
| 5 |
|
|---|
| 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 |
|
|---|
| 14 | ## [Unreleased]
|
|---|
| 15 |
|
|---|
| 16 | ### 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.
|
|---|
| 33 |
|
|---|
| 34 | ### 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.
|
|---|
| 39 |
|
|---|
| 40 | ### 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.
|
|---|
| 46 |
|
|---|
| 47 | ### 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).
|
|---|
| 139 |
|
|---|
| 140 | ## [1.0.0-beta.2] — 2026-06-19
|
|---|
| 141 |
|
|---|
| 142 | First release where we actively track the version (visible in the footer →
|
|---|
| 143 | click it for this page). Federation proto: **2** (unchanged).
|
|---|
| 144 |
|
|---|
| 145 | ### Added
|
|---|
| 146 | - Release tracking: the version number in the footer links to this changelog page.
|
|---|
| 147 | - Eight premium features (Patreon-gated): newsletter/mailing list, download-for-email,
|
|---|
| 148 | release scheduling + fan-only previews, EPK/press kit, pro statistics, link-in-bio +
|
|---|
| 149 | click stats, embeddable player, and show agenda + notify-me.
|
|---|
| 150 | - 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.
|
|---|
| 153 |
|
|---|
| 154 | ### Changed
|
|---|
| 155 | - Admin → Settings: Hub and Circle config now sit directly under the Mode card;
|
|---|
| 156 | forms tidier (stacked labels, full-width inputs).
|
|---|
| 157 | - EPK/press kit shows the top 10 most-listened tracks.
|
|---|
| 158 | - Nicer 404 page (mobile-friendly) and clearer login error messages.
|
|---|
| 159 |
|
|---|
| 160 | ### 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).
|
|---|
| 163 | - Date pickers now follow the theme.
|
|---|
| 164 | - htmx navigation updates the address bar again; no double header on back/forward.
|
|---|