The Problem
Twitter's mandatory login broke a simple use case: quickly checking a tweet without creating yet another account. As a researcher, I got tired of hitting login walls.
So I built Twitter Viewer(twitterwebviewer.com) - view any public profile, search tweets, download videos. No account needed.
Tech Stack
Next.js 14 + Vercel Edge + Redis
Why this combo?
- Server Components for instant SEO
- Edge runtime = <100ms globally
- Redis caching solved the biggest problem...
The Hard Problem: Rate Limits
Twitter's guest API allows ~500 requests/hour. With 100+ users, that's instant death.
Solution: Aggressive caching + deduplication
// Cache for 10 minutes
const cached = await redis.get(`profile:${username}`);
if (cached) return cached;
const fresh = await fetchTwitterAPI(username);
await redis.set(`profile:${username}`, fresh, 'EX', 600);
return fresh;
Result: 85% cache hit rate. API calls dropped from disaster to manageable.
Results (30 Days)
• 704 users (~23 DAU)
• 12-minute avg session (people actually use it!)
• 67.6% engagement rate
• Zero paid marketing
The 12-minute session time shocked me. Turns out researchers and journalists really need this.
Lessons Learned
- Start with caching Don't wait until you hit rate limits. Design for it day one.
- Ship fast, iterate MVP in 3 weeks. Added features based on real usage, not assumptions.
- Privacy sells "No tracking" became a key differentiator. Users actually care.
- Vercel bill surprise Tried hosting videos initially. Bill hit $200 in 3 days. Now just proxy direct links.
What's Next
• Thread unroller (most requested)
• Browser extension
• Possibly open-sourcing
Questions
- How would you handle Twitter's ToS concerns?
- Should I open-source it or keep it proprietary?
- Best practices for API-heavy Next.js apps?
Try it: https://twitterwebviewer.com
Let me know your thoughts! Thank you in advance!
Top comments (3)
Re:On open-sourcing: I’m leaning toward it, but with a twist—release the core (caching, basic search) as open source, but keep the video parsing and advanced API logic proprietary. That way, I keep a moat but build trust. Would that balance work for you all? Or would you prefer full transparency even if it means more clones?
Want to share a quick behind-the-scenes pain point I didn’t mention in the post: When I first launched, Vercel’s bill wasn’t just $200—they actually flagged the account for “unusual bandwidth usage” (video hosting) and threatened to suspend it. That’s why we switched to proxy links—scary moment for a solo founder!
Just keeping this thread from sinking. Would love to hear from you all!