🧠 Polyground β€” Calm, AI-Driven Polymarket Tracking

🌟 Inspiration

We wanted a calmer way to track Polymarket without the constant tab-hopping and noise. So we built Polyground, a β€œset it and forget it” scout that pins markets, monitors probability shifts, and surfaces Claude’s insights β€” only when the math actually changes.


βš™οΈ What It Does

Polyground brings together a dashboard and browser extension that let you:

  • πŸ“Œ Pin markets via URL, ID, or slug β€” directly from Polymarket.
  • πŸ“Š View implied probabilities, deltas, and sparklines for quick at-a-glance insight.
  • πŸ” Jump straight into detailed market pages with one click.
  • 🧠 Receive Claude-authored alerts summarizing significant moves.
  • πŸ”” Unread badges stay in sync across all views.
  • 🧹 Bulk actions β€” select all, delete, or mark as seen β€” for effortless portfolio cleanup.

🏠 How We Built It

Frontend:

  • βš›οΈ React + Vite + TanStack Query
  • ♻️ Shared UI components between dashboard and extension
  • πŸ“ˆ Lightweight sparkline and metric card system

Backend:

  • πŸš€ FastAPI + SQLAlchemy
  • πŸ” Worker process polling Polymarket snapshots
  • πŸ€– Claude-powered insight generation
  • 🌐 REST endpoints serving both clients

State Resilience:

  • πŸ’¨ Optimistic updates with mock fallbacks
  • 🀩 Instant, smooth UX even if backend lags

🧩 Challenges We Ran Into

  • πŸ” Normalizing every possible β€œpin” input (IDs, slugs, URLs) across both popup and dashboard.
  • ⏱️ Maintaining a real-time feel with a polling backend β€” solved using optimistic caching and granular mutation hooks.
  • 🀭 Designing bulk actions that are powerful yet accessible (select-all, delete, focus states).

🌿 Accomplishments We’re Proud Of

  • βœ… Unified pin experience: identical validation and messaging across clients.
  • β™Ώ Accessible bulk management: select-all checkbox, delete icon, and per-card mark-as-seen all keep unread counts perfectly synced.
  • πŸ’¬ Claude insights that feel human: clear, actionable commentary instead of raw numbers.

πŸ’‘ What We Learned

  • 🧱 Treating mock mode as a first-class path sped up iteration while backend plumbing evolved.
  • 🎨 Small UX touches β€” status pills, inline toolbars, focus outlines β€” dramatically improve polish.
  • ⚑ Writing optimistic mutations with rollbacks builds user trust through consistent, instant feedback.

πŸš€ What’s Next for Polyground

  • πŸŒ‚ Auto-tag + cluster alerts to filter by theme or volatility.
  • πŸ“£ Push, email, or Discord notifications for high-severity moves (Ξ” > 10%).
  • 🀝 Collaborative watchlists β€” share pinned markets, annotate alerts, and compare conviction forecasts (P(event)) across teams.

Polyground β€” your calm, intelligent companion for Polymarket tracking.

Built With

  • anthropic-claude-for-alert-insights.-databases:-sqlite-(via-sqlalchemy-models).-tooling:-node/npm
  • dev
  • fastapi
  • git/github
  • languages:-typescript/javascript-(react-+-extension)
  • local-fastapi-server;-mock-mode-for-offline-use.-cloud/services/apis:-polymarket-data/api
  • python-(fastapi-backend)
  • python-venv
  • react-router
  • sql-(via-sqlalchemy-models).-frameworks/libraries:-react-+-vite
  • sqlalchemy.-platforms/infra:-browser-extension-(chrome-based-manifest)
  • tanstack-query
  • vite
Share this project:

Updates