Accurate track seeking in gapless playback on Safari and iOS
v1.3.82026-07-31
Improvements
Listener uploads no longer require a contact email
v1.3.72026-07-30
Added
M4A (AAC) audio format support
Playlist settings: Data panel to show artist, ISRC and audio quality in the public player
Track DNA: mood and theme keywords
Public player: total duration next to the track count
Improvements
Playlist tracks table: audio quality shown in the Format column, new ISRC column, track count and total duration in the section header
Compact add-files row under the playlist tracks table
Wavemap tooltip simplified; replay count shown only when present
v1.3.62026-07-29
Added
Notify listeners of new files in playlist
Reorder playlists by drag and drop
Improvements
Track Analysis panel redesigned
Measured BPM snaps to the exact integer when within a hair of it
Edit track: Enter saves the dialog, and arrows move to the previous or next track
BPM, key and artist are auto-filled from the file name again when the file has no tags
Link password and expiry can be set before the first send
Cleaner playlist settings: Quality and Gapless shown as compact rows
Bug Fixes
Other UX fixes and improvements
v1.3.52026-07-25
Added
Track Analysis (Pro): every upload is analyzed automatically; BPM, key, loudness, true peak and dynamics with Producer/DJ and Engineer views, plus a spectrogram of the track
Track DNA (Pro): genre, mood and danceability descriptors computed from the audio itself
Analysis on demand for tracks uploaded before this release, with retry on failure
Trash: deleted playlists and tracks go to a Trash page and can be restored; empty trash manually or set an auto-purge period
Archive: archive playlists you are done with into their own tab; Pro can auto-archive by age
Project defaults: set your default appearance and download policy once, new playlists follow it
Default cover: upload one image used for every track and playlist without its own artwork
Studio branding on the public player
Per-event notification preferences
Extended track metadata view (Studio)
Bug Fixes
File names with accented characters no longer get garbled at upload
Restoring a playlist from trash also restores its tracks
Other bug fixes and improvements
v1.3.12026-07-22
Improvements
Playlist settings show gapless readiness in three clear stages while the streaming file builds
Deleting a playlist can now also delete the tracks it contains, in one step
Bug Fixes
Fixed bugs Gapless playback on iOS
Other bug fixes and improvements
v1.3.02026-07-21
Added
Gapless playback: multi-track playlists now stream as one continuous file, so tracks play with no gap between them, in the public player and in the admin preview.
Streaming quality per plan: Free streams MP3 320, Pro streams lossless FLAC up to 48kHz/24bit, Studio up to 192kHz/24bit. Originals are never touched; the streaming copy regenerates automatically when tracks change or the plan changes.
Embedded metadata import at upload: title, artist, album, ISRC, year, genre, composer, lyrics, BPM, key and more are read from the file's tags; the embedded cover art becomes the track cover.
Cover provenance: real artwork (embedded or uploaded) is now flagged so cover regeneration tooling can never overwrite it
Improvements
Per-listener tracking works identically in gapless mode: every play, segment and completion is still attributed to the individual track
Rendition generation is debounced and logged: uploading many tracks in a row triggers a single build instead of one per track
Bug Fixes
MP3 albums: track boundaries in the gapless file are sample-accurate
Mobile player: fixed minor bugs
v1.2.22026-07-11
Improvements
AIFF tracks now get their waveform generated on the server like every other format: it shows up for all listeners regardless of browser
Changed
M4A uploads are no longer accepted: the waveform generator cannot decode M4A and the no-transcode rule forbids converting it, so an M4A track would upload without a wavemap. Supported formats are now MP3, WAV, AIFF, FLAC and OGG
Bug Fixes
Share modal: quickly changing two settings in a row could silently revert a just-set password or expiry date
v1.2.12026-07-11
Improvements
Landing page: the "HQ Private Player" feature is now "Lossless Player", with copy that calls out it works in every browser
Bug Fixes
Keyboard accessibility follow-ups: single tab stop on file dropzones and on the "add tracks" / "new playlist" triggers, the mobile settings drawer no longer traps keyboard focus, stacked dialogs close one at a time on Escape, clearer stats table column headers, better text contrast on the public player, larger click area on sortable table column headers
v1.2.02026-07-11
New Features
More audio formats: FLAC, M4A and OGG files now upload, stream and download end to end, alongside MP3, WAV and AIFF
Improvements
Share modal redesign: choose upfront between sending by email or creating a link, schedule a send from the Send button, manage downloads, email alerts, password and expiry as compact one-click settings that apply to all links, and find every link (including scheduled sends) in a collapsible list
Full keyboard accessibility: play, seek (arrow keys on the waveform), volume and every track's play button work without a mouse on the public player, and so do sorting, dropdowns, expandable rows and dialogs across the app, all with a uniform visible focus ring
Readability: muted small text is lighter and slightly larger for proper contrast, and play-button icons are dark on the accent color instead of white
Link stats: the track list now shows every track of the playlist in playlist order, including tracks never played, each with its wavemap
Bug Fixes
Uploading several tracks at once into a playlist now preserves their alphabetical order
v1.1.12026-07-11
Bug Fixes
Notifications: downloading several tracks at once now shows a single "downloaded N files" notification instead of one per track
v1.1.02026-07-11
New Features
WaveMap redesign: the per-track listening panel now shows session-scoped replays as two clean curves (listeners and plays) with a violet replay band, skip markers, a time ruler and per-track normalization
Playing now: stats show a live "Playing now" status and a pulsing dot gliding along the WaveMap while a listener is actually playing, refreshed every few seconds
First-run guide: a data-driven onboarding guide walks new accounts through creating a track, sharing a link and getting the first listen, with one-click test-link creation and automatic navigation between steps
In-app notifications: a notifications bell in the sidebar and mobile top bar surfaces first listens, downloads and received files, with per-event read state
Add more tracks to a share: from a track page you can grow a single-track share into a full playlist without changing the listener links already sent
Access control on the track page: manage expiry, password and multiple listener links straight from the track, each track backed by its own share container
Bulk track removal: remove several tracks from a playlist at once, with an option to also delete them from the library
Improvements
Stats: KPI sparklines draw in animated on the dashboard and stats pages; long session histories collapse behind a show-all control
Playlists: default to list view; the whole page is one drop area and the add-tracks dropzone sits below the Extra and Received sections
Bug Fixes
Mobile: admin top bar shows the brand logo; horizontal overflow removed on the Playlist and Track pages; tap-to-open on the Tracks list
Tracks table: long titles no longer collapse the other columns
Stats: restored the playlist and track scoped Stats link; the "opened" alert fires when the link is opened; your own opens no longer notify you
Player: restored audio preload for tracks without a waveform
Themed pages: overlays are fully opaque and modals dismiss safely after text selection
v1.0.02026-07-04
New Features
Downloads: allow downloads on a playlist and listeners can save a single track or everything at once as a zip; every download is tracked
Attachments: add extra files to a playlist (artwork, PDFs, stems, project files), delivered next to the music
Receive files: listeners and clients can send files back to you directly from the player; you get an email for each delivery and see everything grouped by contact in a Received section
Email workflow: send your playlists by email directly from the site, get notified when someone opens or downloads them for the first time, and re-notify listeners when a shared playlist changes
Big uploads: large files upload in resumable chunks, so a dropped connection picks up where it left off; up to 2GB per file
Open signup: anyone can create an account, with email verification or directly with Google
Plans: trakk'em now has three tiers (Free, Pro and Studio) with a monthly or annual Pro subscription, managed from your account
Founder gift: every account existing at launch gets 6 months of Pro for free
Referral program: invite other creatives with your personal link and earn extra storage and free Pro months
Access control: set an expiry date and a password on a playlist, applied to all its links at once
Audio quality: format, bitrate, sample rate and bit depth of each track shown in the library and on the track page
New landing page and pricing page, redesigned login and signup
Improvements
Account: new account menu with Account, Settings, Subscription and Referral pages
Playlists: per-playlist artist name shown in the public player; a track shows its own artist only when it differs
Playlists: download and email-notification switches available per track too, not only per playlist
Playlists: the whole playlist page is one drop area; audio joins the tracklist, everything else becomes an attachment
Contacts: the address book now stores an email per contact, used for sending and notifications
Library: add several tracks to a playlist at once with shift-select; card or list view on the playlists page
Stats: deleting a track also removes its listening data, so playlist and link totals always match the current tracks
Storage: music and files moved to cloud storage, so the library grows without limits
Updates without hiccups: after a release you always get the newest version of the site, and planned work shows a proper maintenance screen
UI and UX: clearer error messages, loading states and delete confirmations across the whole admin, plus consistent colors, wording and accessibility fixes
Bug Fixes
Uploads: a finished upload could be reported as failed or duplicated; progress is now accurate and empty files are rejected with a clear warning
Player: fixed deleting a track while it plays, waveform loading, and the artist shown on the public player
Notifications: the "opened" alert now fires when the link is opened, not at the first play
Reliability: a deep review pass fixed dozens of small issues across uploads, playback stats, accounts and billing
v0.12.02026-06-06
New Features
Track page redesign: edit title, artist, BPM and key inline, upload cover art with drag and drop, set theme, background color and description, see which playlists the track appears in, and add it to a playlist from there
Stats redesign: three tabs (Shares, Playlists, Songs) with a period filter, key numbers at a glance, expandable rows with per-track detail and a listening waveform, and a verdict for every share (Heard all, Partial, Skipped, Replayed, Not opened)
Sharing reworked: Contacts is now a global address book, and every contact gets their own private link for each share
Direct track sharing: send a single track without creating a playlist; it keeps its own look and settings
Improvements
Track appearance (theme, colors, cover, description) carries over when the track is shared directly
Stats: sent and opened counters, trend sparklines, and the same clear columns across all three tabs
Stats: cleaner expanded track panel; song titles expand the row instead of leaving the page
File size and format of each track are now captured at upload
v0.11.02026-05-22
Improvements
Playlists edit page: UI and UX improvements
Getting Started tutorial: mobile layout redesigned
Bug Fixes
Getting Started tutorial: steps 2 and 3 were both checking playlist count instead of track and recipient count respectively — all four steps now derive their state from the correct metric
v0.10.02026-05-21
New Features
Dashboard Getting Started tutorial
Playlist edit page redesign
Inline track editing directly from the playlist, with Title/Artist swap button and multi-playlist warning
Drag and drop files directly onto the tracks table, both in Tracks Library and Playlist page
Tracks Library: Playlists column shows which playlists each track belongs to, with direct links
Improvements
Review Tracks modal: Skip/Save buttons right-aligned, single-track mode auto-closes on save, multi-track auto-closes after last save
Title/Artist swap button available in both Review Tracks and Edit Track modals
Auto-fill now strips leading track numbers from filenames (e.g. "03 Title", "24. Title")
Filename format hint always visible below the upload zone
Private links: Copy and Open buttons always visible without hovering
Empty playlists page now shows the creation form inline, no extra click needed
"Tracks" renamed to "Tracks Library" in the sidebar
v0.9.02026-05-19
New Features
Link protection: per-link expiration date and password (bcrypt) for private playlist links
Sessions tracking: each link open is recorded as a distinct session (UUID per page mount), surfaced in stats next to plays
Idle-flush guard: paused-and-forgotten plays are recorded after 30 min of inactivity instead of being lost
Settings: newsletter opt-in / opt-out
Sidebar icons on every admin nav entry
Broadcasts: feature to send emails to opted-in users
Improvements
private link list is newest-first across edit page and modals
Stats legend matches the actual server thresholds (80% / 20%)
Public playlist tagline updated to "Private music sharing for audio creatives"
NextIcon in the player redrawn as a clean mirror of PrevIcon
Singular / plural agreement throughout the stats page
Bug Fixes
Owner plays are no longer tracked via sendBeacon (client-side gate complements the server JWT check)
Geolocation now reads CF-Connecting-IP behind Cloudflare instead of the edge node IP
Deleting a private link removes its play / download events; orphans from older deletions are cleaned at boot
User deletion no longer fails on legacy FK references (invite_tokens.used_by_user_id and broadcast_emails.sent_by)
Completion thresholds aligned to the documented 80% / 20% rule
Open Graph preview tags are consistent
Marketing-consent preference now persists via a dedicated PATCH endpoint
Deploy script self-heals when package-lock.json drifts on the server
v0.8.02026-05-18
New Features
Batch upload: drag-and-drop or multiple file selection, automatic metadata parsing from filename, review modal
Multi-select in Tracks: batch delete and edit
OG metadata for public playlist pages (social previews)
Storage usage shown in Tracks page (used and available space)
Bug Fixes
Fixed stats display issue on mobile
Mobile layout fixes
v0.7.02026-05-16
New Features
User Dashboard
Track search feature in playlist edit page
Improvements
Improved stats calculation and stats page layout
New private links generation system
Layout improvements to Playlists, Tracks and Stats pages
Mobile layout fixes
v0.6
New Features
Improved Statistics page: advanced play event tracking with completion rate, skip detection, partial plays, avg listening time, device split, geographic data, breakdown bar visualization, recipient details with per-track breakdown, sparklines, period comparison, most played tracks card
Improvements
Mobile responsive fixes across admin pages
Footer with legal links
Cookie banner with Google Analytics consent
v0.5
New Features
Trakkem rebrand: new name, logo, custom font, and accent color
Custom domain trakkem.app with SSL certificate
Waitlist system: users can request access from the home page
Invite system redesign: dedicated Invites page with pending waitlist badge in the sidebar
Username support for custom playlist URLs
Automatic cover generation for new playlists using fluid gradient algorithm
Settings sidebar in the edit playlist page: theme selector, custom background color, show contact info toggle, and hide cover toggle