Inspiration

We built Gauntlet because modern work and personal life generate too much scattered information across chats, docs, meetings, and calendars. We wanted an AI memory system that acts like a second brain: it remembers context continuously, connects related facts, and helps users act before things slip through the cracks.

What it does

Gauntlet ingests continuous micro-updates (“micro-dumps”) and turns them into searchable memory with semantic embeddings and a knowledge graph.
It can:

  • Recall context from past conversations and events
  • Link people, projects, topics, and tasks
  • Trigger proactive alerts for time-based commitments
  • Draft actions (like replies or scheduling) with a confirm-before-send safety gate

How we built it

We used a hybrid architecture:

  • Neon Postgres for durable cloud memory
  • IndexedDB for offline/local resilience
  • Gemini text-embedding-004 for semantic retrieval
  • A knowledge graph with nodes (person, project, event, topic) and relational edges
  • Better Auth + Google OAuth for secure per-user access and Google Workspace integrations

Server functions are scoped by context.userId to keep user data isolated and secure.

Challenges we ran into

  • Designing reliable continuous ingestion instead of one-shot memory dumps
  • Keeping entity resolution accurate (e.g., same person mentioned multiple times)
  • Balancing proactive automation with trust and control
  • Managing integration token handling securely for external tools

Accomplishments that we're proud of

  • Built a unified memory stream that works across personal and professional contexts
  • Implemented semantic recall plus graph relationships for richer context understanding
  • Added proactive alert generation based on detected date/time entities
  • Established a clean integration path for external tools (Google first, Slack/Jira next)

What we learned

  • Continuous ingestion creates much better long-term recall than episodic input
  • Hybrid storage dramatically improves reliability and UX
  • Proactivity is only useful when paired with explicit user confirmation
  • Strong auth boundaries (context.userId scoping) are essential from day one

What's next for Gauntlet

  • Expand connectors (Slack, Jira, Notion, email)
  • Improve graph reasoning and relationship inference
  • Add smarter daily/weekly planning copilots
  • Introduce team-level memory spaces with permission controls
  • Optimize latency and cost for real-time, always-on assistance

Built With

  • agent-development-kit
  • canvas-api
  • gemini-3.5-flash
  • gemini-3.7-flash
  • google-cloud-firestore
  • google-gemini
  • google-workspace-api
  • lucide-react
  • react-19
  • tailwind-css
  • tanstack-start
  • text-embedding-004
  • typescript
  • web-audio-api
Share this project:

Updates

Submission history