尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證社交音樂平台應用程式
AI 翻譯
Social music platform app
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A social music platform — where listening is something you do together.
Spotify’s player · Discord’s presence · SoundCloud’s creator feed — in one app.
Most music apps are something you use alone. Livil is built around the opposite idea: music is social.檢視完整 README ↗Spotify’s player · Discord’s presence · SoundCloud’s creator feed — in one app.
Most music apps are something you use alone. Livil is built around the opposite idea: music is social.
Creators upload their tracks (audio and video). Listeners follow each other, see what friends are playing in real time, drop into Jam Rooms to listen in sync, build collaborative playlists, react and comment, and share clipped highlights as Stories and reposts — all wrapped in a polished, dark, gesture-driven mobile experience with full lock-screen media controls.
It’s a creator network, a listening party, and a chat app fused into a single React Native codebase running on the New Architecture (Fabric).
By the numbers: ~37,500 lines of TypeScript · 28 screens · 40+ reusable components · 21 backend services · 30+ database migrations · live on the App Store, Google Play, and the web.
| Home Feed | Full-Screen Player | Jam Room | Profile |
|---|---|---|---|
| Personalized feed with friends’ stories & reposts | Video + audio playback, shuffle / loop, lyrics & queue | Listen together in real time — synced + in-room chat | Creator profile: reposts, uploads, albums & playlists |
A single audio engine drives full OS media-session controls — they keep working with the app backgrounded or the phone locked.
| In-App Info & Credits | Notification Shade | Lock Screen |
|---|---|---|
The interesting parts aren’t the feature list — they’re the hard problems behind it. A few worth calling out:
react-native-video. Lock-screen clip-relative timelines required patching the native player and threading new props through the codegen spec — a precise, version-pinned native patch captured in patches/.A deep, battle-tested architecture doc lives in
CLAUDE.md, capturing the “why” behind every hard-won decision.
| Layer | Technology |
|---|---|
| Mobile | React Native 0.85.3 · New Architecture (Fabric) · TypeScript · no Expo |
| Navigation | React Navigation v7 (native-stack) |
| State / Realtime | React Context + Supabase Realtime |
| Backend & Auth | Supabase (PostgreSQL · Auth · Realtime · Storage) |
| Media | Patched react-native-video · react-native-audio-api (on-device decode) · react-native-svg |
| Animation / Gesture | Reanimated 4 · Worklets · Gesture Handler |
| Auth providers | Email/Password · Google OAuth |
livil/
├── src/
│ ├── screens/ # 28 screens — auth, feed, player, chat, jam, albums, profile…
│ ├── components/ # 40+ reusable UI + the single playback engine
│ ├── services/ # 21 backend service modules (posts, messages, jam, uploads…)
│ ├── contexts/ # playback, jam, relationships, stories, toast…
│ ├── navigation/ # native-stack navigators + session guard
│ └── theme/ # dark design system
├── supabase/migrations/ # 30+ versioned schema migrations
├── patches/ # native react-native-video patch (lock-screen controls)
└── android/ · ios/ # native projects
A single, consistent dark aesthetic — no light mode.
| Token | Value |
|---|---|
| Background | #0A0A0F |
| Surface | #12121A |
| Primary accent | #8B3DFF (purple) |
| Secondary accent | #00BFFF (neon blue) |
| Success / Danger | #00C853 / #FF4444 |
Outlined CTAs with a purple gradient glow border (never a solid fill), animated focus borders, and a floating bottom tab bar.
Requires the React Native environment (Node 20, Java 17, Android SDK / Xcode).
# 1. Install dependencies
npm install
# 2. Start Metro
npm start
# 3. Run on a device/emulator (in a second terminal)
npm run android
# or
npm run ios # requires: bundle install && bundle exec pod install
Supabase keys are configured in lib/supabase.ts.
# Bump versionCode + versionName in android/app/build.gradle first
cd android && ./gradlew bundleRelease
# → android/app/build/outputs/bundle/release/app-release.aab
Livil Music is live in production — free on all three platforms:
| Platform | Where |
|---|---|
| 📱 iPhone | App Store — "Livil Music" |
| 🤖 Android | Google Play — package com.livil |
| 🌐 Web | livil-music.com/studio — web app + creator dashboard |
Still in active development, with new releases shipping to both stores.
Built with React Native · TypeScript · Supabase