Description
Revisit is an AI-powered bookmark management application designed to solve a common problem: saving useful links but never coming back to them. Instead of acting as passive storage, Revisit actively helps users prioritize, summarize, and track reading progress through smart recommendations and gamified motivation.
The product focuses on turning bookmarks into a habit-forming learning system, combining AI summaries, reading streaks, and analytics in a clean, modern Front End experience.
Tech Stack
- Frontend: React, Tailwind CSS, shadcn/ui
- Language: TypeScript
- Backend / Services: Supabase (PostgreSQL, Auth, Edge Functions)
- State Management: React Query
- AI: Serverless AI summarization via Gemini AI
Key Features
- AI-Powered Summaries — One-click AI-generated summaries for saved links to reduce reading time.
- Smart Digest — Automatically ranks bookmarks using a custom scoring algorithm based on recency, metadata, and reading behavior.
- Gamification System — XP, levels, and daily reading streaks to encourage consistent revisits.
- Advanced Search & Filters — Filter by tags, read status, and keywords.
- Analytics Dashboard — Visual insights into reading habits, streaks, and progress.
- Dark Mode Support — System-aware theming with persistent preferences.
- Import Support — Import bookmarks via HTML/JSON files.
Challenges & Solutions
1. Prioritizing What Users Should Read Next
Challenge: Users often feel overwhelmed by large bookmark lists with no clear starting point.
Solution: Designed a custom scoring algorithm that weighs recency, tags, read status, and summary availability to surface the top recommended bookmarks in a Smart Digest.
2. Integrating AI Without Slowing the UI
Challenge: AI summary generation could introduce latency and block the user experience.
Solution: Offloaded summarization to Supabase Edge Functions, triggering AI generation asynchronously and caching results for reuse without blocking the Front End.
3. Maintaining Consistent Gamification State
Challenge: Keeping XP, streaks, and reading progress in sync across sessions and devices.
Solution: Centralized progress logic in the backend with real-time sync, ensuring consistent state updates and reliable streak calculations.
4. Balancing Feature Depth with UX Simplicity
Challenge: Combining analytics, AI, and gamification without cluttering the interface.
Solution: Adopted a component-driven Front End architecture with progressive disclosure, showing advanced insights only when relevant.
What I Learned
- Designing AI-assisted product workflows that feel helpful, not intrusive.
- Translating user behavior into meaningful Front End insights.
- Building scalable, maintainable Front End architectures with modern React patterns.
- Using serverless Edge Functions to extend Front End capabilities without complex infrastructure.
Screenshots
