VocalVault is an enterprise-grade, browser-based voice data pipeline engineered to collect user audio natively through the web and stream it directly into Google Drive.
Built with a completely decoupled architecture, it leverages Next.js (React) for a highly responsive frontend and FastAPI (Python) for a fast, streaming backend. Both environments are now deployed completely as Serverless functions on Vercel.
- Frontend: Next.js 15 (Turbopack) + TailwindCSS
- Features: Native
MediaRecorderAPI handling,.webmbrowser wrapping, interactive Terms and Conditions UI, Glassmorphism aesthetic powered by Framer Motion. - Analytics: Integrated with Vercel Analytics to track visitors, page views, and interactions.
- Features: Native
- Backend: FastAPI + Google Drive API
- Features:
- Serverless-ready deployment on Vercel (
@vercel/python). - Local OAuth2 Flow: Completely bypasses Google's strict Service Account storage limits by securely acquiring a persistent personal token.
- Advanced regex name sanitization and UTC timestamping for robust file identification.
- Strict CORS policies.
- Serverless-ready deployment on Vercel (
- Features:
Open a terminal in the audio-backend folder:
cd audio-backend
# Create and activate a Virtual Environment
python -m venv venv
.\venv\Scripts\activate # (Windows)
# source venv/bin/activate # (Mac/Linux)
# Install Dependencies
pip install -r requirements.txt
# Start the Server
uvicorn index:app --reload --port 8000- Get an OAuth2
credentials.json(Desktop App) from your Google Cloud Console. - Drop it directly into the
audio-backendfolder. - Configure your target Drive Folder ID inside
.env:MASTER_FOLDER_ID=your_id_here
- On your first boot, it will open a browser to authenticate you exactly once, creating a permanent
token.jsonortoken.pickle.
Open a second terminal in the audio-frontend folder:
cd audio-frontend
# Install node modules
npm install
# Start the dev server
npm run devOpen http://localhost:3000 in your browser.
Both the Frontend and Backend are configured for zero-config serverless deployment on Vercel.
The backend is structured to compile as a Serverless API via vercel.json.
- Deploy: Follow standard Vercel import for the
audio-backendfolder. - Environment Variables Needed:
MASTER_FOLDER_IDFRONTEND_URL(e.g.,https://your-frontend-app.vercel.app)OAUTH_TOKEN_JSON: In production, do not commit yourtoken.jsonfile. Instead, copy the full dictionary text inside your localtoken.jsonand paste it here!
The frontend imports effortlessly to Vercel as a standard Next.js application.
- Deploy: Follow standard Vercel import for the
audio-frontendfolder. - Environment Variables Needed:
NEXT_PUBLIC_BACKEND_URL: The live URL of your Vercel backend (e.g.,https://your-backend.vercel.app).
- Analytics: Vercel Analytics are pre-configured. Ensure it is enabled in your Vercel project dashboard.
.env,token.json, andcredentials.jsonare strictly ignored in.gitignoreto prevent API key leaks.- FastAPI CORS securely locks incoming payload requests specifically to the designated Next.js frontend host.