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
1.5 KiB
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/webto Cloudflare Pages atapp.degenfeed.xyz - Deploy
workers/apias Cloudflare Workerdegenfeed-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
/newsnews aggregation- Wallet sign-in (Solana + EVM)
- Twitter/X-style timeline at
/twitterwith inline composer and For You / Following tabs - New DegenFeed icon/logo wired across app and home page
Week 1 — Polish and observability
- Add
/healthroute toworkers/apiandapps/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.xyzrenders a unified, ranked feed- Composer publishes to at least Nostr + Farcaster + Lens + Bluesky
- CI green on every PR
/healthreturns 200 on both Pages and Worker