尚未检测到更新。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