A note-taking app with a chat interface to find information in notes using AI and a specialized search index.

Role

Developer

Timeline
February 2024

Technologies

  • Next.js
  • Typescript
  • TailwindCSS
  • Prisma
  • MongoDB
  • Vercel AI
  • ChatGPT API
  • Pinecone

Tools

  • GitHub
  • Clerk
  • Shadcn UI

Background

BrainWave was built to explore a more natural way to retrieve information from personal notes. Since traditional keyword search requires remembering exact phrasing, the project aimed to create a note-taking experience where users could ask questions in plain language. The goal was to develop a tool that understands the context of written content rather than just performing character matching.

Solution

The application uses a chat interface that connects to a specialized search index. When notes are created, the system generates a digital representation of the content, allowing it to be searched by meaning. Built with Next.js and secure authentication, the app ensures that personal notes remain private. The chat interface provides real-time feedback, creating a conversational experience for finding specific information.

Process

Development began with implementing core note management features such as entry creation and editing. Most of the work involved integrating the note database with an AI-powered search tool. This required developing a method to accurately transform text into searchable data and building a reliable retrieval system for the chat assistant. The interface was iteratively tested to ensure the chat felt responsive and effective during information retrieval.

Final Product

BrainWave final product

Impact

The project simplifies the process of retrieving information from large collections of notes. By allowing conversational queries, it reduces the time spent manually searching through old files. It serves as an exploration of how semantic search and AI patterns can improve the accessibility of personal data.

Reflection

Building BrainWave provided a lesson in coordinating multiple web services within a single application. The project required handling the data flow between a primary database and a search index without introducing unnecessary complexity. Future improvements could focus on increasing search accuracy and optimizing the system for even larger datasets.