← Back to Projects
MERCURY NOTES preview

MERCURY NOTES

AI-POWERED NOTE-TAKING APP

Next.js 15React 19Redux ToolkitSupabaseClaudeOpenAITailwind CSS 4
Visit Live Site

THE STORY

The root issue I wanted to solve with Mercury Notes (formerly CosmicNotes) is that when recording notes, we want to just scribble it down. But when reading notes, we want things to be nicely structured. I built a semantic tagging system that learns from your note-taking patterns, automatic todo/collection detection, and AI-generated tag summaries that synthesize messy raw notes into beautifully formatted documents. Since it's primarily for my own use, I optimized heavily for cost-sensitivity.

QUICK STATS

tech Stack
Next.js 15 + React 19
features
Semantic tagging + RAG chat
embedding
OpenAI embeddings + pgvector
primary User
Myself (cost-sensitive)

DEVELOPMENT INSIGHTS

"When recording notes, we want to just scribble it down. When reading notes, we want things nicely structured. Most of the time when you open your notes, it's in the middle of a conversation—'Oh wait, let me note that down really quick.' And then when you try to find it later, it's much easier and organized with all the rest of your content. The key innovation was realizing that tag names don't need to match content—semantic similarity is what matters."

TECHNICAL CHALLENGES

Semantic Tagging System

Almost certainly the most technically interesting part. When it looks at your note, it gets an embedding of that note and finds all the other notes with similar semantic content and looks at the tags on those notes. Then it uses a few other heuristics like how long it's been since those notes have been edited and comes up with its best guess of what tag you want based on tags of similar notes. When you first start using the tool, it doesn't really know what subjects you gravitate around. But as you use it more, it learns. What's really important is that the tag's name doesn't have to have anything to do with the content because it's using other semantically similar content to figure out tags rather than the tag name itself.

Tag Summary Generation

Notes get tagged (e.g., 'D&D' + 'brainstorming'). For each tag+category combination, the LLM reads all notes with those properties and regenerates a summary document containing all component notes. The summary is beautifully formatted and nicely synthesized, with original notes linked as references. Summaries are cached—when you come back, it's the exact same summary. The summary page shows it's 'dirty' when new notes are added, and you can manually regenerate. In production, could have a batch job that regenerates any dirty summaries older than one day.

Automatic Collection/Todo Detection

I was really proud of the way it converted collections into to-do lists. If I mention like, 'Oh, here's a laundry list of things I need to do today,' it will do a detection of what type of note. If it detects that it's a collection or a to-do list, it will turn it into structured data and save it as such instead. Your to-do list suddenly becomes this actual to-do list rather than just a collection of random scribbled notes.

KEY FEATURES

  • Semantic Tag Learning
    Embeddings + similarity search suggests tags based on content, not keywords
  • AI Tag Summaries
    Synthesizes messy raw notes into formatted documents with references
  • Auto Todo Detection
    Converts freeform lists into structured todo items automatically
  • RAG Chat Interface
    Ask questions about your notes using semantic search + LLM
  • Cost-Optimized
    Manual regeneration and caching to minimize API costs

IMPACT & RESULTS

  • Tags learn from your writing patterns over time
  • Scribbled notes become beautifully formatted summaries
  • Example: D&D ideas page shows everything relevant with tabs for todos/brainstorming/research
  • RAG-powered search makes finding old notes effortless
  • Built 'too many times' with Supabase pgvector—now it's the default stack

RELATED WORK

Check out Mystica and Mercury Notes for related projects

Silas Rhyneer | Portfolio