Inspiration
Exploring an unfamiliar codebase is usually a slog — cloning, scrolling through raw diffs, trying to piece together why a change was made. We wanted repo history to feel less like archaeology and more like a story. GitDive turns commit-by-commit exploration into a narrated, visual dive through a repository's history, using AI to explain why changes happened, not just what changed.
What it does
GitDive takes any public GitHub repository URL and lets you explore its commit history as an interactive, animated timeline. Each commit becomes a "dive point" — you see the diff, changed files, and an AI-generated plain-English summary of what happened and why, powered by Gemini. At the end of the timeline, GitDive generates a full repository chronicle: a narrative summary of the project's evolution from first commit to latest.
How we built it
Frontend: React 18 + Vite 5, with Framer Motion driving the scroll-linked animations — a diver sprite tracks your position through commit history, with ambient marine-life particle effects for atmosphere. Backend: Node.js + Express, using simple-git to clone and parse repository history, and better-sqlite3 (WAL mode) to cache parsed commits and AI summaries so repeat lookups are fast. AI: Google's gemini-2.5-flash model generates both per-commit summaries and the end-of-timeline repository chronicle. Deployment: We split the app across two platforms — the Vite frontend on Vercel, and the Express backend on Render. This was a deliberate architectural choice: Vercel's serverless functions don't support persistent disk or native SQLite writes, both of which our backend relies on for git cloning and caching, so a traditional always-on Node server was the better fit for the backend half. Challenges we ran into
Deploying a stateful Node backend (disk-based git cloning + SQLite caching) alongside a static frontend required rethinking our original single-host assumption. We evaluated rewriting the backend entirely around GitHub's REST API and an external KV store to run fully serverless on Vercel, but decided a decoupled deployment — Vercel for frontend, Render for backend — let us ship without compromising the caching and cloning approach we'd already built. Getting CORS, environment variables, and the two deploy pipelines talking to each other correctly took careful debugging.
Accomplishments that we're proud of
Getting a full-stack app — real-time git parsing, AI-generated narrative summaries, and a genuinely playful animated UI — deployed and working end-to-end across two separate hosting platforms within the hackathon window.
What we learned
Architectural constraints (like serverless statelessness) should shape deployment decisions early, not get discovered mid-deploy. We also got hands-on with prompt design for Gemini to produce concise, readable commit narrations rather than generic summaries.
What's next for GitDive
Support for private repositories via GitHub OAuth Branch comparison view — dive through two branches side by side Persistent caching via a managed database so history doesn't need re-fetching across deploys

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