A web version of the popular ViMusic Android app — now with Google login + cloud sync via Supabase.
Uses the exact same SQLite schema as the original app. So, Your playlists, favorites, play counts — everything stays intact.
- Full cloud sync with google login(Supabase Storage)
- Guest mode, supports old vimusic databse
- Favorites, playlists, reorder songs
- YouTube search (official API)
- Beautiful player with shuffle/repeat
- Import / Export
.dbfile
Frontend: React 18 + Vite + TailwindCSS + Lucide Icons
Backend: Node.js + Express + better-sqlite3
Auth & Storage: Supabase (Google OAuth + Storage)
Database: SQLite (ViMusic Android compatible)
- Node.js (v14 or higher)
git clone https://github.com/ab007shetty/ViMusic.git
cd vimusic# Navigate to backend directory
cd backend
# Install dependencies
npm installAdd the following to .env:
PORT=5000
# Supabase Configuration
SUPABASE_URL=https://username.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key# Start backend server
npm run devBackend will run on http://localhost:5000
# Navigate to frontend directory (from root)
cd frontend
# Install dependencies
npm installAdd the following to frontend .env:
VITE_API_URL=http://localhost:5000/api
VITE_YOUTUBE_API_KEY=get_it_from_gcp
# Supabase Configuration
VITE_SUPABASE_URL=https://username.supabase.co
VITE_SUPABASE_ANON_KEY=anon_key# Start frontend development server
npm run devFrontend will run on http://localhost:3000
|-- backend
| |-- package-lock.json
| |-- package.json
| |-- public
| | +-- database
| | |-- empty.db
| | +-- vimusic.db
| |-- scripts
| | |-- syncGuestDatabase.js
| | +-- testSync.js
| +-- server.js
|-- eslint.config.js
|-- frontend
| |-- index.html
| |-- package-lock.json
| |-- package.json
| |-- postcss.config.js
| |-- public
| | +-- images
| | |-- beats.jpeg
| | |-- default.jpg
| | |-- high.jpeg
| | |-- kannada.jpg
| | |-- low.jpeg
| | +-- peace.jpeg
| |-- src
| | |-- App.jsx
| | |-- components
| | | |-- AccountSettingsModal.jsx
| | | |-- Header.jsx
| | | |-- LoginModal.jsx
| | | |-- Player.jsx
| | | |-- PlaylistCard.jsx
| | | |-- Sidebar.jsx
| | | |-- SongCard.jsx
| | | +-- SortFilter.jsx
| | |-- contexts
| | | +-- PlayerContext.jsx
| | |-- index.css
| | |-- main.jsx
| | |-- supabase.js
| | +-- utils
| | |-- api.js
| | +-- databaseUtils.js
| |-- tailwind.config.js
| +-- vite.config.js
|-- LICENSE
+-- README.md
This project is licensed under the MIT License.