DEV Community

Ronak sarda
Ronak sarda

Posted on

My Idea Was Already Built, So I Built "Already Built?"

This is a submission for the MLH x DEV Writing Challenge

What I Built

I built Already Built? by myself. You type your project idea, and it tells you if someone has already built it.

Here is the funny story. I spent a full hour just trying to decide what to build. When I finally picked an idea and searched for it, it was once again already built. So I built a tool for exactly that problem.

It happens to a lot of people. Some build their idea for a weekend and find a near copy on GitHub at demo time. Others find one early and quit, even though their version would have been different enough. This tool gives you the answer in under a minute, before you spend the time.

How it works:

  1. You type or say your idea. You can also paste a GitHub link, or upload a screenshot of a rival you found.
  2. Gemma 4 reads the idea and writes the search plan: a short summary of the problem, a short summary of the solution, and a few search queries.
  3. The app searches GitHub, Hugging Face (Spaces and Models) and Show HN at the same time.
  4. A small embedding model, running on your own machine, ranks the results by how close they are to your idea.
  5. You get a verdict, a list of the closest projects with links, a chart, and a short report. Every point in the report links back to a real project in the list. You can also ask follow-up questions in a chat.

The chart puts each project on two axes: "same users and problem" and "same features and approach". A project that is high on both is a real rival. A project that is high on only one is a neighbor you can learn from.

The tool does not flatter you. If it finds nothing close, it says closed apps and app stores were not searched, instead of saying the space is empty.

Code: https://github.com/ronaksarda/already-built (MIT license)

What I learned:

  • Do not let the language model decide what is similar. A language model can state a match with full confidence and be wrong. So only the local embedding model decides similarity. The language models only write text, and any citation that is not in the fetched list gets removed.
  • Thinking time matters on free tiers. The first version of the Gemma plan call timed out at 20 seconds. Setting thinking_level="minimal" brought it down to about 5 to 9 seconds.
  • Plan for the model being down. If Gemma or Groq fails, the app falls back to another model. If every model fails, a report is built from the data using fixed rules, so the user still gets an answer.

Demo

No keys? Open the app and click Open a saved example to see a full recorded result.

To run it yourself:

git clone https://github.com/ronaksarda/already-built
cd already-built
pip install -r requirements.txt
cp .env.example .env   # add GEMINI_API_KEY and GROQ_API_KEY, both are free
python scripts/prefetch.py
python server.py       # open http://localhost:8000
Enter fullscreen mode Exit fullscreen mode

Things to try:

  • Type an idea, like "An app that shows open source maintainers which GitHub issues are duplicates before they triage".
  • Click Rival screenshot and upload a screenshot of any app's landing page. Gemma 4 describes it, and the report compares your idea against it.
  • Click Speak to say your idea out loud.
  • Ask the chat "How is my idea different from the first result?"

A check takes about 15 to 25 seconds. There are 81 automated tests, and they run offline: python -m pytest -q tests.

Partner Technologies

Gemma 4 (Google) is the main model in the project. I use gemma-4-26b-a4b-it through the Gemini API with the google-genai SDK, and gemma-4-31b-it as a second model. It does three jobs:

  • Planning. One call reads the idea and returns the core claim, the problem and solution sentences (these become the chart axes), three to five search queries, and a short title. If the user named the project, it picks up the name too.
  • Reading screenshots. People often meet a rival as an app page or a tweet, not as a repo. Gemma 4 takes the screenshot and writes a short description of what the product does. That text goes into the report. In one real run, it described a flashcard tool from the image alone.
  • Safety. Before any search runs, Gemma checks if the idea is meant to hurt people and refuses if so. An idea for detecting stalkerware passes, because it is defensive.

It is also the backup writer for the report and chat when Groq is down.

My experience: Gemma 4 was good at turning a messy idea into clean search queries, and the image input worked on the first try. The slow part was speed. With default settings the plan call was too slow for a live app. Turning thinking down to minimal fixed that. Gemma always gets the first try. A gpt-oss plan is held back for a few seconds, so Gemma's plan wins whenever it answers in time.

Other open models in the project: gpt-oss-120b and gpt-oss-20b on Groq write the report and chat. all-MiniLM-L6-v2 runs locally and does all the ranking. whisper-large-v3-turbo turns speech into text.

I did not use DigitalOcean for this build. The app runs locally, and hosting a public copy is the first thing on my list.

Hackathon Experience

I built this for Hacktoberfest 2026 and entered two prize categories: Best Open-Source AI Project and Best Use of Gemma 4. The theme this year is open-weight models and open-source AI, which is why every part of the stack is an open model.

I built it solo and showed it at a local Hacktoberfest event. The judging was not very formal. There was one judge, and he asked what Gemma is and how the project works, and he did not know either one. So I had to explain both from scratch.

It was a little odd, but he was great to talk to. He asked sharp questions and clearly wanted to make the project better, not just score it.

What I will remember most is that moment, and the hour I lost at the start. I spent about an hour researching what to build, found an idea I liked, and then found out it already existed. That is how this project started.

AI disclosure: parts of the code, tests, UI and docs were written with Claude Code under my direction. I ran and tested every feature.

Top comments (0)