2026Featured Project

NeuralOS

A full-stack AI-powered notes application that uses semantic search and GPT-4 to help you capture, organize, and recall your thoughts using natural language

Tech Stack

React 19FastAPIOpenAI (GPT-4o-mini + text-embedding-3-small)PineconeSupabaseAxiosLucide ReactReact MarkdownCreate React App

Context

The Problem

Traditional note-taking apps let you save notes, but finding them later is painful. Keyword search fails when you can't remember exact words.

Constraints

  • Must understand meaning behind notes, not just match keywords
  • Real-time instant search results
  • Privacy-first design
  • Support multiple auth methods (email/password, Google, GitHub OAuth)

Stakes

Portfolio piece demonstrating full-stack engineering with AI/ML integration, vector databases, and modern authentication

My Role

Title

Full-Stack Software Engineering

Team

Personal Project working by myself

Ownership

End-to-end ownership: system architecture, frontend, backend API, AI integration, database design, and deployment

Approach & Key Decisions

Built a full-stack notes application with a React frontend communicating via REST API to a FastAPI backend, which orchestrates OpenAI for embeddings/chat, Pinecone for vector search, and Supabase for auth and data persistence.

Pinecone vector database for semantic search

Enables similarity search on note embeddings so users can find notes by meaning rather than exact keyword matches.

OpenAI text-embedding-3-small for embeddings + GPT-4o-mini for chat

Notes are auto-indexed with embeddings on save. GPT-4 synthesizes answers from retrieved notes with full context.

FastAPI for backend

Async support, automatic OpenAPI docs, and type hints make it ideal for building a clean REST API quickly.

Supabase for auth and database

Provides PostgreSQL database, user authentication, and real-time capabilities in one managed service. Supports email/password and OAuth (Google, GitHub).

Hooks-based state management with single-file architecture

Keeps frontend simple and maintainable at 1,800 lines of React without needing Redux or complex state libraries.

Alternatives Considered

Considered using a traditional SQL full-text search but semantic search provides dramatically better results when users can't recall exact wording

Challenges & Solutions

Challenge

Semantic search needed to understand meaning, not just match keywords

Solution

Integrated OpenAI embeddings (text-embedding-3-small) with Pinecone vector database to enable similarity search across all user notes

Challenge

AI responses needed context from user's entire knowledge base

Solution

Built retrieval-augmented generation (RAG) pipeline: query Pinecone for relevant notes, pass them as context to GPT-4o-mini, synthesize personalized answers

Challenge

Managing authentication across multiple providers

Solution

Leveraged Supabase Auth for unified handling of email/password, Google OAuth, and GitHub OAuth sign-in options

Challenge

Auto-indexing notes for search without slowing down saves

Solution

Notes are auto-indexed for semantic search upon save, generating embeddings asynchronously to keep the UI responsive

Outcomes & Impact

Codebase

1,795 lines of JavaScript/React, 69K+ lines of CSS

API Coverage

Full REST API: POST /notes, GET /notes, GET /search, PATCH /notes/:id, DELETE /notes/:id

AI Features

Semantic search with GPT-4 synthesized answers and related note suggestions with match percentages

Authentication

Full auth flow with email/password and OAuth (Google, GitHub) via Supabase

Organization

Favorites, Archives, Trash & Restore, Dark/Light mode, Keyboard shortcuts

Project Links