Inspiration
- Information overload is real. We noticed that learning from dense technical documentation feels overwhelming and boring for most people.
- TikTok changed how we consume content. Why not apply the same bite-sized, swipeable approach to learning?
- Everyone learns differently. We wanted to create a system that adapts to your skill level, interests, and goals instead of forcing a one-size-fits-all approach.
- Documentation shouldn't gather dust. We saw an opportunity to transform static docs into interactive, personalized learning experiences.
What it does
- Transforms any documentation website into bite-sized courses - Just paste a URL and watch it become a structured learning path
- Generates personalized 160-word articles tailored to your experience level (beginner, intermediate, advanced)
- Creates interactive knowledge graphs showing how topics connect and what prerequisites you need
- Adapts learning paths in real-time based on your profile, interests, and goals
- Tracks your progress intelligently - completion rates, quiz scores, learning patterns, and even what topics you struggle with
- Imports from Google Drive so you can learn from your own documents
- Tests your knowledge with auto-generated quizzes that match your difficulty level
- Provides an AI chat assistant to answer questions while you learn
- TikTok-style interface - swipe through lessons on mobile, making learning feel effortless
How we built it
- Frontend: Next.js 16 with React 19, HeroUI components, Tailwind CSS for that clean look, and Framer Motion for smooth animations
- AI Brain: Google Gemini 2.0 Flash for content generation, topic extraction, and personalization (with built-in rate limiting so we don't blow through API calls)
- Knowledge Graph: Neo4j database to store course structures, relationships, and learning paths - perfect for understanding how concepts connect
- Memory System: Supermemory for behavior tracking and documentation caching with hash-based deduplication (multiple users share cached docs = cost efficient)
- Web Scraping: Firecrawl to intelligently crawl documentation sites and extract clean content
- Smart Architecture: Two-phase content selection (AI recommends pages based on your profile, then you choose), semantic relationship detection, and dangling node auto-connection for fully connected graphs
- State Management: Zustand with localStorage persistence so your progress never gets lost
Challenges we ran into
- Rate limiting nightmares - Gemini has strict limits, so we built throttling logic to queue requests and prevent API errors
- Knowledge graph complexity - Making sure topics connect meaningfully without creating isolated nodes took multiple iterations
- Personalization accuracy - Balancing difficulty matching (35%), interests (25%), goals (25%), and importance (15%) to generate truly relevant learning paths
- Topological sorting for prerequisites - Ensuring learners don't hit advanced topics before covering the basics
- Hash-based deduplication - Figuring out how to share cached documentation across users without privacy issues
- Mobile-first design - Making a TikTok-style interface work smoothly while keeping desktop usable
- Google Drive OAuth flow - Dealing with COOP (Cross-Origin-Opener-Policy) restrictions and callback handling
- Content quality control - Ensuring AI-generated articles are accurate, concise, and actually helpful
Accomplishments that we're proud of
- Nailed the personalization - The AI genuinely adapts content to different skill levels and learning styles
- Hash-based sharing works beautifully - Multiple students studying React docs share the same cached content, saving time and money
- Knowledge graphs look amazing - The force-directed visualization makes complex topics feel manageable
- Two-phase crawling is genius - AI recommends pages before crawling, so users don't waste time on irrelevant content
- Behavioral analytics that actually help - The system identifies struggling areas and preferred topics automatically
- Built-in rate limiting - No more API errors or unexpected bills
- Clean, intuitive UI - Users immediately understand how to navigate and learn
- Zero-config fallbacks - Works with just localStorage if you don't have Neo4j or Supermemory set up
What we learned
- AI personalization is powerful but tricky - Getting the scoring weights right took experimentation
- Graph databases are perfect for learning paths - Neo4j made prerequisite tracking and semantic relationships so much easier than traditional SQL
- Rate limiting is non-negotiable - Always build throttling into AI integrations from day one
- Bite-sized content really works - 160 words feels perfect for mobile learning
- Caching is critical - Hash-based deduplication saved us tons of API calls
- User behavior data is gold - Tracking interactions reveals learning patterns we never expected
- Fallback strategies matter - Always have mock data and error handling ready
- Modern React is fast - Next.js 16 + React 19 gave us incredible performance
What's next for Docuer
- Production-ready authentication - Replace prototype auth with NextAuth.js or OAuth
- Spaced repetition system - Automatically resurface topics before you forget them
- Real-time collaboration - Study with friends, share notes, compete on leaderboards
- Video content integration - Link YouTube tutorials to relevant articles
- Mobile app - Native iOS/Android experience with offline mode
- Advanced analytics dashboard - Visualize learning velocity, knowledge retention, and skill gaps
- Plugin system - Let developers add custom content sources (Notion, Confluence, GitHub wikis)
- Social features - Share courses, follow other learners, showcase completed paths
- Multi-language support - Translate content automatically for global learners
- Enterprise features - Team management, custom branding, progress reporting for organizations
- API marketplace - Let third parties build on top of Docuer's learning engine
- Gamification - Badges, streaks, achievements to keep learners motivated
Built With
- cohere
- firecrawl
- gemini
- neo4j
- nextjs
- react
- supermemory
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.