Back to Portfolio
Complete2025

Lybrary

Multi-source AI content curation platform aggregating Reddit, RSS, arXiv, GitHub Trending, HackerNews, and NewsAPI. Claude-powered filtering, OAuth authentication, and Stripe subscriptions.

6
Content Sources
15
API Endpoints
4
Subscription Tiers
60–70%
Pre-filter Rejection

Architecture

  • FastAPI backend with SQLite (dev) / PostgreSQL (prod), OAuth 2.0 (Google + GitHub) + JWT auth
  • Pipeline of source-specific scrapers feeding into Claude 3.5 Sonnet filtering and categorization
  • Next.js 14 frontend with TanStack React Query + Zustand, Tailwind + shadcn/ui
  • Four subscription tiers (Free / Pro / Max / Enterprise) via Stripe
  • Aggressive pre-filtering (title/description heuristics) before LLM evaluation to control API costs

Key Decisions

Pre-filter before LLM evaluation

Why: Claude API costs scale with content volume — simple heuristics reject 60–70% of irrelevant content cheaply

Tradeoff: Some edge-case relevant content may be filtered out by heuristic rules

Separate role-based access (admin) from tier-based access (features)

Why: Admin dashboard access and content limits are different concepts that share a user model

Tradeoff: More complex permission logic, but prevents conflating admin with enterprise tier

Technologies

Next.jsFastAPIClaudeOAuthStripePostgreSQL

What I Learned

  • Role vs. tier is a real distinction worth getting right early — conflating 'admin' with 'enterprise tier' causes permission bugs.
  • Reddit scraping is unreliable at scale; their API changes frequently and rate limits are aggressive.
  • Pre-filtering content before LLM evaluation saves significant API costs — 60–70% rejection before Claude ever sees it.