Coinlib
Long-running crypto market data platform: live prices, exchanges, portfolios, and sector narratives. Owned end to end, from product strategy and design to engineering and growth.
facts
- role
- Lead
- year
- Ongoing
- discipline
- Product · Design · Engineering · Growth
- stack
- Next.js, React, TypeScript, Supabase, Tailwind, Vercel, MCP, CoinMarketCap API, CoinGecko API
brief
01 problem
Crypto data sites are either slow, cluttered with sponsored placements, or both. Coinlib needed to serve live market data for a thousand coins and hundreds of exchanges quickly, reliably, and cheaply, while surviving constant bot traffic.
02 constraints
Third-party APIs are rate-limited and priced by credit, so they can never sit in the request path. Legacy URLs from an old WordPress site carry SEO equity that has to be preserved. A small team means the whole thing has to run itself.
03 solution
Supabase is the single source of truth. Background sync jobs pull from CoinMarketCap, CoinGecko, DefiLlama, and Google News on a schedule, write to Postgres, and invalidate exactly the pages and queries they affect. Every public read comes from the database, cached at the edge. A registry-driven narratives system turns a single config entry into a full sector hub with tokens, platforms, and chain breakdowns.
highlights
- 01End-to-end ownership of a long-running crypto market data platform
- 02Product strategy, UX/UI, and brand
- 03Full-stack development, data and API integrations, and automated reporting
- 04An MCP layer, so AI agents can query Coinlib's coins, analysis, and guides directly
- 05AI features and growth experiments
notes
The platform
Live data for the top ~1,000 coins, refreshed every five minutes. An exchange directory with trust scores and trading pairs, sector narratives, a portfolio tracker, and embeddable widgets. Per-coin analysis, guides, and auto-generated FAQs are managed from in-house admin tools.
Architecture
Scheduled jobs populate Postgres every few minutes; the site only ever reads from Supabase. Each sync invalidates its own cache tags, so fresh data reaches pages immediately without rebuilding the site.
Narratives
One template drives every sector page. Adding a narrative is a registry entry: the next sync fills its tokens and platforms, and the routes, navigation, and sitemap are generated from it.
For agents
An MCP server lets AI agents look up coins and read Coinlib's analysis, guides, and per-coin FAQs directly, instead of scraping pages built for people.
results
- External APIs never called on a user request
- Four-layer caching: ISR, tagged query cache, cron-driven invalidation, and edge headers
- Legacy URLs redirected to preserve search traffic
- Layered bot defence at the edge and in middleware