Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
독립 아티스트와 청취자를 위한 소셜 음악 앱, 커버·랩·솔로·DJ를 알고리즘 없이 함께 듣게 함, 앱스토어·구글플레이 무료
A social music app for independent artists and the people who listen to them. Covers, raps, solos, singers, DJs — heard together, not through an algorithm. Free on the App Store and Google Play. Live
소셜TypeScript · PLpgSQLGitHub @vvkiitkgp온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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