Inspiration

The inspiration for Rabbit stems from persistent frustrations with existing search experiences, particularly when using platforms such as GPT or Google Search. These widely used tools frequently generate unsubstantiated information, often lack reliable citations, and tend to present results in a way that feels rigid and disconnected. This makes it especially difficult for users who want to connect ideas quickly or thoroughly explore complex subjects. Wanting a better solution, the team set out to create a system that would make it much easier to build a flexible web of knowledge. By enabling users to rapidly jump between sources and visually map out relationships, Rabbit is designed to foster curiosity and make search and knowledge discovery both interactive and engaging.

What it does

Rabbit is an AI-powered browser built to address key weaknesses in current web and AI search tools. Its core purpose is to minimize hallucinations, streamline web search workflows, and develop persistent user context to clarify or expand upon the sometimes confusing answers generated by AI. Users can rapidly move ("hop") through sources and selectively choose which Gemini results to incorporate into their answer. As users research, a knowledge node graph grows and changes to reflect their evolving understanding. At any point, a user can dig more deeply ("burrow") into a particular part of their original question, expanding the knowledge node graph and uncovering new connections. This approach allows Rabbit to replicate and enhance the process of going down an information rabbit hole, ultimately helping users build a much broader and more interconnected body of knowledge.

How we built it

The Rabbit project uses a modular architecture designed for speed, flexibility, and experimentation. The backend server was built with TypeScript and implemented all essential system functions, including prototypes for external APIs like Google Search and Gemini AI. The browser shell runs on Chromium and is managed with Electron, allowing for seamless integration of web technologies and custom user interfaces. NextJS serves as the framework powering the frontend, providing robust tools for rapid feature development and dynamic content rendering. This combination of platforms brought together modern tools from each layer of the stack, supporting both the interactive features and the expanding knowledge graph that are central to Rabbit’s vision.

Challenges we ran into

Coordinating communication among the three main sections of this project required extensive effort. Each section used a different Node.js framework. NextJS powered the frontend, TypeScript managed the backend, and ElectronJS handled the custom browser. Because each part used its own runtime and dependencies, even small changes to how data moved between them would frequently cause issues. Resolving these issues meant spending a lot of time debugging, updating API contracts, and sustaining smooth data exchange so the whole system remained responsive for users.

Extracting the essential concepts from every page proved to be a complicated task as well. Rabbit has the goal of letting users build a deep and flexible map of knowledge. Every page required careful analysis to identify its most important ideas. This process had to work across a wide variety of web content and needed to make sure that only useful, relevant concepts were highlighted for users. Fine-tuning this extraction required significant trial and error to avoid missing valuable connections or surfacing unimportant details.

Keeping the knowledge graph updated as users navigated through their research was also demanding. The graph would grow very quickly as users explored topics and followed new lines of curiosity. The system had to support adding, removing, and connecting concepts in real time, all while analyzing how often and how strongly concepts were related. The final approach had to combine robust data structures with fast algorithms so that the interface would not fall behind or get overloaded by too much information at once.

Accomplishments that we're proud of

Building Rabbit meant solving a series of tough technical problems, and the team is especially proud of implementing a complete and robust workflow. This included searching, moving quickly between results, collecting useful pages, supporting recursive searches, and enabling users to visualize their growing web of knowledge. All of this was achieved with smooth communication between the backend and frontend systems. Another key accomplishment is the development of a custom preprocessing algorithm. This tool analyzes each user query, allowing for more accurate retrieval of results and improving the overall quality and relevance of the returned pages.

What we learned

This project taught the team a number of important lessons. Rapid prototyping of interconnected backend and frontend systems is crucial for quick iteration and bug fixing. The process of searching for information is rarely linear or simple, as users often explore many related questions and topics, which makes supporting multi-layered and recursive search much more valuable. Building a web browser from scratch comes with unique challenges. It requires developing and maintaining custom proxy servers, stripping away unnecessary development tool packages, and even considering unique page rank algorithms to sort and return relevant results.

What's next for Rabbit

The next steps for Rabbit revolve around expanding its capabilities and making the user experience even better. Planned improvements include preloading pages to further minimize wait times and keep users engaged. The team also aims to add smart notifications for instances when a user’s research starts to stray from the main topic, helping them retrace their steps or refocus their search. Additional upgrades will enhance the extraction and highlighting of important page content, scale up the knowledge graph to manage larger bodies of information, and introduce onboarding tools like interactive tutorials and a more polished user interface to help users make the most of everything Rabbit has to offer.

Share this project:

Updates