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
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
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
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-realtime-socketio@molecule/api-resource-payment@molecule/api-resource-tag@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/api-uploads-s3@molecule/app-audio-howler@molecule/app-billing-react@molecule/app-command-palette@molecule/app-drag-drop@molecule/app-file-upload@molecule/app-keyboard-shortcuts@molecule/app-realtime-socketio@molecule/app-timeline
Required secrets
DATABASE_URLPostgreSQL connection stringS3_BUCKETS3 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