MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Rate and review the music you listen to, and see what the people you follow are playing.
MediaTypeScript · JavaScriptGitHub @BigCodeHunter23OnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A social rating site for music: rate albums, artists and songs out of 10, follow people, and see three scores wherever something is rated (yellow for everyone, red for you, blue for the people you follow).
Live at https://mulo-plum.vercel.app.
Next.js 16 (App Router) with React 19 and Tailwind v4, on Vercel in Sydney
(syd1). Supabase (Postgres, auth, storage) in Sydney. The catalogue comes
from MusicBrainz and is cached in Postgres; artist photos and bios from
Wikidata and Wikipedia; popularity from ListenBrainz.
You need Node 22 (see .nvmrc) and access to a Supabase project.
npm install
cp .env.example .env.local # then fill in the values
npm run dev # http://localhost:3000
.env.example explains each setting. The three Supabase ones are required;
the site logs a plain message at startup for any that are missing.
Use a test project for local work, not the live one. The service role key bypasses row-level security, so a local mistake with it lands on real data.
| Command | What it does |
|---|---|
npm run dev | Development server with hot reload. |
npm run build | Production build. |
npm run start | Serve the production build. |
npm run typecheck | Generate route types, then check TypeScript. |
npm run lint | ESLint. |
npm run format | Rewrite files with Prettier. |
npm run format:check | Report files Prettier would change. |
npm test | Unit tests (Vitest), including replaying every migration in PGlite. |
npm run test:e2e | Browser tests (Playwright) against a production build. Build first. |
npm run check | Typecheck, lint, format check and unit tests in one go. |
npm run db:types | Regenerate src/lib/supabase/database.types.ts from the migrations. |
Browser tests that sign in need a non-production Supabase project and the
E2E_* settings in .env.example; without them they skip.
GitHub Actions (.github/workflows/ci.yml) runs typecheck, lint, the
Prettier check, unit tests, a production build and the browser tests on
every push and pull request. A red cross on a commit in GitHub means one of
them failed; the run's page says which.
A push to master deploys to production on Vercel. Other branches get
preview deployments.
Database changes are separate: each file in supabase/migrations/ is run by
hand in the Supabase SQL editor, in order. Every migration is written to be
safe to run twice. If a code change depends on a migration, run the
migration first; docs/supabase-setup.md lists the ones still pending.
One-off maintenance scripts in scripts/ run against the database named in
.env.local, for example:
node --env-file=.env.local scripts/seed-catalog.mjs --albums=1000
Each explains what it does and its options at the top of the file, including whether it's safe to stop and rerun.