|
|
|
@795c925
|
3 months |
roboburr |
fix(playlist): album/playlist cover falls back to first track cover
…
main
|
|
|
|
@5258945
|
3 months |
roboburr |
feat(player): persistent highlight on the active track
The currently …
main
|
|
|
|
@ddf549f
|
3 months |
roboburr |
fix(player): playlist queue now carries track id (scroll-to-track)
…
main
|
|
|
|
@359b9ae
|
3 months |
roboburr |
fix(player): scroll-to-track also from album & playlist
Album track …
main
|
|
|
|
@85d5972
|
3 months |
roboburr |
docs(changelog): WebP conversion, image friction, jump-to-track
…
main
|
|
|
|
@8f6225c
|
3 months |
roboburr |
feat(images): new uploads automatically converted to WebP
Shared …
main
|
|
|
|
@fa08981
|
3 months |
roboburr |
fix(player): scroll-to-track works for site-wide tracks too
Site-wide …
main
|
|
|
|
@230e446
|
3 months |
roboburr |
feat(player): mini-player jumps to post AND scrolls to the track …
main
|
|
|
|
@d188736
|
3 months |
roboburr |
feat: images harder to save (right-click + drag blocked)
Friction …
main
|
|
|
|
@1f0c85b
|
3 months |
roboburr |
ui(grid): show source site on hover on circle feed tiles
Grid tiles …
main
|
|
|
|
@dfc5379
|
3 months |
roboburr |
feat(circle): immediately sync a new circle on add
/add now runs …
main
|
|
|
|
@6d882b1
|
3 months |
roboburr |
feat(account): email address editable
Profile form gets an email …
main
|
|
|
|
@11ba289
|
3 months |
roboburr |
fix(auth): Google login matches on linked google_sub first (not email) …
main
|
|
|
|
@36afccd
|
3 months |
roboburr |
fix(auth): "Sign in with Google" text readable on hover
The white …
main
|
|
|
|
@6fcd0cf
|
3 months |
roboburr |
fix(account): "Link Google account" button text readable (white text)
…
main
|
|
|
|
@3ca24f9
|
3 months |
roboburr |
ui(admin-google): clearer redirect URI instruction
Redirect URI shown …
main
|
|
|
|
@3fb8390
|
3 months |
roboburr |
ui(auth): center subtitle text on login page
Co-Authored-By: Claude …
main
|
|
|
|
@77b6fca
|
3 months |
roboburr |
ui(auth): clickable "Administrator?" box on public login → /auth/admin …
main
|
|
|
|
@254872f
|
3 months |
roboburr |
ui(editor): hide "drag image / select text" hint on touch
Not …
main
|
|
|
|
@b988c96
|
3 months |
roboburr |
fix(editor): Done button only in fullscreen (specificity) + larger
…
main
|
|
|
|
@43fea32
|
3 months |
roboburr |
ui(editor): larger "Done" button in fullscreen
Co-Authored-By: Claude …
main
|
|
|
|
@9163b15
|
3 months |
roboburr |
ui(editor): simple inline content layout on touch (toolbar hidden)
…
main
|
|
|
|
@b12e20d
|
3 months |
roboburr |
feat(editor): edit content as a fullscreen "page" with back button + …
main
|
|
|
|
@c1a4147
|
3 months |
roboburr |
fix(editor): scroll lock removed — edit page could no longer scroll
…
main
|
|
|
|
@a623e7e
|
3 months |
roboburr |
ui(editor): tap-to-edit pill sticky at the bottom instead of centred
…
main
|
|
|
|
@a4f6827
|
3 months |
roboburr |
fix(editor): exit fullscreen scrolls to content top + clearer tap hint …
main
|
|
|
|
@61bb585
|
3 months |
roboburr |
feat(editor): content not typeable inline on touch — editing = …
main
|
|
|
|
@5d68686
|
3 months |
roboburr |
ui(mobile): hide scrollbars on touch (pointer:coarse)
@media …
main
|
|
|
|
@de21a3b
|
3 months |
roboburr |
fix(editor): no double scrollbar in fullscreen
In fullscreen only the …
main
|
|
|
|
@e22230e
|
3 months |
roboburr |
fix(editor): remove 350ms scroll guard + always type fullscreen on …
main
|
|
|
|
@f3f43df
|
3 months |
roboburr |
ui: text fields grow with content instead of scrolling internally (no …
main
|
|
|
|
@c01f471
|
3 months |
roboburr |
feat(editor): always type fullscreen on mobile/tablet (touch)
On …
main
|
|
|
|
@9217e4e
|
3 months |
roboburr |
fix(mobile): remove interactive-widget=resizes-content again
It …
main
|
|
|
|
@7d81265
|
3 months |
roboburr |
fix(editor): toolbar sticky inside the scroll box on mobile
The frame …
main
|
|
|
|
@859bace0
|
3 months |
roboburr |
fix(editor): mobile writing field as bounded box with internal scroll
…
main
|
|
|
|
@2d596cf
|
3 months |
roboburr |
fix(editor): catch async caret scroll on mobile Chrome (empty caret + …
main
|
|
|
|
@f8e8f9e
|
3 months |
roboburr |
fix(editor): more robust anti-jump on formatting (Chrome)
keepScroll …
main
|
|
|
|
@cbfbf88
|
3 months |
roboburr |
fix(editor): no view jump on formatting button — hold scroll position
…
main
|
|
|
|
@5f7dba2
|
3 months |
roboburr |
fix(editor): action bar correctly above keyboard (no mid-screen bug)
…
main
|
|
|
|
@408afc1
|
3 months |
roboburr |
fix(editor): Save/Cancel bar above the keyboard on mobile
The …
main
|
|
|
|
@4ad669a
|
3 months |
roboburr |
ui(admin): label the Google button in Admin simply "Google"
…
main
|
|
|
|
@9ef3c56
|
3 months |
roboburr |
fix(mobile): hide fixed bottom bars when the keyboard is open
…
main
|
|
|
|
@a0bff44
|
3 months |
roboburr |
fix(editor): no autofocus on title on mobile (no keyboard popup)
…
main
|
|
|
|
@06f3791
|
3 months |
roboburr |
fix(editor): toolbar stays in view in fullscreen on mobile (visual …
main
|
|
|
|
@d2078f4
|
3 months |
roboburr |
feat(editor): full-screen writing mode
Button in the editor toolbar …
main
|
|
|
|
@16ce669
|
3 months |
roboburr |
ui(editor): clear active/inactive state for formatting on mobile
…
main
|
|
|
|
@a7e8e19
|
3 months |
roboburr |
fix(editor): mobile — formatting buttons no longer steal focus (toggle …
main
|
|
|
|
@f83ccf3
|
3 months |
roboburr |
ui(fan-gate): post-nav cascade-identiek aan de post (.container + …
main
|
|
|
|
@09ecc5f
|
3 months |
roboburr |
ui(admin): Google login on its own Admin page
- New page …
main
|
|
|
|
@f33b24a
|
3 months |
roboburr |
ui(fan-gate): post-nav pixel-perfect match with the regular post
The …
main
|
|
|
|
@247988e
|
3 months |
roboburr |
feat(auth): admin can link Google and use it to log in
- Account → …
main
|
|
|
|
@535f955
|
3 months |
roboburr |
feat: post likes + favourites page for logged-in users
- New …
main
|
|
|
|
@8cdb377
|
3 months |
roboburr |
ui(post-nav): show 📌 when the Newer/Older post is pinned
…
main
|
|
|
|
@1e2e9e7
|
3 months |
roboburr |
ui(fan-gate): show Newer/Older post navigation on the fan gate too
…
main
|
|
|
|
@f4b7b6a
|
3 months |
roboburr |
feat(auth): public login = Google only; admin login hidden at …
main
|
|
|
|
@1080d14
|
3 months |
roboburr |
ui(nav): scroll to top when navigating to a different post
Links with …
main
|
|
|
|
@5c27e8e
|
3 months |
roboburr |
ui(post): consistent Newer/Older navigation on every post
When a …
main
|
|
|
|
@90259da
|
3 months |
roboburr |
feat: release tracking — version in footer links to /changelog
- …
main
|
|
|
|
@323abb0
|
3 months |
roboburr |
ui(settings): mode config below Mode card + fix radio regression
- …
main
|
|
|
|
@0804d61
|
3 months |
roboburr |
ui: settings forms cleaner — stacked labels + full-width inputs
Bare …
main
|
|
|
|
@a474bd2
|
3 months |
roboburr |
ui: comment moderation "Recent decisions" as cards instead of a flat …
main
|
|
|
|
@da6fd02
|
3 months |
roboburr |
newsletter: optional sign-up in the footer (toggle in Admin → …
main
|
|
|
|
@7eb35ae
|
3 months |
roboburr |
editor: note that the excerpt is also the Circles summary
…
main
|
|
|
|
@ca507ef
|
3 months |
roboburr |
feat: SMTP configurable via Admin → Settings (app_settings, env …
main
|
|
|
|
@977f65d
|
3 months |
roboburr |
ui: date/time picker in site theme (dark/light follows toggle) + …
main
|
|
|
|
@13b2986
|
3 months |
roboburr |
EPK: Music section = top 10 most played (instead of first 6 in order)
…
main
|
|
|
|
@59e522f
|
3 months |
roboburr |
404: unknown slug now falls through to the proper 404 page (instead of …
main
|
|
|
|
@3b6e04a
|
3 months |
roboburr |
404: proper, mobile-friendly page instead of bare text
Catch-all now …
main
|
|
|
|
@2900f1d
|
3 months |
roboburr |
fix: button text unreadable on hover (a:hover overrode accent button …
main
|
|
|
|
@b919a67
|
3 months |
roboburr |
auth: all Google login errors as clear explanation blocks (codes …
main
|
|
|
|
@70679063
|
3 months |
roboburr |
fix: download toggle without page reload + clear explanation page on …
main
|
|
|
|
@9b3e12c
|
3 months |
roboburr |
fix: post URL now updates in the address bar — htmx:beforeRequest …
main
|
|
|
|
@e9cfa3c
|
3 months |
roboburr |
fix: stats chart overflowed the card at 90 days
90 day columns + all …
main
|
|
|
|
@6b8afb1
|
3 months |
roboburr |
fix: address bar not updating on post click (htmx history off + …
main
|
|
|
|
@0beafed
|
3 months |
roboburr |
fix: site-wide audio player never received tracks (loadAudioTracks …
main
|
|
|
|
@84325b8
|
3 months |
roboburr |
chrome: feature pages headerless (own header) — topnav stays, profile …
main
|
|
|
|
@8d32dcf
|
3 months |
roboburr |
Show agenda + notify-me (premium feature #8) — last of the 8
- DB: …
main
|
|
|
|
@b9dc94c
|
3 months |
roboburr |
Release scheduling + fan-only previews (premium feature #3)
- DB: …
main
|
|
|
|
@6be57b4
|
3 months |
roboburr |
Embeddable player (premium feature #7)
Standalone /embed page (no …
main
|
|
|
|
@1794fac
|
3 months |
roboburr |
Pro stats (premium feature #5): referrers + period selector + all-time …
main
|
|
|
|
@37edecd
|
3 months |
roboburr |
Link-in-bio + click stats (premium feature #6)
Linktree-style page …
main
|
|
|
|
@91094a4
|
3 months |
roboburr |
Download-for-email (premium feature #2)
Fan leaves their email -> …
main
|
|
|
|
@2e247e4
|
3 months |
roboburr |
Newsletter / mailing list (premium feature #1) + SMTP wiring
Email …
main
|
|
|
|
@255e3d3
|
3 months |
roboburr |
EPK / press kit (premium feature #4): shareable /pers press page per …
main
|
|
|
|
@85d9fda
|
3 months |
roboburr |
Fix double page on back/forward (htmx history conflict)
On …
main
|
|
|
|
@b08b5bc
|
3 months |
roboburr |
SW: intercept navigations only — fix broken images after refresh
The …
main
|
|
|
|
@91d948c
|
3 months |
roboburr |
Editor: blockquote button is now a real toggle (turning it off works)
…
main
|
|
|
|
@fbc8628
|
3 months |
roboburr |
Audio upload: WAV up to 100 MB (other formats remain 50 MB)
WAV is …
main
|
|
|
|
@03af7f8
|
3 months |
roboburr |
SEO page: own style block (label-per-row, clean fields)
The …
main
|
|
|
|
@6623453
|
3 months |
roboburr |
Admin: dedicated SEO page (/admin/seo) for advanced SEO
The <head> …
main
|
|
|
|
@0dbb5c1
|
3 months |
roboburr |
Mini player: clickable on desktop → navigates to the associated post
…
main
|
|
|
|
@5c261b7
|
3 months |
roboburr |
Circle feed: "je" → "mijn" + standalone "Add sites via Admin" sentence …
main
|
|
|
|
@8e29f77
|
3 months |
roboburr |
Post: less blank space above the nav (.post-page margin-top 2rem → …
main
|
|
|
|
@74544fb
|
3 months |
roboburr |
New sites: require login to comment on by default + post nav at top
- …
main
|
|
|
|
@fee35fa
|
3 months |
roboburr |
Hub settings: hero preview properly full-width (object-fit cover …
main
|
|
|
|
@86793f9
|
3 months |
roboburr |
Hub: "give this user a Klonkt" from the users page
In hub mode each …
main
|
|
|
|
@94a876f
|
3 months |
roboburr |
Hub: removed dead host-based site resolving (slug == hostname could …
main
|
|
|
|
@f735304
|
3 months |
roboburr |
Hub: /sites/:slug → 301 to canonical /user/:slug (single URL scheme)
…
main
|
|
|
|
@586f9dd
|
3 months |
roboburr |
docs: Build & Test section filled in (npm test = node:test, in-memory) …
main
|
|
|
|
@8398935
|
3 months |
roboburr |
Tests: unit tests for the hub permissions layer (node:test, in-memory …
main
|
|
|
|