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

Log in or sign up for Devpost to join the conversation.