Skip to content
Creative ReasonCreative Reason
00Case Study

CR / 001

A local-first workspace for turning messy sample libraries into production-ready material.

  • Product Design
  • Design Engineering
  • Frontend Engineering
  • Audio UX

CRATE started from a simple frustration: I had large sample folders full of useful sounds, but organising and preparing them was slow enough that I often avoided the process entirely.

I wanted one focused workflow that could take a producer from raw folder → curated material → usable chops and loops without bouncing between Finder, preview tools and a DAW.

Launch Crate — coming soon
Crate home screen — crate list and workspace overview
Crate Triage — classification complete summary
Crate Export — selected assets ready to render

Case study

The problem

Sample collections become chaotic quickly.

A producer might have hundreds or thousands of loops, drums, vocals and textures, but working through them usually means repeatedly previewing files, moving them manually, opening a DAW to inspect waveforms and then exporting anything useful.

The problem was not a lack of tools.It was the fragmented workflow between them.

The solution

I designed CRATE around one clear journey:

  1. Triage
  2. Chop
  3. Loop
  4. Export

In Triage, producers rapidly audition sounds and classify them as Keep, Maybe or Trash.

When CRATE is given explicit access to a sample folder, it can safely reorganise those original files into matching folders without permanently deleting anything.

Interesting moments can become QuickLoops, which carry through to dedicated Loop and Chop workspaces for refinement, processing and export.

The result is deliberately narrower than a DAW: CRATE focuses on making decisions about the samples you already own.

Key product decisions

Local-first by design
Audio, project state and processing stay on the user's device. CRATE requires no account, cloud storage or backend.
Temporary ≠ permanent
Dragging across a waveform creates a temporary Selection. A Chop only becomes permanent after the user explicitly creates it.
Loop ≠ Chop
Opening a saved Loop in Chop transfers its boundaries as a temporary selection rather than silently duplicating assets.
Safe filesystem access
Normal file import is read-only. Physical sample organisation only happens after the user explicitly grants managed-folder access.

Engineering challenges

The most interesting work sat at the boundary between product behaviour and browser systems.

I had to solve problems including:

  • reliable browser audio lifecycle management
  • realtime and exported FX consistency
  • IndexedDB persistence for audio-heavy projects
  • safe filesystem moves with verification and failure handling
  • large-folder scanning without overwhelming the browser
  • portable .crate projects without leaking filesystem permissions
  • persistence races during immediate reload/close
  • production CSP and security hardening

One example came late in the release process: an immediate reload could occur before the normal autosave debounce completed. Rather than simply shortening the delay, I added lifecycle-aware persistence so pending canonical state is flushed when the page is leaving.

Outcome

CRATE shipped as v1.0.0 and became the first released product from Creative Reason.

The final Web MVP includes:

  • rapid Keep / Maybe / Trash triage
  • managed sample-folder organisation
  • waveform-based Chop and Loop workflows
  • BPM, key and transient analysis
  • pitch, EQ, filtering, Drive, Vinyl and Character processing
  • local persistence and portable .crate projects
  • batch rendering and ZIP export
  • responsive layouts and production security hardening

The release passed 197 unit tests, 74 end-to-end tests, production security validation and real-browser acceptance.

My role

I led the project across the full product loop:

  1. Problem definition
  2. UX
  3. Interaction model
  4. Visual design
  5. Architecture
  6. Implementation direction
  7. Testing
  8. Release

CRATE is the kind of work I want to keep doing: identifying friction, designing a clearer system, and engineering the experience all the way through to a shipped product.

Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind
  • Web Audio API
  • WaveSurfer
  • IndexedDB
  • File System Access API
  • Meyda
  • Playwright