Sortund is an innovative mobile music manager that uses AI to automatically tag and organize your local media library. Forget about messy tracks — we analyze music on your device and structure it by genres, mood, and other parameters.
The project is built on the principles of a monorepo and microservices architecture.
- Frontend (Expo/React Native): Client-side application that works with the device's media library and a local database (SQLite).
- Backend (NestJS): Central API for authorization, profile synchronization, and user data management.
- AI Worker (FastAPI on Hugging Face): Service for audio classification based on neural networks.
- Local-First: All music data is stored in local SQLite.
- Scan Engine: Uses
expo-media-libraryandreact-native-audio-metadatafor scanning and background analysis. - Smart Upload: Sends only compressed audio fragments (30 sec) to minimize user traffic.
- On-Demand Processing: Analyzes audio fragments via
multipart/form-datarequests. - Stateless: Does not store user files; processing occurs in memory (RAM).
- Scalable: Easily scalable and replaceable with more powerful models without client-side changes.
- Auth & Data: Account management and metadata storage.
- Orchestrator: Coordinates requests between the mobile app and the AI worker.
- Monorepo: Turborepo
- Frontend: Expo, React Native, TypeScript, SQLite
- Backend: NestJS, PostgreSQL (via Render)
- AI: FastAPI, Python, Hugging Face models
- Scanning: User uploads a track.
- Analysis: The app selects track fragments and sends them to the AI worker.
- Storage: The received tags are written to the local DB.
- Offline: After the first scan, the app works entirely offline.
# Install dependencies
pnpm install
# Run entire project (Turborepo)
pnpm dev
# Run specific worker
pnpm dev --filter=ai-worker
Created using the "Serverless AI Inference" architectural approach.