A gated Farcaster community for music artists who govern, collaborate, and build onchain together.
SocialTypeScript · PythonGitHub @bettercallzaalOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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
ZAOOS
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
The ZAO ecosystem lab. Where new things get prototyped before earning their own home.Read the full README ↗
The ZAO ecosystem lab. Where new things get prototyped before earning their own home.
Live App · Fork Guide · Research Library · Report Bug · Discord
The ZAO is a decentralized impact network for independent music artists. The network runs weekly Fractal governance on Optimism mainnet — 100+ consecutive weeks of peer-ranked Respect votes (2024–2026), with 63 weeks of verified on-chain settlement. The flagship application is WaveWarZ: live-traded music battles on Solana where artists earn automatically on every battle. As of July 2026: 1,289 battles, 921 unique songs, 34 Audius-rostered artists, $1,497 raised for charity across 2 benefit-battle rounds, 878.30 SOL total volume (~$64.8K). Mission: profit, data, and IP ownership back to independent artists.
9TUfEH…2fYo)Sources: wwtracker open-source dashboard, ZAO OS research docs 1077, 1253, 1254.
ZAOOS is the lab. The repo started as a gated Farcaster social client for The ZAO (a decentralized music community of 188 members on Base) and grew into a monorepo where many ZAO experiments live side-by-side. Today it’s the place where new ZAO-ecosystem things get prototyped before they earn their own home.
The pattern: Monorepo as Lab.
| Thing | Status |
|---|---|
| Gated Farcaster client for The ZAO (live at zaoos.com) | In production, also still being iterated |
| ZAOstock 2026 dashboard + Telegram bot | Graduating to its own repo + zaostock.com (Wed 2026-04-29) |
| Agent stack (ZOE, Hermes, others) | In R&D until one is solid + worth its own brand |
| Music player components (Sonata-pattern, etc) | In R&D |
| Live audio: ZAO Spaces (Stream.io + 100ms) + Juke integration (/spaces, /live, /juke-status) | In production - 3 providers from one Go-Live button, public Juke dashboard for partner |
| Research library (~1,400 active docs across 7 topic areas — ZAOOS) | Always stays here |
Full status census: research/infrastructure/836. Reproduce the cloud half with scripts/estate-audit/audit.sh.
| Area | Snapshot (2026-06-10) |
|---|---|
| Code | 302 API routes / 54 domains, ~360 components, 18 hooks, 41 lib domains |
| Tests | 16 of 54 API domains have suites (38 untested = top gap) |
| Agents | 5-surface model (ZOE, Hermes, ZAO Devz, Teams, ZAOstock bot), no zombie code |
| Half-built | Music NFT mint (Arweave not wired), ambient mixer, Kick/festival stubs, Lens/Hive disabled |
| Vercel estate | 86 projects — 32 live, 54 dead (12 old NEXUS iterations + ~5 dupes lead the kill-list) |
| Supabase estate | 4 projects — 2 active (ZAOOS, ZAO STOCK), 2 inactive/paused |
ZAOOS was born as a gated social platform for The ZAO — a decentralized music community where artists keep their revenue, curators earn reputation, and the community governs itself. Built on Farcaster with encrypted messaging via XMTP, on-chain governance via ORDAO, and inline music from 9 platforms.
That client is still live, still iterated, still forkable.
Everything community-specific lives in one file — community.config.ts. Change it and you have your own gated community hub.
| Doc | What It's For |
|---|---|
| FORK.md | Step-by-step fork guide — clone, configure, deploy in under an hour |
| AGENTS.md | AI coding agent context — works with Claude Code, Cursor, Copilot, Windsurf |
| CONTRIBUTING.md | Code conventions, PR process, testing standards |
| community.config.ts | The one file to change — branding, channels, contracts, admin, nav |
| .env.example | All env vars with descriptions, organized by priority |
git clone https://github.com/bettercallzaal/zaoos.git
cd zaoos
npm install
cp .env.example .env.local # fill in env vars
npm run dev # starts on localhost:3000
See FORK.md for the complete setup guide including database scripts, app wallet generation, and deployment.
Key services:
/spaces).env.example for the full listEvery feature with a checked box is built and working. Unchecked = planned. Code primitives are listed under each feature so forkers know exactly what to grab.
src/app/api/auth/ (6 routes: register, session, logout, verify, signer, siwe)src/lib/auth/session.ts · src/lib/farcaster/neynar.tssrc/hooks/useAuth.tssrc/app/api/auth/siwe/route.tssrc/lib/gates/allowlist.tssrc/app/api/admin/allowlist/route.tssrc/components/admin/AllowlistTable.tsx · src/components/admin/CsvUpload.tsxsrc/lib/auth/session.tssrc/middleware.tssrc/lib/validation/schemas.tssrc/app/(auth)/admin/src/components/admin/ (UsersTable, ZidManager, AllowlistTable, RespectOverview, HiddenMessages, CsvUpload, SyncRespectButton, ImportRespectButton, PollConfigEditor)/admin/members
src/app/api/chat/messages/route.ts · src/app/api/chat/send/route.tssrc/components/chat/ChatRoom.tsx · src/components/chat/MessageList.tsx · src/components/chat/Message.tsxsrc/hooks/useChat.tssrc/app/api/chat/thread/[hash]/route.tssrc/components/chat/ThreadDrawer.tsxsrc/app/api/chat/react/route.tssrc/components/chat/ComposeBar.tsx · src/components/chat/MentionAutocomplete.tsxsrc/app/api/chat/search/route.tssrc/components/chat/SearchDialog.tsxsrc/app/api/chat/schedule/route.tssrc/components/chat/SchedulePanel.tsxsrc/components/chat/FeedFilters.tsxsrc/contexts/XMTPContext.tsx (500+ line state manager)src/lib/xmtp/client.tssrc/components/messages/MessagesRoom.tsx · src/components/messages/MessageThread.tsxsrc/components/messages/GroupInfoDrawer.tsx · src/components/messages/NewConversationDialog.tsxsrc/hooks/useWalletXMTP.tssrc/components/messages/ConnectXMTP.tsxsrc/components/messages/ConversationList.tsxsrc/components/music/MusicEmbed.tsx · src/components/music/UniversalLinkCard.tsxsrc/providers/audio/ (9 platform-specific providers + PlayerProvider orchestrator)src/lib/music/ (isMusicUrl, findMusicEmbed, songlink, formatDuration, curationWeight)src/app/api/music/metadata/route.tssrc/components/music/PersistentPlayer.tsx — volume, like, playlist, prev/play/next, expandsrc/components/music/PersistentPlayerWithRadio.tsx — global wrappersrc/components/music/MusicSidebar.tsx — right-side drawer with user queue + channel queuesrc/components/music/ExpandedPlayer.tsx — shuffle, repeat, like, playlist, share, crossfade toggle, lyrics, waveform commentssrc/providers/audio/HTMLAudioProvider.tsx — dual <audio> elements with fade in/outsrc/components/music/CrossfadeSettings.tsx — settings UI (off / 1s / 2s / 3s / 5s / 8s / 12s)setPositionState() for lock screen scrubber + time displaysrc/app/api/users/[fid]/followers/route.ts · src/app/api/users/[fid]/following/route.tssrc/components/social/SocialPage.tsx · src/components/social/FollowerCard.tsxsrc/app/api/users/follow/route.tssrc/app/api/users/[fid]/route.ts · src/app/api/users/profile/route.tssrc/components/chat/ProfileDrawer.tsxsrc/app/api/social/suggestions/route.tssrc/components/social/DiscoverPanel.tsxsrc/app/api/search/users/route.tssrc/app/api/social/community-graph/route.tssrc/components/social/CommunityGraph.tsxsrc/components/social/ShareToFarcaster.tsxsrc/components/social/SocialPage.tsxGovernance tab has three distinct sections with visual separation:
src/lib/zounz/contracts.ts — Token, Auction, Governor, Treasury addresses + ABIssrc/app/api/zounz/proposals/route.ts — reads proposalCount, threshold, quorumsrc/components/zounz/ZounzProposals.tsx — proposal count, user voting power (wagmi), links to nouns.buildsrc/components/zounz/ZounzAuction.tsx@snapshot-labs/snapshot.js
src/lib/snapshot/client.ts — GraphQL client for active/recent pollssrc/app/api/snapshot/polls/route.ts — public endpoint for poll datasrc/components/governance/SnapshotPolls.tsx — active polls with score bar charts, "Vote on Snapshot" linkssrc/components/governance/CreateWeeklyPoll.tsx — admin one-click creator (10 workstream choices, 7-day period)src/app/api/admin/poll-config/route.ts — GET (public) / PUT (admin)src/components/admin/PollConfigEditor.tsx — add/remove/reorder/edit choices, save to DBsrc/app/api/proposals/route.ts (GET, POST, PATCH)src/app/(auth)/fractals/ProposalsTab.tsxsrc/app/api/proposals/vote/route.ts — with upsert fallback + error revertsrc/components/governance/ProposalComments.tsxsrc/app/api/respect/leaderboard/route.tssrc/components/chat/RespectPanel.tsxsrc/app/api/respect/sync/route.ts — manual admin sync (fallback)src/app/api/webhooks/alchemy/route.ts — auto-sync via Alchemy webhooks (real-time on mint)src/components/admin/SyncRespectButton.tsxsrc/app/api/respect/transfers/route.ts — query + backfill from Alchemy getAssetTransfersscripts/create-respect-transfers.sql — transfers tablesrc/app/api/respect/member/route.ts — returns ledger[] (every point earned: date, source, amount, detail)src/app/api/fractals/member/[wallet]/route.ts — fractal history + events + ledgersrc/app/api/respect/fractal/route.tssrc/app/api/respect/event/route.tssrc/app/(auth)/fractals/ (page, FractalsClient, SessionsTab, FractalLeaderboardTab, AnalyticsTab, ProposalsTab, AboutTab)src/app/api/fractals/sessions/route.tssrc/app/api/fractals/member/[wallet]/route.tssrc/app/api/fractals/proposals/route.tssrc/app/api/fractals/analytics/route.tssrc/app/api/fractals/webhook/route.tssrc/lib/ordao/client.ts (fetchProposalsOnChain, fetchRespectBalance, fetchZorBalance)src/app/api/fractals/proposals/route.tssrc/lib/hats/ (client.ts, tree.ts, gating.ts, constants.ts)src/app/api/hats/tree/route.tssrc/app/api/hats/check/route.tssrc/app/api/notifications/route.ts · src/app/api/notifications/status/route.ts · src/app/api/notifications/send/route.tsCompose once in ZAO OS, publish to multiple platforms simultaneously. Farcaster is always primary; other platforms receive fire-and-forget copies with content normalization per platform.
src/app/api/bluesky/ (sync, members, feed)src/lib/bluesky/ (client.ts, feed.ts, labeler.ts)src/app/api/discord/sync/route.ts (GET: read members, POST: receive bot data)src/lib/publish/normalize.tssrc/app/api/publish/status/route.tssrc/app/api/publish/x/route.ts · src/lib/publish/x.tssrc/app/api/publish/lens/route.ts · src/lib/publish/lens.ts · src/lib/publish/lens-client.tssrc/app/api/publish/hive/route.ts · src/lib/publish/hive.tssrc/app/(auth)/wavewarz/page.tsxsrc/app/api/wavewarz/sync/route.tssrc/lib/wavewarz/scraper.tssrc/app/api/wavewarz/artists/route.tssrc/lib/wavewarz/constants.tssrc/app/api/wavewarz/random-stat/route.tssrc/lib/wavewarz/random-stats.tssrc/lib/wavewarz/proposals.tssrc/components/wavewarz/GeneratePostButton.tsxsrc/components/calls/JitsiRoom.tsxsrc/components/calls/ListeningRoom.tsxsrc/hooks/useListeningRoom.tssrc/app/spaces/ — room pages with slug routingsrc/components/spaces/ — 40+ components (RoomView, ControlsPanel, BroadcastModal, ParticipantsPanel, ClosedCaptions, ConnectionQuality, etc.)src/app/api/stream/ — token, rooms CRUD, webhook handlersrc/app/api/admin/spaces/ — admin list/delete endpointssrc/lib/spaces/roomsDb.ts · src/lib/spaces/rtmpManager.tsscripts/configure-stream-grants.ts — call type permission setupsrc/app/(auth)/ecosystem//members with PFP, name, ZID, tier, respect, category, cover images
src/app/members/page.tsx (public) · src/app/api/members/directory/route.ts/directory redirects here/members/[username] (no login required)
src/app/members/[username]/page.tsx · src/app/api/members/[username]/route.tssrc/app/(auth)/contribute/src/app/api/community-issues/route.tssrc/app/api/webhooks/neynar/route.tssrc/components/zounz/ZounzProposals.tsx · src/components/zounz/ZounzAuction.tsxsrc/app/api/moderation/queue/route.tssrc/hooks/useMobile.ts#0a1628 background, gold #f5a623 primarynext/dynamicsrc/hooks/useFocusTrap.tssrc/components/chat/SignerConnect.tsx| Layer | Technology | Version |
|---|---|---|
| Framework | Next.js (App Router, Turbopack) | 16 |
| UI | React | 19 |
| Styling | Tailwind CSS v4 | Dark theme: navy + gold |
| Auth | iron-session (encrypted httpOnly cookies) | 8.x |
| Social | Neynar SDK (Farcaster) | 3.x |
| Messaging | XMTP Browser SDK (MLS protocol) | 7.x |
| Database | Supabase PostgreSQL + RLS + Realtime | 2.x |
| Blockchain | Wagmi + Viem (Optimism) | 2.x |
| Wallet UI | RainbowKit | 2.x |
| Validation | Zod | 4.x |
| Music | 9 platform providers + Wavesurfer.js + Web Audio (binaural) | — |
| Governance | Nouns Builder Governor + Snapshot.js + Supabase | — |
| State | React Query (@tanstack/react-query) | 5.x |
| Analytics | PostHog + Vercel Analytics | — |
| Testing | Vitest | 3.x |
| Video | Jitsi React SDK | — |
| Cross-posting | @atproto/api (Bluesky), twitter-api-v2 (X), @lens-protocol/client (scaffolded), @hiveio/dhive (scaffolded) | — |
| Moderation | Perspective API (Google Jigsaw) | — |
| Deployment | Vercel | — |
Optimism:
| Contract | Address |
|---|---|
| OG Respect (ERC-20) | 0x34cE89baA7E4a4B00E17F7E4C0cb97105C216957 |
| ZOR Respect (ERC-1155) | 0x9885CCeEf7E8371Bf8d6f2413723D25917E7445c |
| Hats Protocol v1 | 0x3bc1A0Ad72417f2d411118085256fC53CBdDd137 |
| Multicall3 | 0xcA11bde05977b3631167028862bE2a173976CA11 |
Base (ZOUNZ Nouns Builder DAO):
| Contract | Address |
|---|---|
| ZOUNZ Token (ERC-721) | 0xCB80Ef04DA68667c9a4450013BDD69269842c883 |
| ZOUNZ Auction | 0xb2d43035c1d8b84bc816a5044335340dbf214bfb |
| ZOUNZ Governor | 0x9d98ec4ba9f10c942932cbde7747a3448e56817f |
| ZOUNZ Treasury | 0x2bb5fd99f870a38644deafe7e4ecb62ac77a213f |
| File | What It Does |
|---|---|
community.config.ts | All branding, channels, contracts, admin FIDs, nav — change this to fork |
src/middleware.ts | Rate limiting + CORS headers |
src/lib/auth/session.ts | iron-session config |
src/lib/db/supabase.ts | Supabase client (service role + anon) |
src/lib/farcaster/neynar.ts | Neynar SDK wrapper |
src/lib/validation/schemas.ts | All Zod schemas |
src/contexts/XMTPContext.tsx | XMTP state management (500+ lines) |
src/providers/audio/ | 9 audio platform providers + PlayerProvider (crossfade, MediaSession, Wake Lock) |
src/lib/zounz/contracts.ts | ZOUNZ DAO contract addresses + ABIs (Token, Auction, Governor, Treasury) |
src/lib/snapshot/client.ts | Snapshot GraphQL client for reading polls |
src/lib/music/curationWeight.ts | Respect-weighted curation formula: log2(respect + 1) |
src/lib/ordao/client.ts | Direct OREC contract reader via viem — on-chain fallback for proposals + respect |
src/lib/format/timeAgo.ts | Relative time, deadline countdown, wallet shortener, number formatter |
src/lib/publish/ | Cross-platform publishing (Farcaster, X, normalize, Lens/Hive scaffolds) |
src/lib/moderation/moderate.ts | AI moderation via Perspective API |
src/hooks/ | 16+ custom hooks (auth, chat, radio, playerQueue, nowPlaying, listeningRoom, ENS, etc.) |
src/
├── app/ # Next.js App Router
│ ├── (auth)/ # Protected routes (chat, messages, governance, fractals, social, admin, etc.)
│ ├── api/ # 302 route handlers across 55 domains: /api/[feature]/[action]/route.ts
│ └── page.tsx # Landing / login
├── components/ # React components by feature (chat, messages, music, admin, social, etc.)
├── hooks/ # 18 custom hooks (useAuth, useChat, useRadio, usePlayerQueue, useNowPlaying, useListeningRoom, useENS, etc.)
├── contexts/ # React contexts (XMTPContext, QueueContext)
├── providers/ # Provider wrappers (8 audio providers, PostHog)
├── lib/ # Utilities by domain (auth, db, farcaster, gates, music, xmtp, hats, publish, moderation, etc.)
└── types/ # TypeScript type definitions
community.config.ts # All community config — fork-friendly
research/ # ~820 active research docs (see research/README.md)
scripts/ # DB setup, wallet generation, webhook registration, data import
docs/ # Internal plans, QA checklists, architecture decisions
~820 active research documents (plus 77 superseded in _archive/) covering every aspect of building a decentralized music platform — protocol, identity, music, AI agents, governance, revenue, cross-platform publishing, on-chain distribution, Arweave, NFTs, reputation, security, and developer tooling.
Start with:
Detailed execution plans live in docs/superpowers/plans/. This is the high-level view:
| Sprint | Focus | Status |
|---|---|---|
| 1 | Quick wins — ZID badges, OG badges, notification triggers | Done |
| 2 | Governance fixes — proposal categories, status transitions, deadline countdown, rate limits, security audit | Done |
| 3 | Engagement — streaks, badges, Track of the Day, activity feed, OG badge, referral system | Done |
| 4 | Moderation & search — AI moderation (Perspective API), full-text search (tsvector), music approval queue | Done |
| Cross-platform | Approved proposals auto-publish to Farcaster + Bluesky + X at 1000 Respect | Done |
| Settings | Unified accounts section (Wallet, Farcaster, Bluesky, Solana, X), features, socials | Done |
| Music Player | 30+ components: liked songs, queue, reactions, crossfade, binaural beats, lyrics, waveform comments, artist profiles, respect-weighted curation, curators leaderboard | Done |
| Mobile Polish | Complete MediaSession (8 actions), expanded player, swipe gestures, haptics, Wake Lock | Done |
| Governance | Three-tier system: ZOUNZ on-chain + Snapshot weekly polls + Community proposals. Admin poll config. 7-day voting + deferred publishing. | Done |
| Member Profiles | Public directory + profiles, ENS resolution, cover images, respect breakdown, badges, completeness indicator | Done |
| On-Chain Distribution | Music NFTs via Arweave atomic assets + BazAR/UCM + 0xSplits. Upload → mint → buy. (see docs 150-155) | Planned |
| 5 | Hats & Treasury — Hats tree deployment on Optimism, Safe multisig, HSG v2 | Planned (Q3 2026) |
| 6 | AI Agent — ElizaOS + Claude + pgvector, welcome DMs, music recs | Planned (Q4 2026) |
| 7 | Music Tier 4 — Farcaster embeds, Audius SDK, AI recs, Last.fm scrobbling | Planned (see doc 130) |
ZAO OS is open source (MIT). Fork it, build on it, make it yours.
Organization: The ZAO
Type: Music-focused Decentralized Autonomous Organization (DAO)
Founded: 2024 (Optimism Mainnet)
Location: Ellsworth, Maine (primary IRL presence) + distributed globally
Website: thezao.xyz | wavewarz.info
GitHub: github.com/bettercallzaal/ZAOOS
License: MIT (code) + CC-BY (research corpus)
On-chain contracts (Optimism Mainnet):
0x34cE89baA7E4a4B00E17F7E4C0cb97105C2169570x9885CCeEf7E8371Bf8d6f2413723D25917E7445c0xcB05F9254765CA521F7698e61E0A6CA6456Be532Products:
Governance: 63+ consecutive weekly on-chain governance sessions via OREC (as of Jul 2026)
Community: 188 active members | 157 Respect holders | newsletter 500+ subscribers
AI fleet: ZOE (social automation), ZOL (Farcaster scout), ZAOscribe (transcription), ZAOOS Loop (research), Bonfire (knowledge graph)
Citation: ZAO (2024–2026). ZAOOS: ZAO Open Source Research Corpus, 1,400+ documents. Creative Commons CC-BY. https://github.com/bettercallzaal/ZAOOS/
Built in public by The ZAO · Powered by Farcaster · Research-first development
src/app/(auth)/admin/members/page.tsxsrc/app/api/members/directory/route.ts — unified member view (identity, wallets, platforms, respect, activity)src/app/api/admin/member-health/route.ts — data quality report (missing fields, tier mismatches, unlinked records)respect_holder (governance) vs community (view only)src/lib/db/activity.tssrc/lib/ens/resolve.ts — shared module (resolveENSNames, getENSTextRecords, getENSAvatar)src/app/api/ens/route.ts — public server-side API (protects Alchemy key)src/hooks/useENS.ts — client hooks call API route (no browser-side RPC)ALCHEMY_API_KEY env var (free tier: 30M CU/month)src/middleware.ts · src/lib/validation/schemas.ts · src/lib/db/audit-log.tsscripts/fix-scheduled-casts-rls.sql · scripts/add-notifications-rls.sqlsrc/providers/posthog/ (PostHogProvider, PostHogPageview)src/app/api/miniapp/ (auth, webhook)src/hooks/useMiniApp.tssrc/app/api/upload/route.ts · src/app/api/admin/upload/route.tssrc/hooks/useKeyboardShortcuts.ts · src/hooks/useEscapeClose.ts · src/hooks/useFocusTrap.tscommunity.config.tssrc/app/api/chat/hide/route.tssrc/components/admin/HiddenMessages.tsxsrc/components/chat/Sidebar.tsxnavigator.wakeLock.request('screen')navigator.vibrate(10) on play, pause, resume, stop, skipsrc/hooks/usePlayerQueue.ts · src/contexts/QueueContext.tsxsrc/components/music/QueueActions.tsx — "Play Next" / "Add to Queue" popover on all track cardssrc/app/api/music/library/like/route.ts · src/components/music/LikeButton.tsxsrc/components/music/AddToPlaylistButton.tsxcollaborative column on playlists table, API updated for shared addingsrc/app/api/music/library/react/route.ts · src/components/music/TrackReactions.tsxsrc/hooks/useNowPlaying.ts · src/components/music/NowPlayingBar.tsxsrc/components/music/ShareToChatButton.tsxsrc/app/api/music/radio/route.ts · src/providers/audio/RadioProvider.tsxsrc/app/api/music/submissions/route.ts · src/app/api/music/submissions/vote/route.tssrc/lib/music/library.ts · src/app/api/music/library/route.tssrc/app/api/music/playlists/ — CRUD + track managementsrc/components/music/SleepTimerButton.tsxsrc/app/api/music/lyrics/route.ts · src/components/music/LyricsPanel.tsxsrc/app/api/music/comments/route.ts · src/components/music/WaveformComments.tsxsrc/app/api/music/artists/route.ts · src/components/music/ArtistCard.tsxsrc/lib/music/curationWeight.ts — log2(respect + 1) weighting formulasrc/app/api/music/trending-weighted/route.ts · src/components/music/RespectTrending.tsxsrc/app/api/music/curators/route.ts · src/components/music/TopCurators.tsxsrc/components/music/BinauralBeats.tsx — presets, timer, volume, custom carrier/beat sliderssrc/components/music/AmbientMixer.tsx — white/pink/brown noise layerssrc/app/api/music/wallet/route.tssrc/components/music/WaveformPlayer.tsxsrc/hooks/useListeningRoom.tssrc/app/api/music/track-of-day/ (3 routes)src/components/music/MusicPage.tsx (39KB)src/app/api/admin/respect-import/route.tssrc/components/admin/ImportRespectButton.tsxscripts/import-fractal-history.ts (run: npx tsx scripts/import-fractal-history.ts --dir ./data)src/app/api/streaks/ (2 routes: get streak, record activity)src/components/streaks/StreakBadge.tsxscripts/create-streaks-tables.sqlsrc/components/badges/OGBadge.tsxsrc/components/compose/PlatformToggles.tsx · src/components/compose/PublishButton.tsxsrc/app/api/users/messaging-prefs/route.ts · src/app/api/users/wallet-visibility/route.tssrc/app/api/platforms/ (Lens, Hive connection endpoints)src/components/home/ (HomePage, NowPlayingHero, QuickActions, ActivityFeed, PillarCard)src/app/api/activity/feed/route.tssrc/components/chat/TutorialPanel.tsx · src/components/chat/FaqPanel.tsxsrc/app/api/chat/minimax/route.tssrc/app/api/moderation/queue/route.tssrc/lib/moderation/moderate.ts