What changed
Dated, versioned notes since the first private build. RSS.
1.8.1 Redirect loops
Fix a redirect loop on one legacy path after the move.
1.8.0 New domain
Site moved; old feed URLs redirect, archive migrated with dates.
1.7.4 Cover cache
Covers serve with correct cache headers.
1.7.3 Known limitations page
A single page listing what the host does not do.
1.7.2 Bulk draft upload
Upload several episodes at once as drafts.
1.7.1 Region label in API
Return the region in /me and /health.
1.7.0 Asia-Pacific region
Tokyo region opens, independent like the rest.
1.6.7 Timeline ruler
Episode page shows a timeline with chapter marks.
1.6.6 Embed on strict sites
Loosen a header so the embed frames on more sites.
1.6.5 Embed generator
Build and preview an embed from the episode page.
1.6.4 Sweep watchdog
Restart a wedged background sweep automatically.
1.6.3 Wizard autosave
Migration progress saves to your account as you go.
1.6.2 Migration wizard
A saved checklist for moving from another host.
1.6.1 CSV encoding
Export CSV as UTF-8 with a header row.
1.6.0 Analytics CSV
Download a show's daily play counts as CSV.
1.5.5 Dashboard charts
A small 30-day play chart per episode.
1.5.4 Token last-used
Record a token's last-used time accurately.
1.5.3 Faster export
Export compresses in a stream; large accounts no longer time out.
1.5.2 Chapter ordering
Chapters sort by start time regardless of input order.
1.5.1 Riga region closed
Riga is shut down; data was exportable until today.
1.5.0 Chapter markers
podcast:chapters from a small JSON file.
1.4.8 Riga region closing
Riga region closes 2024-05-01; export and re-register.
1.4.7 Validation fields
422 responses list the exact fields that failed.
1.4.6 Feed GUID stability
Episode guids never change once assigned.
1.4.5 Error envelope
One error shape with request_id across every path.
1.4.4 Disk guardrail
Pause uploads below 3 GB free; alert earlier.
1.4.3 v0 API closed
/api/v0/ now returns 410 Gone and points to v1.
1.4.2 Health checks
/health does a real write-and-read round trip.
1.4.1 Status disk check
Disk check reads the data volume, not the root.
1.4.0 Status page
Live component states and an incident history.
1.3.8 Range edge cases
Handle open-ended and suffix byte ranges correctly.
1.3.7 Account deletion
Delete the account and every file after a password check.
1.3.6 Cover signature
Reject covers whose bytes are not really PNG or JPEG.
1.3.5 Feed performance
Tighter queries for shows with long back catalogues.
1.3.3 v0 deprecation notice
v0 API will retire on 2023-06-30; use v1.
1.3.2 Session list
List and end active sessions from the dashboard.
1.3.1 Export of large libraries
Stream the export zip to avoid memory spikes.
1.3.0 Data export
Export a ZIP of all shows, episodes and audio.
1.2.5 Quota messages
Clearer message when an upload would exceed the quota.
1.2.4 Slug collisions
Show slugs disambiguate automatically on collision.
1.2.3 Dashboard polish
Clearer episode states and inline errors.
1.2.2 Timezone in pubDate
pubDate now always in RFC 822 UTC.
1.2.1 Scheduling
Schedule episodes for a future time; they self-publish.
1.2.0 Podcasting 2.0
podcast:guid and podcast:locked in every feed.
1.1.6 Feed cache headers
Feeds send sensible Cache-Control for CDNs and apps.
1.1.5 M4A validator
Fix an off-by-one that rejected valid M4A box orders.
1.1.4 CSRF on logout
Logout now requires the CSRF token for cookie sessions.
1.1.3 Second region
An independent European region with its own storage.
1.1.2 Rate limits
Per-identifier limits with Retry-After on sign-in and contact.
1.1.1 OpenAPI drift
Serve the docs from the live OpenAPI document.
1.1.0 API v1
Public API: tokens, shows, episodes, uploads, stats.
1.0.4 scrypt hashing
Password hashing moved to scrypt with stored parameters.
1.0.3 Faster uploads
Stream uploads to disk instead of buffering whole files.
1.0.1 Cookie flags
Session cookie now uses the __Host- prefix.
1.0.0 Public beta
Open registration, polished dashboard, stable feed.
0.9.9 HEAD requests
HEAD now returns headers without a body for audio and pages.
0.9.8 Embed player
Embeddable player at /embed/<id> with frame-ancestors *.
0.9.6 Duration rounding
MP3 durations off by a second on some VBR files; fixed.
0.9.5 Play counting
Count de-duplicated plays per episode and day.
0.9.4 Feed escaping
Escape special characters in titles and descriptions correctly.
0.9.3 Range streaming
Audio answers byte-range requests; seeking works.
0.9.2 M4A uploads
Accept M4A alongside MP3; type checked by signature.
0.9.0 Private beta
Accounts, one show, MP3 upload and a basic RSS feed.