Practice. Notice. Improve.
StudioLoop is a practice journal for vocalists and instrumentalists.
It helps music students keep track of what they practised, how long they spent, and what they noticed along the way.
The project is currently in its foundation stage.
Practice notes tend to end up everywhere:
- notebooks,
- voice recordings,
- messaging apps,
- random documents,
- or nowhere at all.
StudioLoop brings them into one place.
A practice session might look like this:
Piece: Bir Derdim Var
Duration: 35 minutes
Date: 26 July 2026
Notes: Breath support became weaker during the chorus.
Over time, these small records should make it easier to notice patterns, plan the next session, and understand progress more clearly.
The first version focuses on a simple loop:
Choose what you practised
↓
Record the session
↓
Add notes
↓
Review your history
↓
Notice patterns over time
The initial product will include:
- personal accounts,
- repertoire management,
- practice-session history,
- and a simple weekly overview.
Audio feedback, teacher collaboration, social features, and AI-assisted analysis are outside the initial release.
The first vertical slice is intentionally small:
- Enter a completed practice session.
- Submit it through the web application.
- Validate the submitted data.
- Save it through the API.
- Persist it in PostgreSQL.
- Display it in the session history.
This gives the project its first complete path from the browser to the database and back.
studioloop/
├── apps/
│ ├── web/ # Frontend application
│ └── api/ # Backend API
│
├── docs/
│ ├── 00-product/
│ ├── 01-features/
│ └── 02-architecture/
│ └── adr/
│
├── package.json
├── pnpm-workspace.yaml
└── README.md
StudioLoop uses a monorepo so that frontend and backend changes can evolve together while keeping application boundaries explicit.
Shared packages will be introduced only when there is a clear reusable boundary.
StudioLoop is built one vertical slice at a time.
Product requirements and domain rules are defined before implementation. Technical complexity is introduced only when a feature creates a real need for it.
Important architecture decisions are recorded in ADRs together with their context, alternatives, and consequences.
The product scope, first feature specification, domain model, and initial workspace structure are in place.
The next milestone is the first runnable vertical slice: creating a practice session and displaying it in the session history.
- Node.js 22
- pnpm 11
Installation and development commands will be added when the first runnable web and API applications are available.