Find your way through any codebase.
LighterPulse
A Next.js 15 analytics terminal for the Lighter perp DEX: live markets, cross-venue funding, liquidations, leaderboards, LIT/LLP data and a block explorer. Server pages read Lighter's REST API through a two-layer Redis/Next cache; browsers stream live prices over WebSocket directly from Lighter, and a scheduled collector records open-interest history into Postgres and publishes it to Redis.
Start here
- Add a 180-day range to the chart range togglesTeaches how daily series are sliced client-side and how RangeScope/RangedChart share one range across a page.
- lib/series.tsAdd { key: "180d", label: "180D", days: 180 } to RANGES (between 90d and 1y), extend the RangeKey union and add a RANGE_LABEL entry.
- components/terminal/range.tsxConfirm RangeToggle picks up the new option automatically via RANGES/rangesFor; no code change should be needed, verify on /overview.
- Add a ±1% band to the order book depth chartShows how a client component derives a view from the live order book hook without touching the server.
- components/terminal/depth-chart.tsxAdd { key: "1", label: "±1%", pct: 0.01 } to the BANDS array so the Segmented control offers it.
- Link the LIT page from the landing header and terminal stats stripIntroduces the shared navigation lists and IntentLink prefetch-on-intent pattern used across the site.
- app/page.tsxAdd { href: "/lit", label: "LIT" } to the NAV array in the header.
- components/terminal/site-footer.tsxCheck DATA already lists /lit; if you rename the label, keep it consistent with the new header entry.