Studioflow is a simple, fast, and collaborative web app for music creators, including producers, vocalists, and collaborators, to work together on songs, share ideas, and manage project assets.
- Collaborate: Share project files and invite collaborators.
- Streamlined: Lightweight web client and a small Express API.
- Portable: Sync your own Google Drive assets with cloud storage.
- React + Vite
- Express
- Prisma
- AWS S3 / compatible object storage
- Google Drive integration
apps/web: React + Vite clientapps/api: Express APIpackages/shared: shared types and contractsinfra: local development infrastructure config
- Install dependencies:
npm install
- Start local infrastructure (optional first run):
docker compose -f infra/docker-compose.yml up -d
- Run API and web app:
npm run dev
Use a single root environment file.
- Copy
.env.exampleto.envin the project root. - Set values in root
.envfor both API and web. - Do not create app-specific env files in
apps/apiorapps/web.
- Ensure root
.envhasS3_REGION,S3_ENDPOINT,S3_BUCKET,S3_ACCESS_KEY_ID, andS3_SECRET_ACCESS_KEYset. - Confirm bucket CORS allows your frontend origin if you download directly from browser contexts.
- Confirm the IAM credentials have at least:
s3:PutObject,s3:GetObject,s3:DeleteObject, ands3:ListBucketfor your bucket. - Run storage validation:
npm run storage:check --workspace @studioflow/api
- A successful check prints bucket, region, and endpoint confirmation.
- Local debugging: see
apps/api/srcandweb/srcfor app entry points. - Run storage check:
npm run storage:check --workspace @studioflow/api
Made by Jett2Fly