Skip to content

feat(web): minimal explorer UI for the muzix protocol#35

Merged
abhicris merged 1 commit into
mainfrom
feat/web-explorer-ui
May 19, 2026
Merged

feat(web): minimal explorer UI for the muzix protocol#35
abhicris merged 1 commit into
mainfrom
feat/web-explorer-ui

Conversation

@abhicris
Copy link
Copy Markdown
Contributor

Summary

A minimal, mono-forward explorer UI for muzix at web/. Next.js 15 App Router + Tailwind, fully static, ~106 kB first-load JS. Ships with 6 mock catalog tokens so it works pre-deployment.

Routes

  • / — hero, four-stat strip (catalog tokens · streams · revenue · MUSD), four-pillar grid, recent issuances
  • /catalog — all tokens, each row has split-bar + provenance flag + ISRC waveform
  • /catalog/[tokenId] — per-track detail: cap-table visualization, AI-provenance card (humanOnly attestation OR ERC-721-AI model bindings + lineage URIs), on-chain reference list
  • /about — architecture (MuzixCatalog · MUSD · MuzixAIProvenance · StreamingRevenueOracle)
  • /_not-found — 404 keyed to the catalog story ("Off-chain.")

Aesthetic

  • Background #0a0a0a, text #f5f1e8, single accent #f5c451 (honey).
  • Inter for prose, JetBrains Mono for ISRC / addresses / hashes.
  • Pseudo-waveforms are deterministic per ISRC — same seed, same bars (no flicker, no client JS).
  • All pages prerender as static HTML.

How it composes with the protocol

Mock data shape mirrors @kcolbchain/muzix-sdk types (MusicMetadata, RoyaltySplit, AIProvenance). Going live is:

  1. Deploy MuzixCatalog, MUSD, MuzixAIProvenance, oracle to a public network.
  2. Replace lib/mock-data.ts consumers with createMuzixClient({ contracts, transport }).catalog.read* etc.
  3. Set NEXT_PUBLIC_RPC_URL + contract addresses via env.
  4. Drop a Vercel project at muzix.kcolbchain.com.

No SDK runtime is wired in this PR — keeping the surface tight until contracts deploy.

Mock catalog covers the cases

Token Style Cap table Provenance
#1 Lavender Cassette indie band 4 recipients human-only
#2 Aerie / Null AI-stem mix 4 recipients incl. AI model owner AI-attributed (1 model)
#3 Kōri Sato solo 3 recipients human-only
#4 Mira Volk co-write 4 recipients human-only
#5 Helios Ground feat. AGI 5 recipients incl. 2 AI model owners AI-attributed (2 models)
#6 Étoile du Soir minimal 2 recipients human-only

Test plan

  • npm install clean
  • npm run typecheck clean
  • npm run build clean — 12 static pages prerendered
  • All routes 200; unknown token → 404
  • Verified hero, catalog list, AI-attributed detail, human-only detail, about, 404 all render with expected content
  • Reviewer: pull and npm run dev to eyeball the aesthetic
  • Reviewer: confirm path (web/) is fine, or rename to app/ later if monorepo conventions shift

Follow-ups (not in this PR)

  • Wire @kcolbchain/muzix-sdk for live reads once contracts deploy.
  • npm workspace at repo root linking sdk/typescript and web/ so the SDK can be consumed without a file: reference.
  • Wallet connect (mint flow / claim flow) — gated on contract deployment.
  • Vercel project at muzix.kcolbchain.com.

Next.js 15 + Tailwind app at web/ — dark/mono aesthetic, deterministic
pseudo-waveforms keyed by ISRC.

Routes:
- /              hero · 4-stat strip · pillars · recent issuances
- /catalog       all tokens with split-bar previews and provenance flags
- /catalog/[id]  per-track: cap table viz, AI provenance card, on-chain refs
- /about         architecture (catalog · MUSD · provenance · oracle)

Ships with 6 mock catalog tokens (3 human-only, 2 AI-attributed, 1 mixed)
so the UI works pre-deployment. Swap mock-data for live SDK reads once a
canonical contract set lands on a public network.

Pure SSG: 12 static pages, 106 kB first-load JS, no client deps beyond
react+next. Typecheck + prod build clean.
@abhicris abhicris merged commit e3b4ab6 into main May 19, 2026
1 check passed
@abhicris abhicris deleted the feat/web-explorer-ui branch May 19, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant