DEV Community

Cover image for Shipping CoinPeek: Building a Real-Time Crypto Monitor in Rust
Josiah Mbao
Josiah Mbao

Posted on

Shipping CoinPeek: Building a Real-Time Crypto Monitor in Rust

Shipping CoinPeek

A 572KB WASM binary. Zero network requests after initial load. Real-time crypto prices in your terminal.


Why I built it

I was tired of tab-switching to check ETH prices. Every context switch cost me 30 seconds of focus. So I built a terminal dashboard in Rust that shows live market data without leaving my IDE/terminal.


demo gif of terminal UI

The core TUI (terminal user interface)

Performance Benchmarks

Metric Value
WASM bundle size 572 KB
Memory footprint ~8 MB (terminal) / ~15 MB (web)
Price update latency < 100ms (WebSocket)
UI render time < 16ms (60fps)
Cold start (web) ~300ms
Binary size (macOS) 2.1 MB

Architecture

  • Terminal app: Ratatui TUI + SQLite for offline persistence
  • Web app: Yew + WebAssembly (same core logic)
  • Data layer: WebSocket streaming from Binance (no polling)
  • Storage: tokio-rusqlite with bundled SQLite (works offline)

web dashboard version

The same core logic compiled to WebAssembly and rendered in the browser using Yew.

Lessons Learned

Building CoinPeek reinforced that shipping beats perfection. The first version had hardcoded API calls and no error handling. But it worked — and that momentum carried me through polishing, testing, and CI automation.

What would you add next? A portfolio tracker? Alerts? Sound off in the comments.


Links

Top comments (0)