Audio Shifter is a full-stack SaaS application that helps content creators generate, convert, and manage AI-assisted audio assets. The system combines modern web technologies with a scalable cloud-backed architecture, enabling users to store and organize audio files through a clean, intuitive interface while abstracting away the complexity of the underlying AI workflows.
Note
Decoupled Storage Architecture: Rather than storing large files directly in the database or relying on a single storage layer, Audio Shifter uses a decoupled storage architecture.
- Metadata: Supabase handles the relational data (file names, user IDs, timestamps).
- Binary Data: Cloudflare R2 serves the actual audio files.
This reduces database bloat, lowers egress costs, and ensures that the application can scale to handle thousands of high-fidelity audio assets without performance degradation.
- Frontend: Next.js (App Router), React, TailwindCSS
- Backend/Database: Supabase (PostgreSQL) for user metadata, library records, and session management.
- Object Storage: Cloudflare R2 for high-performance, S3-compatible audio file hosting.
- APIs: Eleven Labs API for state-of-the-art voice synthesis and conversion.
- Node.js 18+
- Supabase Account (Project URL & Anon Key)
- Cloudflare R2 Bucket (Access Key & Secret)
- Eleven Labs API Key
-
Clone the repository:
git clone https://github.com/Atswik/Audio-Shifter.git cd audio-shifter -
Install dependencies:
npm install
-
Configure Environment Variables: Create a .env.local file and add your credentials:
NEXT_PUBLIC_URL=http://localhost:3000 NEXT_PUBLIC_SUPABASE_URL=your_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_url ELEVENLABS_API_KEY=your_api_key R2_BUCKET=your_bucket_name R2_ENDPOINT=bucket_endpoint R2_PUBLIC_URL=your_public_url R2_ACCESS_KEY_ID=your_access_key R2_SECRET_ACCESS_KEY=your_secret_access_key
-
Run the development server:
npm run dev
Have questions or ideas? Reach out or connect via GitHub!