Building TomatoAI: Wiring Up Multiple AI APIs Without Losing Your Mind

Aman Kumar
Full Stack Engineer @ StartupCoaching
“TomatoAI started as a single question — why do I have five different tabs open for five different AI tools? The answer turned into a lesson in rate limits, fallbacks, and prompt templates.”
TomatoAI started as a single annoyance — why do I have five different browser tabs open for five different AI tools, each with its own login and its own half-remembered prompt style? The idea was to fold text generation, image generation, search, and basic data tools into one interface.
The unglamorous part of that project wasn't the UI, it was the plumbing: rate-limiting so one runaway request doesn't burn the day's quota, retry logic for when a provider has a bad five minutes, and prompt templates so the output quality doesn't swing wildly between tools.
Caching turned out to matter more than I expected. A large share of requests during testing were near-duplicates of something already asked minutes earlier — catching those before they hit the model made the whole thing feel noticeably faster without touching the model itself.
It's still a personal project, not a company, but it's the one I keep coming back to whenever a new model API ships something interesting — it's become the place I test ideas before they show up anywhere else.

Written by Aman Kumar
Full Stack Engineer — React, Node.js & Next.js
Building scalable web applications, developer tools, and AI products. Currently shipping full-stack features at StartupCoaching.
More Thoughts
Why I Built SnippetsX Instead of Just Using Pastebin
Every time I paired with someone on a bug, we ended up in the same loop — screenshots, zipped folders, or a screen-share nobody could type into. SnippetsX started as a fix for that one annoyance.
11 Months In: What Full-Time at StartupCoaching Taught Me About Shipping
Freelance and self-taught projects reward polish. A product team rewards throughput. Ten months into a full-time Full Stack Engineer role, that's the biggest recalibration I've had to make.