> Penombre now keeps versions of your files. For musicians and designers that means no more final-final-v3 exports, and switching between mixes mid-playback to hear what actually changed.
> Source: https://orochibraru.com/blog/penombre-file-versioning-for-artists · Site index: https://orochibraru.com/llms.txt

# Penombre versioning: stop naming your files like a hostage note

*24 September 2026*

Penombre just shipped file versioning. On paper that's a boring checkbox every drive has had since 2012. In practice, for anyone who makes things, it kills one of the dumbest rituals in creative work: inventing a naming scheme so you can find last Tuesday's mix.

## The Reaper export problem

Here's my render folder for any song I've worked on for more than a week:

- `Song-001.wav`
- `Song-002.wav`
- `Song-002 (1).wav`
- `Song-2026-09-07-23_26_16.wav`
- `Song-new-drums.wav`
- `Song-master-test-DONT-USE.wav`

Every one of those names made sense at the moment I typed it. None of them make sense now. I've tried every convention: numbered takes, date stamps from the render wildcards, suffixes for what changed. They all collapse the same way, because a naming convention is a discipline, and discipline is the first thing to go at 1am when the chorus finally sits right and you just want to hear it on something other than your monitors.

And even if *I* could decode it, nobody else can. Send that folder to the bass player and watch him play `Song-002 (1).wav` and tell you the new mix sounds great. It's the old one.

## What changes

With versioning on, I render to the same name. Every time. `Song.wav`.

Upload a file whose name already exists in the folder and Penombre replaces it instead of creating `Song (1).wav`, and the previous bytes become a version. The file shows its label next to its name (`v7`), and unfolding it lists every earlier take with its date and who made it. No convention to remember, no convention to explain. The history is the file's, not the filename's.

For the graveyard of exports you already have, there's **Merge as versions**: select the pile, order it by date or by name (numbers compared as numbers, so `-2` comes before `-10`), and it folds them into one file with the take numbers, copy suffixes and date stamps stripped off. `Song-001.wav` through `Song-2026-09-07-23_26_16.wav` become `Song.wav`, v1 to v6. Notes left on the old files move over too.

Auto ordering is a guess, and guesses are sometimes wrong: a file got touched after the fact and its date lies, or the names were never consistent to begin with. So the order isn't locked in. You can reorder the versions afterwards, and if you find a take you forgot to include, merge it in later and drag it where it actually belongs in the timeline instead of it landing on top as the newest.

## The part that actually matters: A/B in place

This is the feature I built versioning for.

When a track plays, the player gets a version picker next to the time. Switch versions and playback carries on **from the same moment**. Same second of the same chorus, different take.

That sounds minor until you've done it the old way: stop, find the other file, open it, scrub to roughly the same spot, try to remember what the snare sounded like three seconds ago. Your ears have already recalibrated by then. You're not comparing two mixes, you're comparing a mix with a memory of a mix.

Switching in place, you hear exactly what changed:

- **Composition**: did the new bridge actually earn its place, or was the old one better and I just got bored of it?
- **Arrangement**: does pulling the second guitar out of verse two open it up, or just make it thin?
- **Mix and master**: did that low-end tweak tighten the kick, or did I just make everything louder and call it better? Loudness lies. Flipping at the same timestamp makes it lie a lot less.

Every version keeps its own waveform, so you can see where a take got denser or where the master started eating the transients before you even hit play.

## Designers, this is for you too

The same mess exists in every design folder on earth: `logo_v2.png`, `logo_v2_final.png`, `logo_v2_finalfinal.png`, `logo_v2_final_THIS_ONE.png`. You know which one is actually final? Neither does your client.

Same fix. Export to the same name, or use **Upload new version** from the file's menu to replace it with whatever you picked, whatever it's called. Image and video previews have the same version picker as the player, so you can flip between iterations of a poster in place and see what moved instead of alt-tabbing between four windows. Videos keep their playhead too, which is handy for motion work.

Documents, sheets and decks edited in Penombre get versions as well: the first save of each editing session keeps what was there before you opened it, and **Save as version** pins what's on screen. Autosave does not spam a version every two seconds, because nobody wants 400 versions of a slide.

## It doesn't eat your disk

A new version is a hard link to the old bytes, so keeping one costs nothing until the file is actually replaced. Thumbnails and waveforms are linked the same way, so an old take is never rendered twice.

Restoring an old version first keeps the current one as a version, so a restore can't lose anything either.

## The tradeoff: the history lives in Penombre

This one deserves its own section, because it cuts against something I keep repeating: your files stay files.

They still do, but only the current one. On disk, your folder holds `Song.wav`, the latest version, and that's it. The earlier takes sit in a hidden `.versions` directory at the root of the drive, and it's Penombre's database that knows which of those bytes was v3 of which song, when, and by whom. Open the folder in your file manager, `ls` it, point Syncthing at it: you see the latest version and nothing else.

So the moment you turn versioning on, the history becomes something you rely on Penombre for. Your backups need to include the database and the `.versions` directory, not just the visible tree, or you're backing up the latest mix and nothing before it. And today, if you walk away from Penombre, your files come with you, but the version history as a browsable thing doesn't. You'd get the latest of everything, which is exactly what you had before, just without the timeline.

That last part is what I'm working on next: exporting a file's versions back out as they were, as plain files under a proper, consistent naming convention, downloadable as a zip. The irony isn't lost on me. A feature built to kill naming conventions will ship with one. The difference is that this one is generated, the same every time, and only exists on the way out. Penombre stops being a one-way door for your history.

Until that lands, I think it's still the right trade. The alternative is the filename circus, and that's what we're trying to get away from. But it's a trade, and you should make it knowing that.

## The fine print

Because I'd rather you read it here than find out the hard way:

- It's **off by default**. An admin turns it on under Admin → Settings → File versioning, no restart, no env var.
- Each file keeps **10 versions by default**, oldest pruned first. Admins can change that, folders can lower it for themselves (folder settings, *Inherit / On / Off*). Numbers never shift: once v1 is pruned, v2 stays v2.
- Versions count toward your storage usage.
- **Public share links serve the current file only**, never an old version. People you share with directly see versions according to their access: edit can restore and delete, view can look and download.
- Moving a file to another drive or volume leaves its versions behind. Duplicate and copy take the current bytes only.
- Read-only volumes never make versions, because nothing writes there.

Full details, including the API routes, are in [the versioning docs](/penombre/docs/versioning).

## So

Stop naming files for your future self. Your future self doesn't read them. Render to `Song.wav`, save `poster.png`, and let the drive remember the rest. Then flip between v3 and v7 mid-chorus and find out if you've actually been improving the song for the last two weeks or just moving faders around.

In my experience it's about 50/50.
