-
-
Our home page search and nootbook explorer to discover even more untapped information
-
The rich text editor with live previews of LaTeX, Code, Chemistry, Tables, and more
-
Our AI agent, noot, helping us write complicated LaTeX code and clarify concepts
-
noot creating graphs to better help us plan out steps and explain hard to break ideas
-
Chatting with likeminded individuals on shared topics through the chat room feature
-
Discovering more nootbooks to read and fork from
Inspiration
We've all been there. It's 2am, you have an exam in six hours, and you're staring at a set of notes that make absolutely no sense because they're not yours. You can read every word and still feel completely lost. The problem was never a lack of information. It was that learning has always been weirdly lonely. Your best insights stay trapped in your own notebook. Your study group's lightbulb moments never make it into the shared doc. And when you're genuinely stuck, there's nobody to think it through with you. We kept asking ourselves, why does software development get to feel collaborative and cumulative, where you build on what others made, improve it, and pass it forward, but learning doesn't? That question is what later became nootes.
What it does
nootes is where your notes stop being private files and start becoming something alive. People write together, build on each other's understanding, and have an AI that thinks alongside them — not one that just spits out answers. You can browse nootbooks organized by topic and interest, fork any of them into your own workspace, and write freely. When you're ready, you submit your fork back. Our AI merge engine reads what each person was actually trying to say, figures out when two people explained the same concept differently, and weaves it all into one master document that's better than anything any single person wrote alone. Inside the editor lives noot, your AI companion. Ask it a question and instead of giving you a wall of text, it maps the concept out as a live, interactive knowledge graph you can actually explore. It can also write structured content directly into your notes. Less "AI doing the work for you," more "AI helping you understand faster." And this isn't just for groups. Even as an individual, noot fills the gaps in your thinking — pulling from validated knowledge across the platform, not just the internet. You get the benefit of collective understanding without needing to know anyone. When you contribute something that genuinely helps other people, your Aura grows. It's a reputation system that rewards the kind of help that actually matters — not volume, not upvotes, but real impact on someone else's understanding.
How we built it
For the frontend, we used React + TypeScript with Vite, Tailwind CSS, @xyflow/react for knowledge graph visualization, and react-markdown with rehype-KaTeX for LaTeX rendering. The design pulls from Bauhaus principles and Zen styling. Flat geometry, bold borders, and no gradients give nootes a look that actually feels distinct. Backend: Python FastAPI for document storage, AI orchestration, and merge logic. NVIDIA NIM for LLM inference. Supabase with vector embeddings, built around a schema designed for the fork/branch/merge model from day one. The AI is three systems working together: noot (conversational companion with graph, write-to-editor, and text modes), the Graph engine (turns any idea into a structured dependency graph), and the Merge engine (synthesizes child forks into one clean master document).
Challenges we ran into
The hardest part was building a genuinely agentic AI system rather than a single chatbot. nootes runs multiple NVIDIA NIM models in a coordinated pipeline: content moderation, semantic embeddings, Nemotron Nano for merges, and Nemotron for noot. Getting them to hand off correctly and fail gracefully required a lot of careful async orchestration on the backend. On top of that, noot has to figure out from a single message whether to respond in plain text, generate a knowledge graph, or write directly into your editor, with no explicit instruction from the user. And the merge isn't simple summarization either. The model has to reason across multiple documents, catch contradictions, preserve LaTeX exactly, and decide which version of something is more correct. Getting clean, consistent output across both of those, and building fallback logic for when things break, took way more iteration than we expected.
Accomplishments that we're proud of
Honestly, the thing we're most proud of is that the merge actually works. Taking multiple note forks and synthesizing them into one coherent master document, in real time, was what the whole product is built around. We are also extremely proud of our AI agent, noot. noot's multi-mode response system is the other one. The same chat interface seamlessly switches between a conversational answer, a live knowledge graph, and writing content directly into your editor — and it feels natural, not like three different features stapled together.
What we learned
Building AI that makes you understand more, rather than just doing the work for you, is harder than it sounds. Every decision had to answer: does this help the user think, or does it think for them? We also learned that where an AI lives in a product matters as much as what it can do. Noot embedded in your editor feels like a collaborator. The exact same feature in a separate tab feels like a search engine.
What's next for nootes
Image to note: point your phone at a whiteboard, a handwritten equation, or your professor's slides. Upload it, and noot converts it into a fully formatted note block, LaTeX and all, ready to live in your repository. Real-time collaboration: live cursors and true co-editing on shared documents. University integrations: verified course repositories tied to actual syllabi. Mobile: the drawer and chat model was basically made for a phone.
Built With
- bun
- fastapi
- javascript
- nemotron
- python
- react
- supabase
- vite

Log in or sign up for Devpost to join the conversation.