Inspiration

Inspired by my own problem lol... whenever i opened a new chat w my coding agent omg it forgets everything and by everything i meant EVERYTHING. so i decided to fix my own problem..

What it does

Anchor is an AI-powered web application that continuously builds a Project Brain for software projects. Instead of storing only chat history, Anchor extracts meaningful project knowledge and organizes it into structured memory.

How we built it

Backend (api/) FastAPI (Python), SQLAlchemy, JWT auth (self-issued, no Clerk) Database Supabase PostgreSQL (via pooler) — you can see tables at console.supabase.com AI Gemini API — gemini-2.0-flash for chat, gemini-embedding-001 for embeddings Frontend (web/) Next.js 16, Tailwind CSS v4, Zustand, framer-motion Auth Email/password login + signup (no Google, no Clerk) Other GitHub sync (staleness detection via commit history) Local SQLite as fallback when DATABASE_URL is commented out

Challenges we ran into

Project creation 500 — returned project without loading memories relationship, crashing on serialization. Fixed by eager-loading memories after create. Supabase IPv6 — direct connection was IPv6-only and Windows Python couldn't resolve it. Switched to Session pooler (IPv4-compatible). Login "failed to fetch" — .env.local had wrong backend port (8001 instead of 8000).

Accomplishments that we're proud of

Full-stack AI memory engine from scratch (auth, CRUD, semantic search, AI chat, GitHub sync) Migrated SQLite → Supabase PostgreSQL with pgvector Swapped OpenAI → Gemini with zero code changes Duplicate-proof project creation

What we learned

IPv6-only hosts break on Windows — use IPv4 poolers Always eager-load relationships before serialization CORS + credentials = explicit origins required Gemini is a drop-in OpenAI replacement with AQ. keys

What's next for Anchor

i think itll jus stay in my files for now lol

Built With

  • fastapi
  • framer-motion
  • geminiapi
  • githubsync
  • jwtauth
  • localsqlite
  • next.js
  • react
  • sqlalchemy
  • supabasepostgresql
  • tailwindcss
  • typescript
  • zustand
Share this project:

Updates