# # ChangeLog for src/routes/posts.js in Klonkt # # Generated by Trac 1.6 # 09/09/2026 05:50:30 PM Wed, 01 Jul 2026 21:49:52 GMT roboburr [c06816e] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) feat(audio): sharing openly on the fediverse is one-way + lock the ... Wed, 01 Jul 2026 19:14:12 GMT roboburr [1c2dcba] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) * test/activitypub-as2.test.js (modified) feat(fediverse): report a post/account to its home server (AS2 Flag) ... Wed, 01 Jul 2026 19:06:45 GMT roboburr [0688b5f] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * test/activitypub-as2.test.js (modified) * test/post-language.test.js (added) feat(fediverse): post language → AS2 contentMap A post can now ... Wed, 01 Jul 2026 18:55:46 GMT roboburr [d18c60e] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * test/media-alt.test.js (added) feat(fediverse): alt text for images (accessibility → AS2 attachment ... Wed, 01 Jul 2026 18:23:10 GMT roboburr [dc41bef] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * test/thread-crawl.test.js (added) feat(fediverse): fetch remote reply threads (cached, stale-while- ... Wed, 01 Jul 2026 13:32:22 GMT roboburr [667fb41] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) feat(polls): vote on any fediverse poll from the interact page The ... Wed, 01 Jul 2026 12:53:32 GMT roboburr [0403187] * CHANGELOG.de.md (modified) * CHANGELOG.md (modified) * CHANGELOG.nl.md (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * test/polls.test.js (added) feat(fediverse): host your own polls (federate as AS2 Question) A ... Wed, 01 Jul 2026 07:38:33 GMT Robin Genis [6053c6c] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/news.ejs (modified) feat(fediverse): show + vote on remote polls (Question) in the News ... Tue, 30 Jun 2026 22:32:20 GMT roboburr [e091add] * src/routes/posts.js (modified) feat(feed): embed PeerTube videos in the News feed A federated ... Tue, 30 Jun 2026 18:11:50 GMT roboburr [adb6291] * src/routes/posts.js (modified) * src/routes/tags.js (modified) * src/routes/types.js (modified) * src/routes/users.js (modified) * src/views/pages/post.ejs (modified) * src/views/partials/post-card.ejs (modified) * src/views/partials/post-tile.ejs (modified) feat(video-cover): render iOS video covers across grid, list, related ... Tue, 30 Jun 2026 17:43:39 GMT roboburr [857a06f] * src/routes/activitypub.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) feat(video-cover): federate an animated cover as a Video attachment ... Tue, 30 Jun 2026 17:29:01 GMT roboburr [1d6f9a2] * src/config/database.js (modified) * src/routes/posts.js (modified) feat(video-cover): backend — convert animated WebP covers to a muted ... Tue, 30 Jun 2026 02:27:57 GMT roboburr [e0a1ec1] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) feat(editor): per-post "share audio on the fediverse" toggle Adds a ... Mon, 29 Jun 2026 23:24:30 GMT roboburr [328d837] * src/routes/posts.js (modified) * src/services/MusicMeta.js (added) * src/views/shell.ejs (modified) feat(music): schema.org MusicRecording/MusicAlbum structured data on ... Sun, 28 Jun 2026 10:33:07 GMT Robin Genis [0596945] * src/routes/posts.js (modified) * src/views/pages/post.ejs (modified) fix(related): blur NSFW covers in the Related Posts section The ... Sat, 27 Jun 2026 12:04:36 GMT Robin Genis [bddbfe0] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) feat(fedi): edit your own outbound replies (Update(Note)) - ... Sat, 27 Jun 2026 09:14:55 GMT Robin Genis [ca0ad44] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/news.ejs (modified) feat(news): surface embedUrl + a direct "open the player" link - ... Sat, 27 Jun 2026 08:10:43 GMT Robin Genis [b7d4458] * src/config/database.js (modified) * src/routes/activitypub.js (modified) * src/routes/circle.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/post-card.ejs (modified) * src/views/partials/post-tile.ejs (modified) feat(nsfw): custom content-warning text + blur in the Cirkel - ... Sat, 27 Jun 2026 07:51:44 GMT Robin Genis [837fc9c] * src/assets/css/style.css (modified) * src/config/database.js (modified) * src/routes/activitypub.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/post-card.ejs (modified) * src/views/partials/post-tile.ejs (modified) * src/views/shell.ejs (modified) feat(posts): NSFW / sensitive content Mark a post NSFW (checkbox in ... Sat, 27 Jun 2026 07:15:25 GMT Robin Genis [74d61e6] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) feat(fedi): boosting a non-followed post shows it in the Cirkel The ... Sat, 27 Jun 2026 01:04:55 GMT Robin Genis [80c36a1] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) feat(fedi): fans-only = followers-only federation (option A) A ... Fri, 26 Jun 2026 23:55:09 GMT Robin Genis [0a75356] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/news.ejs (modified) feat(news): feed like+boost toggle in place (fetch, no reload, no ... Fri, 26 Jun 2026 23:50:14 GMT Robin Genis [9d34855] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/news.ejs (modified) fix(news): feed like is a toggle too (like/unlike), like boost The ... Fri, 26 Jun 2026 23:45:53 GMT Robin Genis [c7ecaf9] * src/routes/posts.js (modified) * src/views/pages/authorize-interaction.ejs (modified) feat(fedi): like/boost toggle in place on the interact page (no ... Fri, 26 Jun 2026 23:38:25 GMT Robin Genis [3d37c67] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/authorize-interaction.ejs (modified) feat(fedi): interact page like/boost are 2 icon+label toggle buttons ... Fri, 26 Jun 2026 23:30:21 GMT Robin Genis [3289a64] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/post.ejs (modified) * src/views/partials/fedi-node.ejs (modified) feat(fedi): comment like is a toggle too (Undo Like / un-favourite) ... Fri, 26 Jun 2026 23:25:14 GMT Robin Genis [c745659] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/post.ejs (modified) * src/views/partials/fedi-node.ejs (modified) feat(fedi): comment boost is a toggle with state + coloured action ... Fri, 26 Jun 2026 17:04:49 GMT Robin Genis [eefd302] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/following.ejs (modified) * src/views/pages/news.ejs (moved) * src/views/partials/fedi-tabs.ejs (modified) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) feat(fedi): rename feed Newspaper -> News (/newspaper -> /news) EN ... Fri, 26 Jun 2026 16:14:23 GMT Robin Genis [781d613] * src/routes/posts.js (modified) feat(newspaper): drop redundant '🎵 listen on' line when Klonkt ... Fri, 26 Jun 2026 16:10:22 GMT Robin Genis [d22b55c] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/newspaper.ejs (modified) * src/views/pages/post.ejs (modified) feat(fedi): Bandcamp+Apple Music embeds in feed, server autofill, ... Fri, 26 Jun 2026 16:02:03 GMT Robin Genis [84903a1] * src/routes/posts.js (modified) * src/views/pages/newspaper.ejs (modified) feat(newspaper): embed followed Klonkt sites' audio player inline ... Fri, 26 Jun 2026 15:56:42 GMT Robin Genis [0fa59c3] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/following.ejs (modified) * src/views/pages/newspaper.ejs (moved) * src/views/partials/fedi-tabs.ejs (modified) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) feat(fedi): rename Timeline tab/route to Newspaper (/timeline -> ... Fri, 26 Jun 2026 14:14:00 GMT Robin Genis [297c77d] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/blocks.ejs (modified) * src/views/pages/timeline.ejs (modified) * src/views/pages/volgend.ejs (modified) * src/views/partials/fedi-tabs.ejs (modified) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) refactor(fedi): English URL paths + equal-width tabs + back-to-site ... Fri, 26 Jun 2026 14:01:26 GMT Robin Genis [1ecbf71] * src/routes/posts.js (modified) * src/views/pages/timeline.ejs (modified) feat(tijdlijn): graphical redesign + inline embeds (others' media) ... Fri, 26 Jun 2026 13:29:02 GMT Robin Genis [73045f9] * src/routes/posts.js (modified) fix(volgend): featured toggle confirmation said 'Auto-boost' -> ... Fri, 26 Jun 2026 13:26:39 GMT Robin Genis [fda08c2] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/volgend.ejs (modified) refactor(fedi): remove the 'boost latest 5' feature Dropped at ... Fri, 26 Jun 2026 13:13:21 GMT Robin Genis [b6cdc3d] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) * src/views/pages/post.ejs (modified) feat(fedi): like/boost/reply on the interaction page + display-only ... Fri, 26 Jun 2026 12:16:33 GMT Robin Genis [78b6d8a] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/timeline.ejs (modified) feat(tijdlijn): unboost button — retract a boost (Undo Announce) from ... Fri, 26 Jun 2026 12:00:18 GMT Robin Genis [5045c30] * src/config/database.js (modified) * src/middleware/render.js (modified) * src/routes/circle.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) feat(cirkel): boosted posts also appear in the Cirkel (mixed by date, ... Fri, 26 Jun 2026 11:16:45 GMT Robin Genis [484adf8] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/volgend.ejs (modified) feat(cirkel): featuring is local-only; optional one-time 'boost ... Fri, 26 Jun 2026 09:05:28 GMT Robin Genis [46f3dd6] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/timeline.ejs (modified) * src/views/pages/volgend.ejs (added) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/tl-tabs.ejs (added) * src/views/partials/topnav.ejs (modified) feat(fediverse): split Tijdlijn (feed) from Volgend (following) + put ... Fri, 26 Jun 2026 07:47:20 GMT Robin Genis [f278df9] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/timeline.ejs (modified) feat(fediverse): auto-boost a followed account ('feature an artist') ... Thu, 25 Jun 2026 22:25:57 GMT Robin Genis [67fe576] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/post.ejs (modified) * src/views/partials/fedi-node.ejs (modified) ux(fedi): owner can like/boost a fediverse comment directly too ... Thu, 25 Jun 2026 21:08:20 GMT Robin Genis [8ad1784] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) feat(ap): authorize_interaction handles actor URIs as a Follow The ... Thu, 25 Jun 2026 09:52:25 GMT Robin Genis [3dd99d3] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) harden(fediverse): SSRF guard, remote-URL XSS scheme-guard, scoped ... Thu, 25 Jun 2026 09:13:53 GMT Robin Genis [55bba23] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) fediverse: federate pin order via Add/Remove activities (reliable, ... Thu, 25 Jun 2026 07:08:31 GMT Robin Genis [f1e0c1f] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) fediverse: push actor Update on pin/unpin so Mastodon refreshes the ... Thu, 25 Jun 2026 06:13:00 GMT Robin Genis [30271e6] * src/routes/embed.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/shell.ejs (modified) fix(fediverse): player card only for playable (hosted) audio; scope ... Thu, 25 Jun 2026 05:37:12 GMT Robin Genis [ca25f360] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) feat(fediverse): federate post edits as Update (Mastodon refreshes ... Thu, 25 Jun 2026 05:22:51 GMT Robin Genis [e951b7c] * src/middleware/render.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/partials/topnav.ejs (modified) feat(fediverse): real bell badge for unseen notifications Track a ... Thu, 25 Jun 2026 05:15:48 GMT Robin Genis [5a6a457] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/server.js (modified) * src/services/ActivityPubService.js (modified) * src/services/Scheduler.js (modified) feat(fediverse): federate on save+scheduler, delivery retry-queue, ... Wed, 24 Jun 2026 18:05:39 GMT Robin Genis [5410d4d] * src/routes/posts.js (modified) * src/views/pages/favorites.ejs (deleted) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) Remove the dead Favourites feature (local likes replaced by fediverse ... Wed, 24 Jun 2026 17:48:48 GMT Robin Genis [0aa23cf] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) fix(fediverse): ⭐ star now actually likes (was landing on the reply ... Wed, 24 Jun 2026 16:08:34 GMT Robin Genis [f5c3870] * src/config/database.js (modified) * src/middleware/render.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/blocks.ejs (added) * src/views/pages/timeline.ejs (modified) * src/views/partials/topnav.ejs (modified) feat(fediverse-client): block/defederate accounts & domains Block ... Wed, 24 Jun 2026 15:27:49 GMT Robin Genis [00f669b] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/fedi-notifications.ejs (added) feat(fediverse-client): notifications inbox (/meldingen) Aggregates ... Wed, 24 Jun 2026 15:23:01 GMT Robin Genis [d988fa0] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/pages/timeline.ejs (modified) feat(fediverse-client): like/boost/reply on timeline items Timeline ... Wed, 24 Jun 2026 15:19:11 GMT Robin Genis [914eb9f] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/timeline.ejs (added) feat(fediverse-client): follow accounts + home timeline Klonkt can ... Wed, 24 Jun 2026 14:26:32 GMT Robin Genis [59f0170] * src/routes/admin-comments.js (deleted) * src/routes/comments.js (deleted) * src/routes/posts.js (modified) * src/server.js (modified) * src/views/pages/admin-comments.ejs (deleted) * src/views/pages/admin-site-edit.ejs (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/my-site.ejs (modified) * src/views/pages/post.ejs (modified) refactor(comments): remove native comments — social is fediverse-only ... Wed, 24 Jun 2026 13:58:33 GMT Robin Genis [c73ac64] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/views/partials/fedi-node.ejs (modified) fix(activitypub): own replies show the site identity to everyone (not ... Wed, 24 Jun 2026 13:53:00 GMT Robin Genis [de3d24b] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) fix(activitypub): link owner's remote-reply to the local post so it ... Wed, 24 Jun 2026 13:24:23 GMT Robin Genis [7d932ce] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/fedi-node.ejs (added) feat(activitypub): nested threading + delete your own replies Inbox ... Wed, 24 Jun 2026 13:04:50 GMT Robin Genis [41a7637] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (modified) fix(activitypub): instant Send + confirmation on remote reply Send ... Wed, 24 Jun 2026 12:44:21 GMT Robin Genis [3d7312a] * src/assets/css/style.css (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/authorize-interaction.ejs (added) * src/views/pages/post.ejs (modified) * src/views/shell.ejs (modified) feat(activitypub): remote interaction — reply to any fediverse post ... Wed, 24 Jun 2026 12:31:43 GMT Robin Genis [82079ad] * src/middleware/render.js (modified) * src/routes/account.js (modified) * src/routes/posts.js (modified) * src/views/pages/account.ejs (modified) feat: one identity — user avatar falls back to the site photo ... Wed, 24 Jun 2026 12:23:05 GMT Robin Genis [52ea6df] * src/routes/posts.js (modified) * src/views/pages/post.ejs (modified) fix(activitypub): show site avatar on our own fediverse replies ... Wed, 24 Jun 2026 12:09:08 GMT Robin Genis [55bc7f9] * src/assets/css/style.css (modified) * src/config/database.js (modified) * src/routes/activitypub.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/post.ejs (modified) * src/views/shell.ejs (modified) feat(activitypub): reply back to the fediverse (Phase 4 outbound) ... Wed, 24 Jun 2026 11:44:23 GMT Robin Genis [c16e0a5] * src/assets/css/style.css (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) * src/services/i18n.js (modified) * src/views/pages/post.ejs (modified) * src/views/shell.ejs (modified) feat(activitypub): inbound interactions — replies, likes, boosts ... Wed, 24 Jun 2026 11:22:49 GMT Robin Genis [eb852c5] * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) feat(activitypub): federate post deletions (Delete + Tombstone) ... Wed, 24 Jun 2026 11:16:28 GMT Robin Genis [5a93ac0] * src/routes/activitypub.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) feat(activitypub): federate images as attachments Cover image + ... Wed, 24 Jun 2026 10:35:48 GMT Robin Genis [5bf63b7] * src/routes/activitypub.js (modified) * src/routes/posts.js (modified) * src/services/ActivityPubService.js (modified) feat(activitypub): phase 1b — Follow/Accept, HTTP Signatures, ... Tue, 23 Jun 2026 18:14:27 GMT Robin Genis [834bcc3] * scripts/backfill-durations.mjs (modified) * scripts/reset-admin.mjs (modified) * src/assets/js/audio-player.js (modified) * src/assets/js/embed-player.js (modified) * src/assets/js/smooth-scroll.js (modified) * src/config/database.js (modified) * src/config/features.js (modified) * src/config/google.js (modified) * src/config/mailer.js (modified) * src/middleware/auth.js (modified) * src/middleware/rate-limit.js (modified) * src/middleware/render.js (modified) * src/middleware/site.js (modified) * src/routes/account.js (modified) * src/routes/admin-audio.js (modified) * src/routes/admin-circle.js (modified) * src/routes/admin-comments.js (modified) * src/routes/admin-epk.js (modified) * src/routes/admin-newsletter.js (modified) * src/routes/admin-patreon.js (modified) * src/routes/admin-seo.js (modified) * src/routes/admin-settings.js (modified) * src/routes/admin-shows.js (modified) * src/routes/admin-sites.js (modified) * src/routes/admin-stats.js (modified) * src/routes/admin-updates.js (modified) * src/routes/admin-users.js (modified) * src/routes/admin.js (modified) * src/routes/artists.js (modified) * src/routes/audio.js (modified) * src/routes/auth.js (modified) * src/routes/changelog.js (modified) * src/routes/circle.js (modified) * src/routes/comments.js (modified) * src/routes/download.js (modified) * src/routes/embed.js (modified) * src/routes/epk.js (modified) * src/routes/federation.js (modified) * src/routes/hub.js (modified) * src/routes/lang.js (modified) * src/routes/linkbio.js (modified) * src/routes/newsletter.js (modified) * src/routes/notifications.js (modified) * src/routes/posts.js (modified) * src/routes/search.js (modified) * src/routes/shows.js (modified) * src/server.js (modified) * src/services/AudioEmbedService.js (modified) * src/services/AudioTranscoder.js (modified) * src/services/CircleFederation.js (modified) * src/services/CircleService.js (modified) * src/services/ImageWebpService.js (modified) * src/services/NotificationService.js (modified) * src/services/PatreonService.js (modified) * src/services/PermissionsService.js (modified) * src/services/PlaylistService.js (modified) * src/services/Scheduler.js (modified) * src/services/SettingsService.js (modified) * src/services/StatsService.js (modified) * src/services/SubscriberService.js (modified) * src/services/ThemeService.js (modified) * src/services/ensurePrimarySite.js (modified) * src/views/pages/account.ejs (modified) * src/views/pages/admin-circle.ejs (modified) * src/views/pages/admin-google.ejs (modified) * src/views/pages/admin-seo.ejs (modified) * src/views/pages/admin-settings.ejs (modified) * src/views/pages/admin-shows.ejs (modified) * src/views/pages/admin-site-edit.ejs (modified) * src/views/pages/admin-users.ejs (modified) * src/views/pages/auth-login.ejs (modified) * src/views/pages/circle-feed.ejs (modified) * src/views/pages/fan-gate.ejs (modified) * src/views/pages/hub-home.ejs (modified) * src/views/pages/post-edit.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/bottom-tab.ejs (modified) * src/views/partials/footer.ejs (modified) * src/views/partials/like-button.ejs (modified) * src/views/partials/post-nav.ejs (modified) * src/views/partials/shared-styles.ejs (modified) * src/views/partials/topnav.ejs (modified) * src/views/partials/track-editor.ejs (modified) i18n: translate Dutch code comments to English across src/ Comments ... Tue, 23 Jun 2026 14:54:36 GMT Robin Genis [cb01666] * .env.example (modified) * src/config/features.js (added) * src/middleware/render.js (modified) * src/middleware/site.js (modified) * src/routes/posts.js (modified) * src/server.js (modified) * src/views/pages/admin-site-edit.ejs (modified) * src/views/pages/admin.ejs (modified) * src/views/partials/profile-header.ejs (modified) feat: lite mode (KLONKT_AUDIO=off) — audio disabled, single codebase ... Tue, 23 Jun 2026 14:24:46 GMT Robin Genis [8f2f97c] * src/config/database.js (modified) * src/routes/admin-sites.js (modified) * src/routes/posts.js (modified) * src/routes/prutter.js (deleted) * src/server.js (modified) * src/services/PrutterService.js (deleted) * src/views/pages/admin-site-edit.ejs (modified) * src/views/pages/prutter-conversation.ejs (deleted) * src/views/pages/prutter-inbox.ejs (deleted) * src/views/pages/user.ejs (modified) * src/views/partials/bottom-tab.ejs (modified) * src/views/partials/topnav.ejs (modified) * src/views/shell.ejs (modified) Prutter (DM feature) fully removed Reason: redundant feature + ... Sun, 21 Jun 2026 19:31:08 GMT roboburr [b27cde6] * src/routes/posts.js (modified) fix(posts): duplicate title/slug no longer rejected — auto-unique ... Sun, 21 Jun 2026 18:38:24 GMT roboburr [c9c6a2d] * src/config/database.js (modified) * src/middleware/render.js (modified) * src/routes/comments.js (modified) * src/routes/notifications.js (added) * src/routes/posts.js (modified) * src/server.js (modified) * src/services/NotificationService.js (added) * src/services/i18n.js (modified) * src/views/pages/notifications.ejs (added) * src/views/partials/bottom-tab.ejs (modified) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) feat(meldingen): notifications — reply on comment, comment on post, ... Sun, 21 Jun 2026 15:54:13 GMT roboburr [11b3ba5] * src/routes/posts.js (modified) * src/services/i18n.js (modified) * src/views/pages/post-edit.ejs (modified) fix(editor): schedule publication behind an on/off toggle (no ... Sat, 20 Jun 2026 08:29:48 GMT roboburr [d8c6a83] * src/assets/css/style.css (modified) * src/routes/download.js (modified) * src/routes/posts.js (modified) * src/views/pages/downloads.ejs (modified) * src/views/shell.ejs (modified) fix(downloads+posts): post nav on downloads page + post images full ... Sat, 20 Jun 2026 05:37:42 GMT roboburr [d727e92] * src/assets/css/audio.css (modified) * src/routes/admin-audio.js (modified) * src/routes/posts.js (modified) * src/services/AudioEmbedService.js (modified) * src/services/PlaylistService.js (modified) * src/views/pages/admin-audio.ejs (modified) * src/views/shell.ejs (modified) feat(audio): tracks without audio (link-only) — list with open-in ... Sat, 20 Jun 2026 05:23:08 GMT roboburr [183875b] * src/assets/css/audio.css (modified) * src/config/database.js (modified) * src/routes/admin-audio.js (modified) * src/routes/posts.js (modified) * src/services/AudioEmbedService.js (modified) * src/services/PlaylistService.js (modified) * src/views/partials/track-editor.ejs (modified) * src/views/shell.ejs (modified) feat(audio): per-track "open in" Spotify/YouTube/SoundCloud links ... Sat, 20 Jun 2026 05:04:13 GMT roboburr [0d7acdf] * src/assets/css/audio.css (modified) * src/config/database.js (modified) * src/routes/admin-audio.js (modified) * src/routes/posts.js (modified) * src/services/AudioEmbedService.js (modified) * src/services/AudioTranscoder.js (modified) * src/views/partials/track-editor.ejs (modified) * src/views/shell.ejs (modified) feat(audio): per-track owner/credit + license (+ written to mp3 ID3 ... Sat, 20 Jun 2026 02:09:51 GMT roboburr [359b9ae] * src/assets/css/style.css (modified) * src/routes/posts.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/shell.ejs (modified) fix(player): scroll-to-track also from album & playlist Album track ... Sat, 20 Jun 2026 01:57:35 GMT roboburr [8f6225c] * src/routes/account.js (modified) * src/routes/admin-audio.js (modified) * src/routes/admin-settings.js (modified) * src/routes/admin-sites.js (modified) * src/routes/posts.js (modified) * src/services/ImageWebpService.js (added) feat(images): new uploads automatically converted to WebP Shared ... Fri, 19 Jun 2026 09:49:35 GMT roboburr [535f955] * CHANGELOG.md (modified) * src/config/database.js (modified) * src/routes/posts.js (modified) * src/views/pages/favorites.ejs (added) * src/views/pages/post.ejs (modified) * src/views/partials/like-button.ejs (added) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) feat: post likes + favourites page for logged-in users - New ... Fri, 19 Jun 2026 09:40:04 GMT roboburr [8cdb377] * CHANGELOG.md (modified) * src/routes/posts.js (modified) * src/views/partials/post-nav.ejs (modified) ui(post-nav): show 📌 when the Newer/Older post is pinned ... Fri, 19 Jun 2026 09:38:20 GMT roboburr [1e2e9e7] * CHANGELOG.md (modified) * src/routes/posts.js (modified) * src/views/pages/fan-gate.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/partials/post-nav.ejs (added) ui(fan-gate): show Newer/Older post navigation on the fan gate too ... Fri, 19 Jun 2026 08:18:26 GMT roboburr [59e522f] * src/routes/posts.js (modified) 404: unknown slug now falls through to the proper 404 page (instead ... Fri, 19 Jun 2026 04:28:02 GMT roboburr [b9dc94c] * src/config/database.js (modified) * src/routes/posts.js (modified) * src/server.js (modified) * src/services/Scheduler.js (added) * src/views/pages/fan-gate.ejs (added) * src/views/pages/post-edit.ejs (modified) Release scheduling + fan-only previews (premium feature #3) - DB: ... Tue, 16 Jun 2026 09:41:28 GMT roboburr [d549549] * src/config/database.js (modified) * src/routes/admin-stats.js (added) * src/routes/audio.js (modified) * src/routes/posts.js (modified) * src/server.js (modified) * src/services/StatsService.js (added) * src/views/pages/admin-stats.ejs (added) * src/views/pages/admin.ejs (modified) Statistics module (Phase 3): cookie-free tracking + premium stats ... Mon, 15 Jun 2026 04:02:17 GMT roboburr [6117035] * src/routes/posts.js (modified) * src/views/pages/post.ejs (modified) fix: post navigation over ALL posts incl. pinned (no more pinned-only ... Mon, 15 Jun 2026 03:39:35 GMT roboburr [d54dade] * src/routes/posts.js (modified) * src/views/pages/post.ejs (modified) fix: hub mode — related posts + Newer/Older across ALL users In hub ... Mon, 15 Jun 2026 01:48:56 GMT roboburr [1907a18] * src/routes/posts.js (modified) * src/services/AudioEmbedService.js (modified) * src/views/pages/post-edit.ejs (modified) feat: embed media via editor button ([[embed:url]] shortcode) Embed ... Sun, 14 Jun 2026 18:55:44 GMT roboburr [a1c8cb8] * src/routes/admin-sites.js (modified) * src/routes/artists.js (modified) * src/routes/hub.js (modified) * src/routes/posts.js (modified) * src/server.js (modified) * src/views/pages/artists-directory.ejs (modified) * src/views/pages/hub-home.ejs (modified) feat: directory URL /artiesten -> /leden + count 'N Klonkt's' - ... Sun, 14 Jun 2026 18:07:51 GMT roboburr [8afbdd6] * README.md (modified) * package.json (modified) * src/middleware/auth.js (modified) * src/middleware/render.js (modified) * src/routes/admin-sites.js (modified) * src/routes/admin-users.js (modified) * src/routes/admin.js (modified) * src/routes/artists.js (added) * src/routes/hub.js (modified) * src/routes/posts.js (modified) * src/routes/prutter.js (modified) * src/server.js (modified) * src/views/pages/account.ejs (modified) * src/views/pages/admin-settings.ejs (modified) * src/views/pages/admin-users.ejs (modified) * src/views/pages/admin.ejs (modified) * src/views/pages/artists-directory.ejs (added) * src/views/pages/home.ejs (modified) * src/views/pages/hub-home.ejs (modified) * src/views/pages/my-site.ejs (modified) * src/views/pages/post.ejs (modified) * src/views/pages/viewer-blocked.ejs (added) * src/views/partials/bottom-tab.ejs (modified) * src/views/partials/footer.ejs (modified) * src/views/partials/profile-sheet.ejs (modified) * src/views/partials/topnav.ejs (modified) * src/views/shell.ejs (modified) feat: viewer role + artists directory + Klonkt Hub Beta rebrand ... Wed, 20 May 2026 22:14:01 GMT Robin Genis [21522ae] * src/assets/js/audio-player.js (modified) * src/routes/admin-audio.js (modified) * src/routes/admin-playlists.js (modified) * src/routes/audio.js (modified) * src/routes/posts.js (modified) * src/services/AudioStreamService.js (modified) * src/services/PlaylistService.js (modified) * src/views/pages/admin-audio.ejs (modified) * src/views/partials/track-editor.ejs (modified) * src/views/shell.ejs (modified) audio: Spotify-style blob playback + same-origin gate (fix playback ... Wed, 06 May 2026 22:18:18 GMT Robin [7bc636b] * .env.example (added) * .gitignore (added) * README.md (added) * ecosystem.config.cjs (added) * package-lock.json (added) * package.json (added) * src/assets/.well-known/assetlinks.json (added) * src/assets/apk/soundfabrics.apk (added) * src/assets/css/audio.css (added) * src/assets/css/style.css (added) * src/assets/fonts/fraunces-latin-full-italic.woff2 (added) * src/assets/fonts/fraunces-latin-full-normal.woff2 (added) * src/assets/fonts/literata-latin-opsz-italic.woff2 (added) * src/assets/fonts/literata-latin-opsz-normal.woff2 (added) * src/assets/fonts/plus-jakarta-sans-latin-wght-italic.woff2 (added) * src/assets/fonts/plus-jakarta-sans-latin-wght-normal.woff2 (added) * src/assets/js/audio-player.js (added) * src/assets/js/htmx.min.js (added) * src/assets/js/install-app.js (added) * src/config/database.js (added) * src/db/migrate.js (added) * src/db/migrations/001-init.sql (added) * src/middleware/auth.js (added) * src/middleware/rate-limit.js (added) * src/middleware/render.js (added) * src/middleware/site.js (added) * src/routes/account.js (added) * src/routes/admin-audio.js (added) * src/routes/admin-comments.js (added) * src/routes/admin-playlists.js (added) * src/routes/admin-sites.js (added) * src/routes/admin-users.js (added) * src/routes/admin.js (added) * src/routes/audio.js (added) * src/routes/auth.js (added) * src/routes/comments.js (added) * src/routes/feed.js (added) * src/routes/posts.js (added) * src/routes/prutter.js (added) * src/routes/search.js (added) * src/routes/tags.js (added) * src/routes/types.js (added) * src/routes/users.js (added) * src/server.js (added) * src/services/AudioEmbedService.js (added) * src/services/AudioStreamService.js (added) * src/services/AudioTranscoder.js (added) * src/services/CRDTService.js (added) * src/services/HtmlSanitizerService.js (added) * src/services/MarkdownService.js (added) * src/services/PermissionsService.js (added) * src/services/PlatformIcons.js (added) * src/services/PlaylistService.js (added) * src/services/PrutterService.js (added) * src/services/SqliteSessionStore.js (added) * src/services/ThemeService.js (added) * src/views/pages/account.ejs (added) * src/views/pages/admin-audio.ejs (added) * src/views/pages/admin-comments.ejs (added) * src/views/pages/admin-playlists.ejs (added) * src/views/pages/admin-site-edit.ejs (added) * src/views/pages/admin-sites.ejs (added) * src/views/pages/admin-users.ejs (added) * src/views/pages/admin.ejs (added) * src/views/pages/archive.ejs (added) * src/views/pages/auth-login.ejs (added) * src/views/pages/auth-register.ejs (added) * src/views/pages/auth-reset-request.ejs (added) * src/views/pages/auth-reset.ejs (added) * src/views/pages/home.ejs (added) * src/views/pages/post-edit.ejs (added) * src/views/pages/post.ejs (added) * src/views/pages/prutter-conversation.ejs (added) * src/views/pages/prutter-inbox.ejs (added) * src/views/pages/search.ejs (added) * src/views/pages/tag.ejs (added) * src/views/pages/type.ejs (added) * src/views/pages/user.ejs (added) * src/views/pages/welcome.ejs (added) * src/views/partials/bottom-tab.ejs (added) * src/views/partials/footer.ejs (added) * src/views/partials/playlist-editor.ejs (added) * src/views/partials/post-card.ejs (added) * src/views/partials/post-tile.ejs (added) * src/views/partials/profile-header.ejs (added) * src/views/partials/profile-sheet.ejs (added) * src/views/partials/shared-styles.ejs (added) * src/views/partials/topnav.ejs (added) * src/views/partials/track-editor.ejs (added) * src/views/partials/view-switcher.ejs (added) * src/views/shell.ejs (added) Initial commit — PrutFolio v1 source (pulled from Hetzner /srv/prutfolio)