feat(web): minimal explorer UI for the muzix protocol#35
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
#0a0a0a, text#f5f1e8, single accent#f5c451(honey).How it composes with the protocol
Mock data shape mirrors
@kcolbchain/muzix-sdktypes (MusicMetadata,RoyaltySplit,AIProvenance). Going live is:MuzixCatalog,MUSD,MuzixAIProvenance, oracle to a public network.lib/mock-data.tsconsumers withcreateMuzixClient({ contracts, transport }).catalog.read*etc.NEXT_PUBLIC_RPC_URL+ contract addresses via env.muzix.kcolbchain.com.No SDK runtime is wired in this PR — keeping the surface tight until contracts deploy.
Mock catalog covers the cases
Test plan
npm installcleannpm run typecheckcleannpm run buildclean — 12 static pages prerenderednpm run devto eyeball the aestheticweb/) is fine, or rename toapp/later if monorepo conventions shiftFollow-ups (not in this PR)
@kcolbchain/muzix-sdkfor live reads once contracts deploy.npmworkspace at repo root linkingsdk/typescriptandweb/so the SDK can be consumed without afile:reference.muzix.kcolbchain.com.