← All templates

Music DAW

Creative Tools · React + Node (Express) · 19 @molecule/* packages

Soundtrap-like digital audio workstation with tracks, instruments, effects, and mixer — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • tracks
  • instruments
  • effects
  • mixer
  • export
  • subscriptions

Screens (15)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Projects /projects (signed in)
  • Editor /projects/:id (signed in)
  • Samples /samples (signed in)
  • Mixing /projects/:id/mix (signed in)
  • Settings /settings (signed in)
  • PianoRoll /projects/:id/clips/:clipId (signed in)
  • SampleDetail /samples/:id (signed in)
  • Profile /profile/:handle (signed in)
  • Billing /settings/billing (signed in)

Data model (13 tables)

  • music_projects — id, user_id, name, bpm, time_signature, duration, is_public, created_at, …
  • audio_tracks — id, project_id, user_id, name, type, instrument_id, volume, pan, …
  • audio_effects — id, track_id, user_id, type, parameters, enabled, position, created_at, …
  • audio_exports — id, project_id, user_id, format, quality, sample_rate, status, output_url, …
  • instruments — id, user_id, name, category, type, settings, created_at, updatedAt
  • samples — id, user_id, name, url, bpm, music_key, length_sec, waveform_peaks, …
  • clips — id, track_id, user_id, kind, start_time, duration, source_url, notes, …
  • midi_notes — id, clip_id, user_id, pitch, velocity, start, duration, created_at, …
  • collaborators — id, project_id, user_id, collaborator_user_id, invitee_email, role, invited_at, joined_at, …
  • user_preferences — user_id, data, created_at, updatedAt
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • tags — id, name, slug, color, description, createdAt, updatedAt
  • resource_tags — id, tagId, resourceType, resourceId, createdAt

API (10 handlers)

  • clips api/src/handlers/clips.ts
  • collaborators api/src/handlers/collaborators.ts
  • effects api/src/handlers/effects.ts
  • exports api/src/handlers/exports.ts
  • instruments api/src/handlers/instruments.ts
  • midi_notes api/src/handlers/midi_notes.ts
  • preferences api/src/handlers/preferences.ts
  • projects api/src/handlers/projects.ts
  • samples api/src/handlers/samples.ts
  • tracks api/src/handlers/tracks.ts

Subscription tiers

free / pro / team — gated by: maxEffects, maxExports, maxInstruments, maxProjects, maxTracks, advancedFeatures, canExport, retentionDays

Built from 19 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • S3_BUCKET S3 bucket for audio storage

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing