My collection kept growing and I kept reaching for the same records. The rest sat on the shelf. My record club's monthly pick often went unplayed. Spines are hard to read in low light, so I cataloged everything online, and its shuffle kept serving the same handful of albums.

Crate fixed it with one rule. Shuffle draws only from records I haven't played this cycle. When every record has had its turn, the cycle closes and a new one starts. One full cycle: all 128 records in 141 days. Records I'd forgotten I owned came back into rotation.

Then friends wanted their own. Crate went from a personal tool to an invite-only app, one product with every collector's data walled off from the rest.

My public crate page: a grid of album covers with mood tags, play counts, and a cycle progress bar.
My public crate. The bar at the top tracks the current cycle.

Shuffle in cycles.

Nothing gets buried. Shuffle only picks from what you haven't played yet. Filter by mood or genre and it still respects the cycle.

One tap to log a play.

The record is spinning across the room. Logging it takes one tap. Every record shows its plays this cycle and all time, and the history turns into stats: most played, never played, top artists, top decades.

Crate stats tiles: total plays, records played, unplayed, cycle progress, top artist, top genre, top decade, and wantlist.
Stats from my public page.

Mood Patterns.

Eight views of how you listen: your forgotten moods, your streaks, what you play by day of week and time of day, and how the balance shifts over time. An empty view invites you to play more instead of looking broken.

Mood Patterns on a phone: mood mix donut at 84 percent Move, forgotten mood, cycle mood balance, and current streak. Mood Patterns continued: most played record per mood, day of week and time of day heat maps, and a balance over time line chart.
Mood Patterns from my own listening, on a phone.

Liner notes for every album.

Short notes on the stories behind the record: who played, what happened in the studio, what came next. Written for that album, not a copied artist bio. Sources shown when it had to look something up. Spot a mistake and flag it.

An album page on a phone showing play counts, a mood tag, and liner notes on the recording, trivia, and history.
Liner notes for one album, on a phone.

A cycle worth finishing.

Close a cycle and Crate marks it quietly: a narrated recap of what you played, a saved cycle history, and a share card.

Your crate, your way.

Every collector names their own crate. Mine is Elbrink's Crate. The name follows you through the app: the top bar, the browser tab, every share card. Set your own moods and pick from eight themes, with a tap to preview before you commit. Your public page wears the same colors.

The theme picker showing eight color themes, with Midnight Blue selected.
Eight themes. Tap one to preview it before you apply it.

Share it when you want to.

Every collector can turn on a public, read-only page with their collection and stats. It's off until you turn it on. Usage tracking is opt-in too.

Invite-only.

Google sign-in and an invite list. Your collection syncs from your online catalog, removals included, along with artist pages and your wantlist. Leave any time and your account goes with you.

AI that's allowed to guess, but not allowed to show you a guess.

How: every liner note comes back with an honest confidence score. Anything under 0.7 is dropped on the server before you see it. On one album, the AI named a famous producer who never touched the record. It scored that note 0.68. The floor caught it.

Why: early versions told the AI to stay silent when unsure, and it went silent on The Dark Side of the Moon, All Eyez on Me, and Pulse. Letting it write freely and filtering on the server gets more notes and fewer mistakes.

A score isn't enough.

How: one note shipped at 0.95 confidence while talking about the AI itself instead of the album. Now a filter catches those. Sources are kept only if the search actually returned them, and piracy and store sites are blocked.

Why: confidence measures how sure the AI is, not whether the note belongs on the page. The server checks both.

An editorial bar, not just a style guide.

How: the AI is told that any fact on the back of the jacket or in every encyclopedia summary is below the bar. Lead with what a collector wouldn't already know.

Why: accurate but bland is a failure too. The notes have to be worth reading.

Mood is read from what you play.

How: each record carries mood tags, from its genre, an AI suggestion, or you. Every play logs that record's moods. One play is noisy. Hundreds of plays show the pattern.

Why: no one wants to fill out a form while a record spins. The first version asked for a mood, and nobody did it.

AI suggests. You approve.

How: AI can only suggest moods from your own list. A review screen shows every proposed change before anything is saved. Tags you set by hand are never overwritten.

Why: it's your collection. You should know exactly what changed in it.

The recap never waits on AI.

How: the numbers come from your stored plays. AI writes only the lines that connect them, once, and those are saved. If the AI is down, the recap still arrives.

Why: finishing a cycle takes months. The moment shouldn't depend on a service being up.

Every cycle is kept.

How: each play is logged as an event, and cycle status is worked out from those events. The database itself saves each finished cycle.

Why: the app used to do the saving, and one morning it lost a real cycle. Moving it into the database means it can't happen again.

One app, many collectors.

How: every collector's data is walled off at the database. Before friends joined, a sweep found the share image still had "Elbrink's Crate" written into it.

Why: a friend's share card would have carried my name. Multi-user means checking every place the app assumed it was mine.

Its own product, not a skin.

How: the service the collection syncs from is named only where you connect your account and in Settings. Automated checks guard the screens where it used to slip through.

Why: Crate has its own voice. A data vendor's name across the screen makes it read like a skin on someone else's product.

Light by design.

How: one file per page, no framework, no build step. It installs to a phone home screen like an app.

Why: fast to load, cheap to run, little to break.

Every record on the shelf was bought for a reason. Now each one gets its turn.