MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Find a song, pick the line that says what you feel, and send it to someone. Margo turns the lyric you are feeling into something you can share.
MediaTypeScript · CSSGitHub @scottgagabutera-specOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A social music platform for emotional expression through lyrics and songs.
Taken from the repository README
Loading the full README.
Read the full README ↗Margo is a social platform where people communicate through song lyrics. Post a lyric, pick the feeling behind it, and others resonate — or reply with their own lyric (a Lyric Back). The whole conversation stays inside music.
Live at trymargo.com
/song/[id]./song/[id]| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router), React 19, TypeScript 5.7 |
| Database | Supabase (Postgres + Realtime) |
| Auth | Supabase Auth — httpOnly cookie session |
| Icons | PlayPauseIcon, HeartIcon — custom SVG only |
| Audio | Cloudflare R2 via lib/audio-engine |
| APIs | Genius, YouTube Data API v3, OpenAI |
| Hosting | Vercel |
| Analytics | Vercel Analytics (cookieless) |
| Fonts | Geist Sans (UI), Lora (lyrics), Sora 700 (logo) |
| Route | Description |
|---|---|
/ | Landing |
/feed | Main lyric feed |
/discover | Discover Moments + catalog entry |
/discover/songs | Full song grid |
/song/[id] | Karaoke / full player |
/compose | Post a lyric |
/lyric-back | Reply with a lyric |
/post/[id] | Post thread |
/messages | DMs |
/notifications | Alerts |
/profile/[username] | Public profile |
/studio | Artist uploads |
/apply-artist | Artist application |
/settings | Account settings |
/about /contact /privacy /terms /dmca | Static / legal |
/admin | Admin (hidden — B+G desktop, 10s press mobile) |
/music and /music/player permanently redirect to Discover / /song/[id].
app/ Next.js App Router
components/ Shared UI (nav, cards, mini-player, admin)
hooks/ Supabase data + identity hooks
lib/ Audio engine, Supabase clients, suggest/catalog helpers
supabase/migrations/ Schema history (keep applied files)
docs/ Plans — many are shipped; see status banners
public/ Static assets
Read CLAUDE.md and MARGO_BRAND.md before writing any code.
npm install
cp .env.example .env.local # fill placeholders; never commit .env.local
npm run dev # localhost:3000
npx tsc --noEmit # must be zero errors before commit
npm test # unit tests (includes Lyric Back layout/keyboard checks)
npm run build
npm run test:e2e:lyric-back # Playwright — LB panel keyboard/layout fixture
Env reference: .env.example (Meilisearch, Suggest spend cap, rate-limit table notes). Search index setup: docs/infra/meilisearch.md. Supabase grant/RLS changes: docs/supabase-grant-rls-checklist.md.
Always branch from main. Never commit secrets (.env).
trymargo.com
[email protected]
linkedin.com/company/trymargo