software
Saga Media
2026 · Go, SQLite, Cloudflare R2, React
A private, self-hosted library for images, videos and PDFs. Originals stay private; a cleaned copy of any of them can be published on request, and an image can be shared as a link that lasts one hour. It is one Go program with a SQLite database, storing its files in Cloudflare R2.
It serves the media on this site, and the library in these screens is the one behind the work pages.
Home (light): quick ways in to upload, browse and share a temporary link, with the most recent uploads below.
Library filtered to one collection (dark): assets as a grid, with filters for kind, tag and collection.
Library as a list (light): kind, status, dimensions, size, tags and when each asset was added.
An image's page (light): the preview on a transparency grid, its properties, tags, collections and where it is stored.
Publications on an asset (dark): each derivative can be published; the history keeps every public copy, with its URL, and every withdrawal.
An asset card's menu (light): open or download the original, copy its private URL, publish, add to collections, or delete.
Publish dialog (light): choose the derivative and confirm that it becomes public; images are re-encoded without metadata.
A video's page (dark): the player on its H.264 fallback, with the duration and the original's size beside it.
Video variants, detail (dark): the original, H.265 playback at 1080p and 720p, an H.264 fallback, a poster and a thumbnail.
Collections (light): named groups of assets, each shown as a mosaic of four of them.
A collection (dark): its assets in the same grid as the library, with Edit and Delete for the collection itself.
Bulk selection (light): four assets chosen, and a selection bar that offers Add to collection.
Add to collection dialog (dark): pick an existing collection, or type a name to create one.
Upload queue (light): five files waiting, two of the images marked to be published as full-size AVIF once uploaded; the video stays private.
Temporary image (dark): an image annotated in the browser before it is shared as a public link that lasts one hour.
Command menu, Ctrl K (light): places to go and things to do, each with its key.
Keyboard shortcuts sheet, opened with ? (dark).
Health (light): the storage audit compares database rows with stored objects; here 64 assets and 320 objects, with no issues and no orphans.