MCPcopy Index your code
hub / github.com/dylsteck/casterscan

github.com/dylsteck/casterscan @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
237 symbols 657 edges 120 files 0 documented · 0% updated 46d ago★ 33
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Casterscan

A real-time block explorer for Farcaster.

Production: casterscan.com

Casterscan

Architecture

Casterscan now runs as one TanStack Start app (Vite + Nitro) with both UI routes and API routes in the same runtime.

Browser → TanStack Start routes + /api/* server routes → upstream services (hypersnap mirror, Snapchain, Farcaster API, Optimism RPC)

Key notes: - No separate apps/web + apps/api setup anymore. - Public app routes remain the same (/, /casts/$hash, /fids/$fid, etc.). - Public API surface is /api/* only. - Package manager is bun.

Local Development

  1. Install dependencies:
  2. bun install
  3. Create env file:
  4. cp .env.example .env.local
  5. Run dev server:
  6. bun run dev
  7. Build + run production output locally:
  8. bun run build
  9. bun run start

Environment Variables

User and cast enrichment calls the public Hypersnap mirror at https://haatz.quilibrium.com from the server; no API key is required for that.

Optional: - REDIS_URL: enables Redis caching. - BASE_URL: canonical app URL used in metadata and frame URLs. - VITE_GOOGLE_ANALYTICS_ID: Google Analytics ID.

Deployment (Docker / Coolify)

The root Dockerfile builds a production image (Bun installs and runs bun run build, then Node Alpine runs node .output/server/index.mjs). Point Coolify (or any Docker host) at that Dockerfile and expose port 3000 (or set PORT per your platform).

Scripts

  • bun run dev — run TanStack Start dev server on port 3000.
  • bun run build — build client + server (Nitro output in .output/).
  • bun run start — start Nitro server.
  • bun run lint — run ESLint.

Contributing

Questions or ideas: - Message Dylan on Farcaster - Open an issue

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 168
Interface 30
Method 29
Class 10

Languages

TypeScript100%

Modules by API surface

app/server/upstream/snapchain.ts18 symbols
app/server/upstream/hypersnap-client.ts9 symbols
app/lib/signer-helpers.ts9 symbols
app/server/upstream/farcaster.ts8 symbols
app/routeTree.gen.ts7 symbols
app/lib/server.ts7 symbols
app/server/services/signer.ts6 symbols
app/server/lib/errors.ts6 symbols
app/components/custom/mini-app-provider.tsx6 symbols
app/routes/api/events.ts5 symbols
app/components/custom/signer-detail.tsx5 symbols
app/components/custom/live-feed/live-feed-stats.tsx5 symbols

For agents

$ claude mcp add casterscan \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page