DEV Community

Om Senjalia
Om Senjalia

Posted on

RepoBuddy: Paste a GitHub Repo, Get Your First Contribution in Minutes (Gemma 4 + Graphify)

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission πŸ’Έ

This is a submission for the Hacktoberfest Open-Source AI Challenge: Week 2

What I Built

RepoBuddy turns an unfamiliar GitHub repo into something you can ask questions of.

Paste a repo URL. RepoBuddy shallow-clones it, maps it into a knowledge graph with Graphify, and lets you ask Gemma 4 things like:

  • "Where do I start?"
  • "Explain the architecture"
  • "Suggest a good first contribution"

The answers name real files, because Gemma only sees the slice of the graph that matters for your question, not a guess about what the repo probably looks like. You can also explore the interactive graph yourself.

Who would pay for it? Anyone whose time costs more than a subscription:

  • Freelancers and agencies inheriting a client codebase. The first day on a new repo is usually unbillable archaeology. RepoBuddy makes it an hour.
  • Small dev teams onboarding a new hire or contractor, without a senior dev spending a week pointing at folders.
  • Open-source maintainers who want newcomers to land a good first PR without answering the same "where do I start?" question twenty times.

The problem is the same for all of them: reading code is slow, and generic chatbots answer about a repo they have never seen.

Demo

πŸ”— Live: repobuddy.pages.dev

Paste any public GitHub repo, wait for it to map, then hit one of the preset questions.

Heads up: the API runs on a free Render instance, so the first request after it's been idle can take 30–60 seconds to wake up.

Code

GitHub logo omsenjalia / repobuddy

Paste a GitHub repo, Graphify maps it, Gemma 4 tells you where to start contributing

🧭 RepoBuddy

Paste a GitHub repo β†’ Graphify maps it into a knowledge graph β†’ Gemma 4 tells you where to start, how it's built, and what to contribute first.

Built at Hacktoberfest Hack Day Vadodara Γ— NavraCommunity (17 Oct 2026).

Built with

  • Gemma 4 (open-weight) via the Gemini API, with Ollama Cloud (gemma4:31b) as fallback
  • Graphify (OSS) for repository mapping and graph queries
  • Next.js static site and Pages Functions on Cloudflare Pages, and a FastAPI server on Render

How it works

RepoBuddy has two backends; the website picks one at build time with NEXT_PUBLIC_BACKEND.

Server (default). The FastAPI app in server/ shallow-clones any public repo, runs graphify extract locally (tree-sitter, no API cost), answers from graphify query subgraphs with Gemma 4, and serves the interactive graph. It needs git and real processes, so it runs on Render (or any VPS), while the website is static on…

How I Built It

RepoBuddy has three parts:

flowchart LR
  U[Browser<br/>Next.js on Cloudflare Pages] -->|repo URL| M[/map]
  M --> C[git clone --depth 1]
  C --> G[graphify extract<br/>tree-sitter, local]
  U -->|question| A[/ask]
  A --> Q[graphify query<br/>relevant subgraph]
  Q --> L[Gemma 4<br/>gemma4:31b on Ollama Cloud]
  L --> U
  subgraph FastAPI on Render
    M
    C
    G
    A
    Q
  end
  1. Mapping (Graphify, open source). The FastAPI server shallow-clones the repo and runs graphify extract. That's tree-sitter parsing, done locally, with no API cost. You get a graph of files, functions, imports and calls.
  2. Retrieval (Graphify again). For each question, graphify query pulls out only the relevant subgraph. That keeps the prompt small and grounded, so Gemma talks about files that actually exist.
  3. Answering (Gemma 4, open weights). The subgraph and the question go to Gemma 4 (gemma4:31b on Ollama Cloud by default). The Gemini API is supported too, as an opt-in, with Ollama as the fallback, so one provider having a bad day doesn't take the app down.

The website is a static Next.js export on Cloudflare Pages. The API needs git and real processes, so it runs as a Docker service on Render from a one-file render.yaml blueprint.

I built it in a day at Hacktoberfest Hack Day Vadodara Γ— NavraCommunity (17 Oct). It started as a Streamlit prototype and became Next.js + FastAPI once I wanted it deployed.

Why Does Open Innovation Matter?

For RepoBuddy, open isn't a nice-to-have. It's what makes the business work:

  • The expensive part costs nothing. Graphify maps the repo locally with tree-sitter. No embedding API, no per-file token bill. Only the final, small, graph-scoped prompt touches a model. That's the difference between a tool you can sell for a few dollars a month and one that loses money on every large repo.
  • Private code can stay private. Gemma 4 is open-weight. A team that won't send proprietary code to a third-party API can run the same model on their own machine or VPC with Ollama, and RepoBuddy works the same way. A closed API can't offer that.
  • No lock-in. Swapping models is an environment variable (OLLAMA_MODEL, GEMMA_MODEL). If pricing changes or a better open model ships, I switch without rewriting anything.
  • The graph beats a bigger context window. Because Graphify gives structured relationships (who calls what, what imports what), a mid-sized open model answers "what breaks if I change this?" well. I don't need the biggest closed model to brute-force a whole repo into context.

Prize Categories

  • Best Use of Gemma. Gemma 4 answers every question in RepoBuddy, grounded in the Graphify subgraph, and the model name is shown in the UI with each answer.

Built solo Β· MIT licensed Β· Built with Graphify, Gemma 4, Next.js, FastAPI, Cloudflare Pages and Render.

Top comments (0)