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.