尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Premium music streaming web app focused on immersive UI, motion design, and beautiful listening experiences.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Tarang (तरङ्ग, "wave") is a music-first streaming web app. It is not a Spotify clone: it is an exploration of what a player feels like when glass surfaces, one shared motion language and a documented design system are treated as product decisions.檢視完整 README ↗
Run it · Features · Architecture · Installation · Reports
Tarang (तरङ्ग, "wave") is a music-first streaming web app. It is not a Spotify clone: it is an exploration of what a player feels like when glass surfaces, one shared motion language and a documented design system are treated as product decisions.
It plays demo audio and YouTube search results through a persistent floating player, with a full now-playing view, a queue, time-synced lyrics with translations, playlists and folders, moods, listening stats and simulated offline downloads. There is no backend, account system or required environment variable. The catalog is seed data in data/ and your state is kept in the browser.
git clone https://github.com/Samudra-GITHub/Tarang.git
cd Tarang && npm install && npm run dev
Then open http://localhost:3000, press Play Now, and click the floating player to expand it.
Also: a living design-system reference at /design-system, an internal /dev-tools page, reduced-motion support, live-region announcements and global keyboard shortcuts.
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router), React 19, TypeScript 5 |
| Styling | Tailwind CSS 4, design tokens in styles/tokens.css, shadcn/ui, Radix UI |
| Motion | Framer Motion with shared variants in lib/motion.ts and lib/motion-variants.ts |
| State | Zustand with persist |
| Playback and search | HTML audio, YouTube IFrame Player API, Invidious API |
flowchart LR
UI[Routes in app/] --> V[Feature views<br/>features/]
V --> P[player-store<br/>Zustand]
P --> A[HTML audio<br/>seed tracks]
P --> Y[YouTube IFrame engine<br/>YouTube results]
V --> S[(Seed data<br/>data/)]
V --> L[(localStorage<br/>library · downloads · settings)]
V --> I[Invidious search]
lib/store/player-store.ts owns playback state and bridges events from both the native audio element and the YouTube IFrame wrapper (features/youtube/youtube-engine.ts), so the UI does not care which engine is playing.app/ stay small and render views from features/.Known constraints: search relies on community-run Invidious instances that can go offline (the list is in features/youtube/invidious-client.ts), and artwork comes from picsum.photos with placeholder demo audio.
Tarang/
├── app/ Routes: album, artist, playlist, library, search, moods,
│ downloads, stats, settings, design-system, dev-tools
├── components/ cards, charts, collection, decorative, layout, tracks, ui
├── features/ home, player, library, search, moods, stats, downloads, settings, youtube
├── hooks/ reduced motion, shortcuts, online status, dominant colour, tilt
├── lib/ motion, glass tokens, formatting, search, stats, store/
├── data/ Seed songs, albums, artists, playlists, moods, lyrics
├── styles/ tokens.css
└── docs/ Design system, reports, screenshots
Requires Node.js and npm.
npm install
| Command | What it does |
|---|---|
npm run dev | Start the dev server on port 3000 |
npm run build | Production build |
npm run start | Serve the production build |
npm run lint | Run ESLint |
Nothing is required. Optionally set NEXT_PUBLIC_SITE_URL to the deployed origin so metadata, the sitemap and robots use the right URL (default http://localhost:3000).
No deployment configuration is included. It is a standard Next.js app (npm run build, then npm run start).
The docs/ folder holds the project's own write-ups: the design system, an accessibility report, a performance report, the design-system migration status and the v3 release report.
MIT.