Brandbolt: The Story
Inspiration
It started with a book.
Rory Sutherland's Alchemy: The Surprising Power of Ideas That Don't Make Sense sat unopened on my nightstand for three months. Then one sleepless Tuesday at 2 AM, I cracked it open. By sunrise, I'd finished it. The premise was deceptively simple: the best solutions in advertising and marketing aren't logical—they're psychological. They work because they understand human beings, not spreadsheets.
That book rewired something in my brain.
A few weeks later, I found myself at a dimly lit wine bar in the city, across from a woman who worked in product marketing. She described her world—brand positioning, visual identity systems, the relentless pursuit of consistency across every touchpoint. She talked about how startups burn weeks and thousands of dollars trying to get their brand assets right, how small businesses can't afford agencies, how even mid-size companies struggle to maintain coherence across platforms.
"Most of them just need a starting point," she said. "Something professional. Something consistent. Something that doesn't cost ten thousand dollars."
The idea crystallized right there, between the second and third glass of wine.
I'm a software engineer. I've spent years building systems, shipping products, solving technical problems. But I'd been looking for a bridge—a way to bring my skills into the world of marketing and advertising, a world that had suddenly become fascinating to me. Brandbolt wasn't just a hackathon project. It was a proof of concept. A portfolio piece. A declaration: Here's how I can provide value. Here's what I can build.
What I Learned
Two revelations emerged from this hackathon.
The first was Gemini. I'd worked with AI APIs before, but Google's Gemini 3 models were different. The combination of gemini-3-flash-preview for brand analysis and gemini-3-pro-image-preview for image generation felt like having a creative partner who never slept. The text model could dissect brand guidelines with the precision of a Madison Avenue strategist. The image model could render logos with legible text, social templates with proper safe zones, presentation slides with real visual hierarchy. I learned to orchestrate these models—how to chain analysis into generation, how to build prompts that produced consistent results, how to implement a self-correcting validation loop that could critique its own output and try again.
The second revelation was about Cursor. This hackathon forced me to optimize my development workflow in ways I'd never considered. Custom rules for project structure. Agent skills for repetitive tasks. The ability to parallelize tool calls, to batch operations, to move at a pace I didn't know was possible. By the end of this project, I wasn't just using Cursor—I was thinking differently about how software gets built. It changed my day-to-day development, and that change will outlast this hackathon.
How I Built It
The clock started ticking on a Friday evening.
I had forty-eight hours. No team. Just coffee, conviction, and a blank directory.
The architecture came first. I sketched it on paper—old school—because screens can lie but paper tells the truth. FastAPI for the backend; it's fast, it's typed, it plays well with async operations, and I'd need async for the concurrent asset generation I had in mind. React with TypeScript for the frontend; Tailwind for styling because life is too short for custom CSS when you're racing a deadline. Vite because webpack is a war crime.
The backend took shape in layers. First, the GeminiService—the nerve center that handles all communication with Google's API. I wrote the brand analysis prompt like I was briefing a creative director, not instructing a machine. "Write as if this brief will be printed and handed to the creative director. Be direct, insightful, and memorable." The model responded in kind.
Then came the self-correcting loop—the feature I'm proudest of.
Here's the problem with AI-generated images: they don't always follow instructions. You ask for a logo with specific hex colors, and you get something close but not quite right. You specify a sans-serif font, and the model interprets that loosely. For a brand asset generator to be useful, it can't ship mediocre work.
So I built a validation layer. After every image generation, the system uses Gemini's vision capabilities to analyze what it just created. It checks color adherence. Typography compliance. Tone alignment. Professional quality. Brand recognition. Each asset gets a score out of 100. If it falls below 70, the system doesn't shrug and move on—it regenerates, incorporating specific critique into the next attempt. Up to three iterations per asset. The second version usually passes. The third almost always does.
The frontend came together in a blur of components. A brand form with color pickers and font selectors. A loading state with a timeline that tracks progress across each generation phase. An asset gallery with download capabilities and consistency scores for each piece. I wanted the UI to feel premium—worthy of the assets it generates.
By Sunday night, I had a working prototype. By Monday morning, after four hours of sleep and one final bug hunt, I had Brandbolt.
The Challenges
Nothing worth building comes easy. Brandbolt extracted its pound of flesh.
The first wall was prompt engineering. Getting Gemini to generate professional-quality brand assets required dozens of iterations on the prompts. Too vague, and the output was generic. Too specific, and the model became rigid, unable to adapt to different brand personalities. I spent hours in a feedback loop—generate, evaluate, adjust, regenerate—until I found the sweet spot: detailed enough to enforce quality, flexible enough to allow creativity.
The second challenge was concurrency. I wanted the complete package generation to be fast. That meant generating logos, social templates, presentations, emails, and marketing materials in parallel. But parallel async operations in Python have sharp edges. Race conditions. Error handling across concurrent tasks. Aggregating results without losing failures. I rewrote the generate_complete_package function three times before it was stable.
The third obstacle was validation accuracy. The self-correcting loop only works if the validation is trustworthy. Early versions of the critique prompt were too generous—they'd pass assets that clearly didn't match the brand colors. Other versions were too harsh, triggering unnecessary regenerations and burning API credits. Calibrating the validator was a subtle art, and I'm still not sure I've perfected it.
The final challenge was time. Forty-eight hours sounds like a lot until you're living it. Every feature had to earn its place. The ability to edit individual assets? Deferred to version two. The animated logo variations I'd dreamed about? Dead on arrival. But some features surprised me—the PDF upload for brand guidelines came together faster than expected, and I squeezed in competitive differentiation analysis and campaign bundling in the final hours.
Shipping is about murder. You kill your darlings so the survivors can live. But sometimes, when the adrenaline is flowing and the code is cooperating, you save a few.
The Verdict
Brandbolt works. You input your brand name, your colors, your fonts, your tone. Add your competitors, and the system ensures your assets stand out. Define a campaign, and every asset unifies around your key message. Upload an existing brand guidelines PDF, and the AI extracts everything for you. Click generate. Minutes later, you have a complete brand asset package: primary logos and icon variations, Instagram and LinkedIn templates, presentation slides, welcome emails, marketing banners and business cards. Each asset scored for brand consistency. Each one downloadable. A deployment checklist tells you exactly where to use each piece.
Is it perfect? No. The prompts can still be refined. The validation loop could be smarter. The UI could be slicker.
But it solves a real problem for real people—startups that can't afford agencies, marketers who need a quick starting point, entrepreneurs who just need something professional to ship.
That's enough. That's the whole point.
Brandbolt is live. The case is closed. The next chapter starts now.
Built With
- gemini
- gemini-3-flash
- gemini-3-pro-image-preview
- python
- react
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.