A simple monorepo for a synced-music app:
- Server: Node 18+ TypeScript (Express + ws)
- Client: Flutter (mobile + web)
WaveSync/
├─ server/
│ ├─ src/
│ │ └─ index.ts
│ ├─ .env.example
│ ├─ Dockerfile
│ ├─ package.json
│ └─ tsconfig.json
├─ client/
│ ├─ lib/
│ │ └─ main.dart
│ ├─ web/
│ │ ├─ index.html
│ │ └─ manifest.json
│ ├─ analysis_options.yaml
│ ├─ pubspec.yaml
│ └─ README.md
└─ .gitignore
- Requirements
- Node 18+
- Flutter 3.x (for mobile + web)
- Server deps:
cd server; npm install- Flutter (first time):
cd client; flutter pub getcd server; npm run devThe server listens on http://localhost:4000 and WebSocket at ws://localhost:4000/ws.
- Web:
cd client; flutter run -d chrome- Mobile (example Android emulator):
cd client; flutter run -d emulator-5554Copy server/.env.example to server/.env and adjust if needed. No third-party secrets are included.