Speedrunning an AI Art App With bolt.new, Supabase, and Replicate
When a friend asked if I could make an app for a Washington DC meetup in under 2 hours, it was perfect timing because bolt.new is running a $1 Million Hackathon.
This week, an organizer of an AI art meetup I’ve attended messaged me on WhatsApp around 7pm: “Can you build an AI art app by tomorrow afternoon?”
A few years ago, I would’ve said that timeline was impossible. But with tools like Bolt.new, Supabase, and Replicate, I had a working version live the next day.
The goal was to build an “experience” app so that 300 people at a meetup in Washington DC could all share their fears and hopes about AI, have images generated, and then create a gallery where all those fears and hopes stood side-by-side.
bolt.new enabled me to build this app in a few hours.
bolt.new has been on my radar for a while, along with its competitors like v0 and lovable. This month, they are hosting a $1 million hackathon, which seemed like a good excuse to give it a try.
Overall, I’ve been very impressed by bolt, particularly for quickly shipping web apps. They now have first-class integration with Supabase, a popular open-source database, which enables not just data-persistence but server side API endpoints and file storage - both critical features for my AI art app.
In this post, I’ll cover why I’m interested in no-code AI platforms despite being a competent coder, why bolt.new was especially well-suited to this task, and other lessons and challenges.
(btw, you can check out the app here, but please don’t stress-test it too much as the event is Friday June 13)
The AI Art App We Set Out To Build using Replicate
The AI art meetup is called Machine Cinema, who’s mission is to bring AI + art into real life, with a community of people sharing the latest tips and techniques. The organizer - Minh Do - wanted to build a collaborative experience for meetup attendees.
The app asks the following four questions:
What fear, tension, or challenge about AI or society keeps you up at night?
At some point, we stopped believing ________, and started imagining ________.
Imagine a breakthrough moment that shifted the story of AI for the better—what was it?
In one sentence: What headline would make you feel like we've truly made it?
Each user should submit an answer to that question, and the answers will then be combined in a gallery so you can see each “act”: Act 1 where we review everyone’s fears, Act 2 where we review what we start imagining, Act 3 where we review everyone’s breakthrough moment, etc.
For image generation via an API, there are a few different options. Both OpenAI and Google’s Gemini have an API for generating images, however their flagship models are fairly slow and expensive.
We ended up going with Replicate, which is a company that runs open source image generation models for you, while handling various complexities like GPU provisioning. Our main motivation for using Replicate was the wide variety of models they offer so we can optimize the tradeoff between time, cost, and quality.
On Replicate, we started using their default suggested model, “flux-pro”. This model creates high quality images but like OpenAI and Gemini is fairly slow and expensive. Fortunately, it was easy to switch to “flux-schnell”, a much faster and cheaper image model. While the images weren’t as consistently relevant to the prompt, the tradeoff of the app being snappier to use and enabling us to afford it makes it a good choice.
Why Bolt Was the Right Choice
AI no-code platforms are being heavily marketed towards non-engineers , with there sometimes being an implicit assumption that coders won’t use no-code. But just because you can code, doesn’t mean you should.
Even though I’ve extensively coded in React and React Native, I’m more than happy to let AI do the lion’s share of the work - especially since Bolt enables both Github sync and a project download, easily enabling you to take your code off the platform if you ever run into a limitation.
When I first got asked to do the project, Minh - the organizer of Machine Cinema was already working with a teammate using v0.dev and Replit - other competitors in the space. I immediately suggested switching to bolt.new, and not only because of the hackathon, but because of critical features we ended up using.
Overall, Minh was happy with how quickly I turned around the app, and I was happy that I was able to do effectively the entire app in plain English, and most features in a single prompt.
Why Supabase Made It Work
Bolt.new has a built-in integration with Supabase, which adds an actual database to the project, a key and critical feature to make anything other than a transient demo. Without a database, whatever your app creates will disappear on the next page refresh.
There were a few other ways in which Supabase provided - edge functions and file storage.
Supabase adds another key feature to Bolt - Edge Functions - server side API endpoints. This turns out to be a key feature for our use case, because to generate the AI image, we use the Replicate API. But given images can be expensive to generate, we don’t want to expose the API key in the client, and instead need to use a server side endpoint. This is exactly where Supabase edge functions worked great, since it gave us a server side endpoint immediately.
Another problem we ran into is that our links kept being broken. This was because I was using Replicate to generate URLs for our images, but Replicate is not meant to serve images in a production app. You’re supposed to download the image and store it somewhere yourself. We learned this the hard way as our image links kept getting broken.
Fortunately, this was again easily fixed. In Bolt.New, we simply asked the agent to download the images from Replicate, upload the files in Supabase Storage, and save the links to our Supabase database. It worked like a charm.
Strengths and Weaknesses of Bolt.New
While I’m excited about various AI coding products, I do try to remain realistic and grounded rather than buy into any hype.
Overall I found Bolt extremely functional, but there were some setbacks. By far, the biggest pain point came when trying to setup Replicate. It was not familiar with the API. While Replicate can work with just HTTP fetch, it’s recommended to instead use the Replicate NPM package, which the agent did not use until I suggested it install it.
By contrast, the Supabase integrations worked incredibly well. I asked it to add the database and it created a schema that worked on the first try. Later, when we needed the Supabase edge functions and file storage, it again worked on the first try in both cases.
It’s not surprising that the Supabase prompts worked well and the Replicate prompts didn’t, given that bolt.new advertises Supabase as a first-class integration on the platform. Presumably, they have a variety of prompts already provided that guides it to using Supabase correctly, that were missing with Replicate.
Another major strength of bolt.new is its ability to sync your code to Github or download the project altogether. Because I was having problems with Replicate, I did download the code and fix it locally in Cursor, where I have more typical IDE tooling that’s partially missing in the bolt cloud environment. To me, this is a critical feature of any platform since being able to ‘backdoor’ into the code provides a workaround if the agent is ever simply unable to fix the problem.
Is Bolt Ready for Primetime?
One question I got asked on Twitter is whether bolt is ready for real, production, monetized apps. My answer to that is - it depends on what the app is. If it’s something simple, bolt can probably do it well. Of course, simple apps rarely have competitive advantages outright, although simple apps in a niche market with the right sales and marketing can still greatly succed. And now a no-coder could easily spin up a bolt.new app, integrate Stripe, and be off to the races.
On the other hand, if you wanted to start installing custom system libraries, you might run into the platform limitations. Even in this case, I could imagine bolt.new being a useful platform to build a frontend on that uses a more productionized backend API for the heavy lifting.
My Plans for Bolt Going Forward - Youtube and Expo Native iOS Apps
While the app was built for Minh’s event, I handled the engineering side, and I’m sharing it here primarily to showcase the tech stack, so here’s the link. Keep in mind this is primarily for Minh’s event so don’t share it too widely.
I’m very eager to continue playing with Bolt. If AI agents can build frontends, or at least frontend MVPs, I’m not worried about ‘replaced’, I’m excited to work on more interesting problems than boilerplate frontend code. The fact that Bolt is offering a huge number of prizes is icing on the cake in case I win, though given there’s already 80,000 people competing for 10 prizes, it’s surely to be competitive and I’m not counting on anything.
The project I’m most excited to work on is tooling to improve at YouTube. In case you didn’t notice, most of these Substack posts have YouTube embeds at the top, as I view YouTube as a platform with massive reach and its algorithm one of the best ways to reach new people. At the same time, I’ve frequently struggled with the video production. I have a vision for an app that helps me create “b-roll”, or background images that match my written script, as a way to more quickly add engaging visuals to my YouTube scripts. Since that’s a fairly complex app, I plan to start with a simpler use case - generating YouTube thumbnails.
Bolt also has an integration with Expo, which is a framework that simplifies React Native development and is a tool I used for my monetized native app, Live Poker Theory. I’m curious to try out Bolt on a new Expo app to compare my experience doing it with and without a no-code platform.
Overall, I’m very excited about the potential to ship web and mobile MVPs much faster with AI, and it’s clear that AI tools specifically built to accomplish this are making fast gains, with incredible demos from bolt, v0 by Vercel, and Lovable. Bolt’s Supabase integration , for the moment, put its at the head of the pack for me, though I plan to keep an eye on all of them.
Thanks for reading, reply to this email, comment on Substack, or email me with any thoughts. I look forward to sharing more of my progress on my bolt.new apps.
This was a great read! I tend to use Replit, but might give Bolt a try after reading about your experience. I hope the event goes well tomorrow!