A lovable weekend
If you’ve heard of AI, you’ve heard of Vibe Coding. My local barista knows of it and has asked if there’s any point in his son learning to code? I said Yes.
If you don’t know it, it’s yet another form of misuse of the word vibe. It’s a process of coding that doesn’t involve writing code but rather, asking an AI to do so.
Instead of learning HTML and Javascript, you can ask an AI to: “create a button that makes a farting sound”. Today’s forms of AI are non-deterministic. Depending on how you phrase your sentence (also known as a prompt), you may get a different output. That's why it's not as simple.
Enter the Vibe SaaS
When you coin a term, you coin an industry vertical. We’ve already had drag-and-drop website and web app builders, like Bubble and Webflow, just to name a few.
Now, we have AI-powered, prompt-based app builders that promise a complete web application in less time than it takes to wrangle a drag-and-drop interface.
Top products in the space include Lovable, Bolt, V0, and Replit.
I’m skeptical, but I’m also not precious about software engineering. It’s not a skill I consider unattainable or irreplaceable. I’ve used Cursor for months now, and AI-assisted development has definitely sped up my releases.
Being semi-employed means I don’t have the cash reserves to test each of these products, until Lovable went ahead and gave us a free weekend of usage.
A weekend of Lovable
The inspiration behind this is yourground-vic, a user contributed database of safe and unsafe locations across Melbourne. It hasn’t been updated since 2021 and having an updated resource could be useful to those that still feel unsafe in some of these unsafe times.
There’s no point in using Lovable to make a fart app. I’ve made plenty enough so working on something that could be impactful feels like a good use of those AI credits.
The experience.
I’ve worked with these AI tools long enough to know I need some form of rules. I need to instruct the AI on what it should and should not do. Sometimes it will listen but better than never.
I used a set of rules and adapted it specifically for this use case. See my gist for the full set. You’ll notice some of this didn’t apply to the project in the end. My idea evolved as I realized my limitations.
Its first generated result is really close to what I wanted.
It did a great job in writing the initial Supabase migration.
Because I wanted anonymity, I removed authentication. This broke my ability to submit a new report. Lovable fixed it when I gave it the error message.
The updated migration seemed fine but I still couldn’t submit a report. Seems Lovable couldn’t solve my problem on its own and was asking I go a bit manual.
Ultimately the problem was nothing like what Lovable assumed. It had installed the PostGIS extension for Postgres in the wrong schema, one that my postgres user didn’t have the rights to alter. After manually reinstalling the extension under the right schema, I was productive again.
But having no authentication opens me up to the possibility of misuse. Supabase has an approach in their docs for implementing rate limiting. Lovable didn’t mind the help.
Not bad, it wrote a Deno function and deployed it for me. Time to publish. Lovable did a bit of a security review for my first time.
What I especially loved was this little button right here:
Some things stopped working, they were easily resolved when I pointed out the missing behavior or error. It was smooth, albeit slow, sailing. Lovable may have bitten off more than it could reliably handle in user traffic so I was getting rate limited.
Then I hit my first major snag.
Well that’s not true. What does a Google Search give me?
I should have Googled even earlier because I just wasted a good chunk of time implementing a feature that could not be implemented.
So I asked to use Maptiler. I should have continued to read the Google results because I would have realized they don’t have a Directions API either. Since I’m working with a third party resource, this is the first time I’ve been prompted for an API key. I couldn’t figure out how to add it in so I hoped something would prompt me, and it did.
Well that’s cool. I don’t know where to go to edit it but I’m glad I didn’t have to hardcode it. I finally realized my mistake and asked to switch to Mapbox.
Switching providers would have taken me a while but Lovable did it in minutes and it worked rather seamlessly.
But it didn’t ask for my API key this time.
Now I have a journey planner capability. But this isn’t enough. I want to avoid certain unsafe hotspots and I want to be able to click on a map to select my destination.
This part ruined me.
It just couldn’t figure out what was wrong. I had to jump into the GitHub codebase myself to figure it out. Luckily github.dev (a web compatible Visual Studio Code) exists.
Now to figure out how to avoid unsafe spots. Mapbox doesn’t let me exclude locations in a route plan when the transport mode is “walking”. I made a few attempts to do this myself by writing SQL functions and creating a Supabase Edge Function. Surprisingly, Lovable recognized and deployed this function for me.
In order to make the routing avoidance feature more recognizable, I requested a few visual buffer zones on the map.
But trying to improve my waypoint logic was proving too much for me to handle on a weekend when I should have been napping. my results looked horrible.
This is ultimately where I had to put the minimum in minimum viable. I’ll have to come back to this.
So this is what we have so far: https://melbourne-safe-walks-now.lovable.app/
Conclusion
Lovable is pretty impressive. If I want to build an admin panel, a website, blog or listings website, this is more than enough for you. I have the added benefit of being technical and working around the constraints. I also have the added benefit of introducing them to Lovable.
For someone non-technical, I highly recommend Lovable. But I also recommend finding someone technical, not to build your app for you but to suggest the prompts and rules to make your Lovable experience better.
There’s no replacement for that tacit knowledge, at least not yet.























