This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
I SUCK at naming things. Every project of mine ends up with a placeholder name. If I want a seriously good name, I often spend a lot of time thinking of it and sometimes still cannot come up with anything nice >_<
So I built namematch. Paste a GitHub repo link (or a .md file), answer a few quick questions, and a team of AI agents comes up with names, checks if the domains are free, and lets you chat to tweak them. It currently checks .tech, .com, .dev, .app and .ai.
It's for people who love building. Developers, non-technical makers, vibe coders, LITERALLY anyone :). The time you save on naming should go into the product and the code instead.
Demo
Live: namematch.tech
The domain is only a few days old, so some networks (like my school wifi) still block it. If it doesn't load, try mobile data or another wifi, or use the backup link: nammit.onrender.com
Code
surrelsaga
/
namematch
name your project using AI agents :)
namematch
Paste your project, get name ideas, and see which domains are free.
Read the story behind it here
What it does
You paste a GitHub repo link or a .md file and answer a few quick questions. A team of AI agents then suggests names for your project and checks if the domains are available (.com, .dev, .app, .tech, .ai). Then you chat with it to refine the names, as many rounds as you like.
This app is for developers who have built something and got stuck on what to call it. The vibe is playful and plain-spoken: a colorful, chunky UI, short answers, and a live log that shows what each agent is doing.
How it works
Six agents, each with one job:
- Supervisor: reads your project, pre-fills the questions, plans which namers to use, and picks the best 5 names.
- Professional…
How I Built It
namematch is a team of 6 Mastra agents, all running on Gemma 4:
| Agent | Job |
|---|---|
| Supervisor | Reads your project, pre-fills the questions, picks which namers to use, picks the final names |
| 3 namers | Professional || Short & cool || Random & fun. Only the ones the Supervisor picks run |
| Domain checker | If a name is taken, suggests a variant |
| Feedback | Reads your chat and tweaks the names |
3 Mastra workflows in src/mastra/workflows to run the steps:
-
analyze-project.ts: analyze the input project -
generate-names.ts: generate names (namers run in parallel) -
refine-names.ts: refine the names based on feedback
=> Workflows decide the steps and the agents make the creative calls. I didn't let agents call each other, because plain workflow code is more predictable and I wasn't sure how reliable Gemma is at multi-step tool calling.
- Gemma 4 31B runs the Supervisor and Feedback agent.
- Gemma 4 26B runs the namers and the Domain checker, since it's faster. Every agent returns JSON that gets checked with zod, with one retry if it's wrong.
Domain checks aren't actually an agent. They're plain code that asks the registries directly (RDAP), so they're fast and always right about being taken or available.
The rest: Hono server, React + Vite UI, hosted on Render, traced with Sentry.
Why Does Open Innovation Matter?
Bring your own namers. The code is open and the namers are just Mastra agents. Add one in your own style (puns, Latin roots, whatever you always go for), register it, and it joins the team. A closed naming tool can't do that.
Gemma isn't stuck in one place. I run it on Google's free tier. Great, until it isn't: the free tier caps tokens per minute, and my early runs kept failing with "the namers didn't come up with any names". My retries were all firing inside the same rate-limit window. The fix was to wait as long as Google says.
=> But the weights are open, so the same agents can also run on your own machine with Ollama, with no cap.
Domain checks use open data. RDAP is the registries' own public lookup. No API key, no paid domain API.
Note. my hosted app sends your project description to Google’s API. But since Gemma is open-weight, you can run namematch with Gemma on your own laptop through Ollama, so your description never leaves your machine (setup in the repo README)
The Lazy Payoff
Naming takes hours of thinking. I'd rather spend those hours making the product and the code quality better.
But honestly, it's not instant. A round takes about a minute or two on the free tier, and having a good name for your app might take a few rounds of chatting. But talking to an agent beats staring at a blank page and checking domains one by one. It's a lot more comfortable I assure :)
How I use Sentry to reduce the agent's latency
I added Sentry right after the first full run. Every run is a trace: the workflow, each agent, each model call and each domain lookup. For every call I can see:
- how long it took
- tokens in and out
- errors and retries
Cost shows $0, because Gemma has no price in Sentry and I'm on the free tier, so I tracked tokens instead.
Before
Tip: click any screenshot to see it in full quality.
- Generating names took almost 5 minutes (4.65 to 4.82 min) and 16K to 18K tokens.
- A feedback round took 2 to 4 minutes.
- With the analyze step, one round of naming took about 8 to 10 minutes.
(The top 3 rows in the list are my first runs after the fix. You can already see the drop: 2.44 min, 6.1K tokens.)
Inside the traces:
- The namers were slow. Each namer call took 1.35 to 1.80 minutes and 4.2K to 6.1K tokens, just to return a handful of names. The names themselves are a few hundred tokens of JSON. The rest was thinking.
- The domain checker was even worse. In the feedback run it took 1.95 minutes and 5.6K tokens to suggest a few name variants.
- The domain lookups were fine. They're plain code, and tiny next to the model calls.
- The free tier threw 500 errors. Each one added a retry.
Without per-call token counts, I would have blamed Google or the domain lookups.
The fix: turn the thinking down
Gemma 4 only accepts two thinking settings: "minimal" (off) and "high" (on, the default). Anything in between returns an error. On one namer call:
- thinking on: 79 s, about 3,300 thinking tokens
- thinking off: 5 s, zero
So:
- Thinking off: the namers, the domain checker, the Supervisor's analyze step.
- Thinking on: the Supervisor's plan and pick, and Feedback. Turning it off there let weaker names through.
After
Tip: click any screenshot to see it in full quality.
- Namer: 6.9 s and 727 tokens (was 1.35 to 1.80 min and 4.2K to 6.1K).
- Domain checker: about 3 s and under 500 tokens (was 1.95 min and 5.6K).
- Feedback call: 1.2 min and 2.2K tokens (was 1.92 min and 3.8K).
- No errors in the latest runs.
| Before | After | |
|---|---|---|
| Analyze | 1.2 to 1.8 min | 7 to 33 s |
| Generate names | 4.7 to 4.8 min | 1.4 to 2.7 min |
| Tokens per generate | 16K to 18K | 3.6K |
| Feedback round | 2.2 to 3.9 min | 42 s to 1.3 min |
| Tokens per feedback | 2.8K to 9.4K | 1.7K to 2.6K |
One round of naming went from about 8 to 10 minutes down to 2 to 5.
What's still slow: the Supervisor, because I kept thinking on there. In the after generate trace, its plan and pick take 2.5 of the 2.71 minutes. Its time also jumps around a lot on the free tier: in the before trace, the same two steps took 1.3 minutes. That's the trade I chose: a bit slower, better names.
ABSOLUTE CINEMA ✋🗿🤚: I used my own app to rename itself :)
Click either screenshot to see it in full quality.
The original name was Nammit, "name it" said fast. At the end I ran the app on its own repo, with only .tech turned on, so every green pill was a name I could actually claim.
It took seven rounds of chatting. The first names were very literal, then they got invented, then I slightly tweaked it toward two-word pairings that sound good as "dot tech". In round 7 it handed me NamePicker, NameFinder, NameChoice, NameSelect and NameMatch, all with a free .tech.
So Nammit is now namematch (yes, lowercase), live at namematch.tech. I guided it a lot. That's the point of the chat.
Prize Categories
Best Use of Mastra: 6 agents, 3 workflows
Best Use of Sentry Agent Tracing: traces for every agent and model call, used to cut latency
Best Use of a .tech Domain: namematch.tech, named by the app itself
Best Use of Gemma: Gemma 4 31B and 26B power every agent
Best Use of Render: hosts the whole app, agents and UI










Top comments (1)
Wow so pro🔥