This is a submission for the World's Largest Hackathon Writing Challenge: Building with Bolt.
The Problem
With Learn2Play, I set out to solve a common problem I was facing: I would invite friends over for board game night and end up spending so much time explaining and teaching rules that I couldn’t even enjoy playing. On top of this routine struggle, many games sat untouched in my closet, I didn’t want to bother relearning the rules from games I hadn’t played in years or, worse, had never played at all.
The Idea
From the start, I knew AI would be at the heart of this project. The ability to process and summarize large documents is a strength of LLMs and could be a powerful tool to solve the problem I faced. When I first opened Bolt, I started with a relatively simple prompt:
"Help me create a website where users can come and learn to play the game Warhammer with the help of an interactive AI agent"
While far from perfect, the first iteration Bolt created included a layout and theme that, to this day, are still used throughout the site. As I pushed forward, however, I encountered many challenges in going from a static webpage focused on one game to a dynamic application that could process many.
Challenges
The first challenge I had to work through was how to create an agent that could reliably find the rules and explain them to users at the table. Since our agent would need to access data beyond what it was trained on (such as brand-new board games), I needed a database where users could store PDFs. Enter Supabase.
Partner 1: Supabase (native to Bolt) added a few critical functions to my application. First, it allowed me to quickly implement user authentication and credentialing, so that sensitive information, like API keys (for agent tooling) and PDFs (potential IP), could be securely stored at the user level. Second, it enabled Bolt to write edge functions within the app, which became crucial as we moved forward with additional functionality like payments in a marketplace.
With the database in place, the next challenge was actually storing data in it. While usernames and passwords were a breeze, storing data from PDFs was trickier. Some rulebooks are quite large and include complex graphics and tables that are hard to reference in real time. I learned that chunking and embedding data is a common solution to help agents retrieve data more efficiently, but I’d run into implementation issues with this before.
It took me nearly an entire night, but using Bolt alone I implemented an embedding model for PDF uploads, leveraging gemini-embedding-exp-03-07 and Supabase to parse and store data efficiently. I was shocked by how quickly and reliably my Gemini powered agent could pull from the database, even citing specific pages for reference.
At this point, I could log in to my app, upload game rules, select from my saved games, and ask questions to the chat interface like:
"What happens if I land on a space and can't pay the player?"
And the agent would respond:
"According to the rules of Monopoly on page 6…"
Amazing.
Not only was this RAG model now running, but I could deploy it in seconds thanks to Bolt’s native integration with Partner 2: Netlify. Similar projects in Cursor needed to be containerized or deployed via GitHub and Vercel, which often introduced unforeseen errors when moving from local to cloud.
Excited to share what I built and start collecting feedback, I used Partner 3: Entri’s promotion with Bolt to secure a domain and go live at learn2play.store. The fact that everything just worked—and was live and secure in under four days was astonishing. As a UX researcher by trade, this feels like a major breakthrough in how we ideate and test with users.
At this point, I even held a meetup in my hometown of Charleston and recorded a vlog to spread the good word of Bolt:
https://www.youtube.com/watch?v=WjZOJYCV6YY&feature=youtu.be
Spicing things up
With the foundation in place, I started thinking about how to turn the app into a product.
How could I go from a niche tool to an engaging experience?
Looking through Bolt’s partner list, the next logical step was leveraging their native integration with Partner 4: Stripe. While many board game rules are a Google search away, some are niche or poorly formatted. A marketplace would not only support content creators (like those making custom expansions) but also help users easily find high-quality PDFs of their favorite games.
This led to the creation of a new tab where users could buy and explore games, adding utility and giving me a business model and way to engage users even before login.
Bolt made this incredibly easy. It included a default method for setting up marketplaces with Stripe and Supabase functions that, in the past, had taken me up to a week to implement in other projects.
Now that I had my three core tabs (Home, Marketplace, Agent), it was time to lean into the agent experience. Once again, I turned to the official partners of the hackathon: Eleven Labs and Tavus.
Partner 5: Eleven Labs
Like most people, I’ve heard at least one synthetic voice generated by Eleven Labs (I may have even believed it was the real Donald Trump). When I saw them on the partner list, I just knew I had to give them a try. With Eleven Labs you can clone your own voice or choose from standardized options, but I went with a classic British accent and generated an API key for later use.
Partner 6: Tavus
Of all the integrations, Tavus had me the most excited. During COVID, I got used to playing board games online with friends, so I knew video could work as a core part of the board game agent experience. I imagined a scenario where my friends and I could launch a standby video call on a laptop in an empty chair and ask rules questions to it mid-game.
With just three days left, I used Tavus to create a video agent powered by my Eleven Labs voice and Tavus's standard Llama model.
The challenge now: how do I pass all the rich rulebook data from my database into this Tavus agent?
This is where Supabase and Bolt really shined. Using edge functions and a simple iframe integration, I brought a video agent with database access right into my app. I even connected my text-based Gemini agent (Gemini-Flash-2.0) to feed context to the Tavus agent, creating a seamless bridge between the interface and the video call.
You can see this in action in the final 30 seconds of my demo:
So what is my final review of Bolt?
As someone who has used many AI-enabled IDEs and terminals, I think Bolt’s greatest strengths are its efficiency in creating and editing front-end code, and its deep, native knowledge of Supabase. Using edge functions and API keys, I built a relatively complex set of connected tools without prior experience in many of them.
At no point was adding or editing CSS painful, and errors were easy to fix using Bolt’s native error resolution in chat. While tools like Cursor or Claude Code offer more flexibility, Bolt is incredibly efficient for prototyping and shipping, especially if you're okay sticking to a predefined toolset like Supabase.
For most projects and small businesses, this might be the best way to build and launch web apps fast. I’m not sure how well it handles high-traffic environments or very complex jobs, but for everything outlined here, it feels like Bolt has been optimized to use these tools.
I give Bolt.New an A grade, and I’d recommend it to anyone looking to revamp their website or launch a simple app with natural language coding and real-time visual support.
Bolt at times feels like magic, and in many ways, it is.
- Jake Dibattista @jakedibattista
Top comments (0)