degenfeed-web/ROADMAP.md
cryptorugmunch 5b394f6c92 feat: production-ready v1 — KV bindings, rate limiter, CORS, GTS CSRF, Twitter UX, CI deploy
Production readiness (Sprint 1):
- workers/api/wrangler.toml: real KV namespace IDs for CACHE + SUBSCRIPTIONS (prod + preview),
  AUTH_SECRET + GTS_CLIENT_SECRET set via wrangler secret put on Cloudflare, ALLOWED_ORIGINS env var
- kv-backed rate limiter replacing in-memory Map (rl:${ip}:${path}:${bucket} in KV)
- env-driven CORS allowlist (ALLOWED_ORIGINS), removed hardcoded localhost from production code
- GTS OAuth callback CSRF: signed state nonce stored in KV, consumed once on callback,
  removed from CSRF_EXEMPT_PATHS, 4 new auth.state tests
- .github/workflows/deploy.yml: PR -> preview, main -> production via cloudflare/wrangler-action
- DEPLOYMENT.md, scripts/deploy/setup-cloudflare.sh

Frontend (/twitter):
- Full X-style hero: left rail, protocol pills with live counts (filter by network),
  quality controls (threshold slider, non-crypto toggle), composer with Mastodon->Nostr bridge,
  FeedList flat-scrolling, sign-in CTAs throughout, right sidebar network list + trending
- ToastProvider replacing alert() in AuthProvider
- BottomNav for mobile (Feed/Twitter/News/Daily/Profile)
- /status page: SSR health dashboard with auto-refresh, per-protocol latency

Backend:
- /api/preferences: GET/POST with session auth, persist threshold + non-crypto + niches/platforms,
  11 endpoint tests + sanitizer unit tests
- GTS callback: state nonce verified against KV before token exchange
- KV-backed rate limiter with fail-open on KV errors

Tests: 81 backend tests pass (76->81)
Deployed: degenfeed-api (prod) and degenfeed-api-preview (preview) on Cloudflare
Health: Nostr/Lens/Bluesky/Mastodon/Threads/Reddit OK, RSS 403, Farcaster timeout
2026-07-08 10:18:58 +07:00

1.5 KiB

DegenFeed Web — Roadmap

Next 90 days.

Completed

  • Upgrade to Next.js 15 + React 19
  • Turborepo + pnpm workspace structure (apps/*, packages/*, workers/*)
  • Static landing page at degenfeed.xyz
  • Deploy apps/web to Cloudflare Pages at app.degenfeed.xyz
  • Deploy workers/api as Cloudflare Worker degenfeed-api
  • CI pipeline, pre-commit hooks, and Makefile
  • Protocol SDK packages: Nostr, Farcaster, Lens, Bluesky, Mastodon, Threads, RSS
  • Core packages: types, feed-core, ranking, ui, identity, auth, storage
  • /news news aggregation
  • Wallet sign-in (Solana + EVM)
  • Twitter/X-style timeline at /twitter with inline composer and For You / Following tabs
  • New DegenFeed icon/logo wired across app and home page

Week 1 — Polish and observability

  • Add /health route to workers/api and apps/web
  • Wire Plausible analytics
  • Add error boundaries and loading states in apps/web

Week 2 — Composer and identity

  • Cross-protocol composer UI
  • Identity resolution UI (link profiles across protocols)
  • Publish flow through edge worker

Week 3 — Feed quality

  • Ranking v2 with user signals
  • Feed filters and search
  • Infinite scroll and virtualization

Week 4 — Integrations

  • MeiliSearch-backed global search
  • Notifications via GotoSocial
  • RSS ingest improvements

Acceptance

  • app.degenfeed.xyz renders a unified, ranked feed
  • Composer publishes to at least Nostr + Farcaster + Lens + Bluesky
  • CI green on every PR
  • /health returns 200 on both Pages and Worker