[#73] From zero to live: Building an AI powered app using Lovable, Cursor, Supabase, Google OAuth, & OpenAI (as a non developer)
Building an AI-powered app from scratch with 0 coding experience using Lovable, Cursor, Supabase & integrating 3rd-party tools: Ex - Google OAuth for sign in, and AI recommendations using OpenAI APIs
Building an AI-powered app from scratch can sound intimidating, especially if you have zero coding experience. Over two days, I dove headfirst into creating FitTracker, a fitness tracker that learns from you, using tools like Lovable, Cursor, Supabase, and OpenAI. This is my journey through the chaos, breakthroughs, and hard earned lessons of bringing an AI SaaS project to life. Note: I’ve also experimented with the tone & content delivery here, so bear with me on this.
The finished product: A website built using purely AI tools (and an AI prompter, courtesy of chatGPT). Tools used:
Lovable for front-end designs
Cursor for the code
Google OAuth (through Google Cloud console) for authentication (using your email sign-in)
Supabase: for serverless backend, to actually execute the OAuth, and host the databases
OpenAI: for AI powered workout recommendations based on configurable inputs
Link to those who want to try out the live app here: link (note - if I’m out of credits, this may not work, but I’ve attached screenshots below to show how it worked. Note, the sign in for whatever reason is easier to do on the laptop, if you do it on the phone it still works, but requires multiple redirections)
But I’m getting ahead of myself. Let me start at the beginning:
Something that’s been sitting on my “one day, maybe” list was to actually use all these fancy tools that everyone in product and tech keeps raving about: Supabase, Cursor, Lovable, OAuth this, AI that and try building a website from scratch. Preferably AI powered, because let’s be honest, if you’re not sprinkling AI on it in 2025, does it even count?
Now, I don’t come from a traditional tech background. I didn’t study software engineering, I played sports and dabbled in finance (my undergrad), then went off to do an MBA where I’m still not entirely sure what I actually learned in an academic sense. Most of what I do know has been stitched together from reading docs, figuring out stuff on the go in my product & strategy roles, bugging tech friends, staring blankly at error messages until something clicks, and using tools - big fan of the “move fast & break things approach.”
But my philosophy has always been pretty simple: the best way to learn is to throw yourself in headfirst. One of my favourite quotes is by the main character Kvothe in the high fantasy novel: “The Name of the Wind” by Patrick Rothfuss.
“It's the questions we can't answer that teach us the most. They teach us how to think. If you give a man an answer, all he gains is a little fact. But give him a question and he'll look for his own answers.” -
For those of you folks who read high fantasy, I couldn’t recommend this book enough, with a caveat: if you’re okay with the series never being completed. There were supposed to be 3 books in this series - “The Kingkiller Chronicles,” but for all of us who are fans, we’ve given up on this, there are some excellent reddit threads where people keep putting up their own theories).
But back to the point. Armed with the same “jump in headfirst” logic, I decided to pick this up as a pet project: use the shiny tools everyone’s talking about - Cursor, Lovable, ChatGPT and see if I could stumble out the other side with a half-decent working website. What exactly to build? That part was still fuzzy. But regardless, I was a woman on a mission.
To work then. Note: The above image was generated by chatGPT
Phase 1: the enthu cutlet
Saturday: 11:01 am
My first bright idea was to build a book recommendation engine. But I scrapped that almost immediately. It felt boring, too basic, and honestly not enough moving parts to really flex. As a “pRoDUCT maNAGer” (yes, that’s how I imagine myself saying it), I figured I should at least attempt something with a little more complexity.
So naturally, the next big brainwave was…a fitness tracker. Groundbreaking, I know. And for those of you who know me, completely unexpected, obviously. I called it FitTracker. Clearly, the creative juices were in full flow.
Saturday: 11:35 am
Now that I had my world-changing idea in place, the next question was: which weapon of choice? Up until now, I’d mostly used Lovable for clickable prototypes - basically, mockups you can show off, or validate an idea to drive stakeholder validation, but not really do much with. I’d never actually gone full stack with it. No authentication, no databases, none of that scary backend stuff.
And since I’m firmly a believer in the “sink or swim” school of learning, I figure: why not just dive headfirst into something that could actually break? Enter Cursor.
I’d tinkered with Cursor before, but only to spin up simple HTML files. Fun, but those are locally hosted - meaning you can click around all you want, but it’s not live-live. You can’t send the link to a friend and have them check it out. Still, I gave myself a warm up lap by playing around with it again: some basic HTML, a couple of tabs to click through, nothing fancy. Just frontend stuff. No database, no data storage, nothing resembling a “real” app, and nothing made live yet.
Saturday: 12:22 pm
In the process of messing around with prompts on Cursor, I hit the free limit. And of course, the little pop up message told me I’d need to upgrade to keep going.
Sigh.
But by then, I was committed. So I do the unthinkable: I spent $20 (~ INR 1760) on a Pro subscription. Naturally, being the cheapskate I am, I immediately cancelled auto-renew so I wouldn’t accidentally pay for month two. Still, the moment I paid up, I decided this automatically made me a “pro.” Enough with the toy HTML files and it was time to actually deploy something and take it live.
Total spends: $20 or INR 1760 on Cursor
Saturday: 1:15 pm
I’ve never really taken anything live before, so naturally I go and pray to ChatGPT to figure out how to deploy these HTML files. The easiest way (or at least that’s what ChatGPT told me) was through GitHub Pages. Cool. No idea how to do this, but let’s roll with it.
I log into GitHub and, side by side with ChatGPT, tried to piece together the steps. It actually seemed fairly straightforward: I took the files Cursor had generated, created a new repository (very creatively named fitness-tracker), uploaded the files, and then “committed the changes,” which is basically github / tech jargon for saving the uploaded files as the latest version of the project. From there, it was a matter of navigating to Settings → Pages, selecting the branch (main) and root folder (basically telling GitHub where the code lives), and hitting save.
A minute later, GitHub spits out a live site link. When I click on it, the site shows up, except my navigation between pages wasn’t working. I’m guessing I messed up my prompts earlier.
After some fumbling around, I finally ask Cursor to just give me a proper, deployment ready package for GitHub with all the logic baked in. I upload that folder, and this time everything seems to work. For the first time, I actually had a “live” site. Looked like FitTracker was on its way.
👇 Screenshot of Github where, after uploading & committing changes, I got the live link
Saturday: 2:00 - 4:30 pm
I’m fairly upbeat. I feel like I’m on track to figure this out. My flatmate and I decide to go out to celebrate. I have a premature celebratory lunch at Pizza Bakery and then take a nap.
Saturday: 5:30 pm
I wake up, pour myself a cup of chai, and convince myself I’m ready to take on the world.
✅ Step one: turn this idea into a live site. Done & dusted. This is what the first iteration through cursor looked like.👇
❓Step two: make it slightly less unsafe (but no less cooler obviously) by adding an authentication layer, using Google OAuth
Health data is private, I reason. Google authentication should be “simple enough.” Famous last words.
Turns out “simple enough” is a massive understatement. Because now I have to call in another service to authenticate, which apparently needs…a backend. Great. Cue frantic chat with ChatGPT. ChatGPT tells me that the easiest way to do this is using a tool called Supabase. Supabase sounds familiar. But also, what the hell is that now?
Ten seconds later, I’m a “backend as a service” expert. For the uninitiated: Supabase is an open-source Backend as a Service (BaaS - not to be confused with Banking As a Service) platform that provides a complete backend stack, including a PostgreSQL database, user authentication, file storage, and serverless edge functions. Also, apparently, it’s a $2B start-up, which was founded in 2020. Fancy.
To make it easier to understand: a fully live website needs a backend for secure storage. Your front-end is can be inspected by anyone, and if you’re using any key pair, or Client ID + Secret (think of this as a username + password) to access secure services, it can be stolen. So the front end website - in this case HTML, cannot directly call other services. The backend, such as Supabase in this case is secure & private, and for things such as authentication, you have to keep your “secret” secure, which only a backend can do.
That’s why Supabase comes in: your GitHub Pages front-end talks to Supabase, Supabase holds your secret, talks to Google, and then passes the user info back. I remember then, I’ve met Supabase before. That’s why it sounded so familiar. It was hanging out in my Lovable experiments, silently hosting my backend while I twiddled my frontend thumbs.
And that is the next step, and the curveball that Cursor throws. I need to generate a Client ID and secret for my project, from Google Cloud console and add that to Supabase so that end users can actually use their emails to sign in: and so that Google can also authenticate this against the project set up in Cloud Console, and ensure that it knows which app is asking for data, and there isn’t anything fraudulent happening. For context, when you’re asked in to sign into a new website using your gmail, that app / website has utilized GoogleOAuth for the same.
Example of Google OAuth happening below: 👇
Lovely. Everything makes perfect English sense, yet in actual practice, I have no clue what the hell I’m doing. But I keep going
Saturday: 7:02 pm
I stumble into Google Cloud Console, squint at all the menus, and somehow set up my project - and keeping it consistent, I call it fitness-tracker. I also have zero clue what URLs to put where, or even how to find the sacred Client ID and Secret. So, naturally, I call in ChatGPT for a rescue mission.
After some trial, error, and copious amounts of frantic scrolling, I finally manage to unearth a couple of complicated looking alphanumeric strings that feel like the keys to the internet itself. Yep, that must be right, I think
Annoying side note: Google makes you set up a “mandate” of up to INR 15k to use this. They pinky promise they won’t touch your wallet for normal OAuth stuff, it’s only for extra spending. Sure, I guess we’ll know soon enough. For now, I have my precious Client ID and Secret, and that’s enough to feel like a developer.
👇 Me setting up my project in Google’s cloud console so I can get the Client ID & Secret to configure into Supabase:
Google Cloud Console set up to use Google OAuth as a sign in mechanism into FitTracker
Mind you, the links you’re seeing now are the ones I eventually put in, when I built the site using Lovable. But more on that later. Earlier, they were just GitHub URLs, because my original genius plan was: “Take this live with Cursor and GitHub, and figure everything else out later.” This is how Google Cloud console also makes authentication requests more secure - if these urls do not match what happens in the live mode, then authentication fails. If you see the above snapshot, it asks for 2 types of urls.
1️⃣ Authorized Javascript Origins: These are the websites allowed to start a login request from a browser.”
2️⃣ Authorized Redirect urls: Once Google authenticates the user, here’s where you are allowed to send them back.
Setting up Supabase for authentication
Supabase wants two things:
1️⃣ Where requests will come from (that’s me telling it my GitHub front end exists). That’s where I add the site url, from where the log-in request will come from.
2️⃣ How it will talk to Google for OAuth (aka: here’s the ultra important Client ID and Secret, please don’t burn my app), which I add below:
I’m a bit pop eyed at this point, but from first principles: it’s basically me logging in and making sure the right URLs & passwords are in the right boxes, so that the different services here are able to talk to each other and authenticate.
The flow, for anyone keeping score, is: GitHub front-end (holds the Client ID) → Supabase backend (holds the Client Secret, and uses ID + Secret to talk to Google) → Google APIs for OAuth → Redirected back to supabase which confirms authentication → redirects back to Front-end. The above is what I have to help map by adding the respecting urls.
Oh, and Supabase hands me a project ID too, which I assume I’ll need to stick somewhere important later. For now, it’s just another mysterious alphanumeric string I can stare at bemusedly.
👇 Thats the skomlyzh….xhx below in the Project ID
Saturday: 9:31 pm
I need a break after all this. I decide to take a break by dissociating on my couch.
I decide to rewatch some episodes of How I Met Your Mother while eating dinner. It’s been years since I watched this show, and after watching a few episodes, I’m pretty sure that if a show like this was pitched in 2025, there would be no way it gets the green signal.
Saturday: 11:05 pm
Now that I’ve heroically gathered all my Client IDs & project IDs from Supabase and Google, I dump them into Cursor and say, “Build me something I can deploy on GitHub, ASAP.” Cursor salutes obediently and 20 files appear in the Cursor chat, in a flurry of green check marks and dramatic exclamation points.
With hands that are somehow both trembling and sweating, I storm into my GitHub fitness tracker repository, upload the files, and commit the changes. I can hear my heartbeat in my ears.
I click the live link. Latency issues? Sure, a little. Design? Seems a little different from the original html file that cursor had created. But the Google auth page actually shows up. My app is alive. I am a developer. Or maybe just someone who finally tricked a bunch of services into working together. Either way, I feel victorious.
👇 Snapshot of what the website looked like after configuring Google OAuth - or so I thought
I then also go through the deployment guide that Cursor has generated helpfully as a part of the files to be deployed. There’s an “extra” step: apparently it also made a database schema for Supabase, and now I have to copy-paste the code into Supabase’s SQL editor and run it so the backend can store all the logs, info, and secret workout data of my users. Sounds simple.
Fifteen minutes later, I emerge slightly more stressed. Supabase’s SQL editor keeps throwing errors. ChatGPT becomes my lifeline, helping me fix one error at a time. I paste, I run, I pray, I repeat, until Supabase finally says, “No errors detected. Go forth and conquer.”
Feeling victorious, I click “Sign in with Google.” Aaaaaand…..nothing.
I get some cryptic error on the log-in page - something along of the lines of “Supabase hates you.” Fine, I think. I have Cursor. My digital sidekick. I open it up, explain the issue, and then type the magic words: “pls fix.”
Cursor ponders, checks, and declares: “Aha! Issue found! Fix deployed.” I can hear triumphant music in my ears. This is it. The moment of glory. I test it locally by opening the HTML file in my browser… and nope. Same problem.
And then begins the cat & mouse game. Cursor fixes one error, and another pops up. Forget deploying to GitHub, the test HTML files don’t even work on my laptop. And as an aside - this is also probably why Cursor is not a great tool for non-engineers. I don’t even know what I don’t know, so unlike other tools / chats where I can give direction, apart from saying please fix, or copying and pasting code from different LLM chats into Cursor, there isn’t too much input I can give here.
Saturday: 12:30 am
I’ve been wrestling this digital monster for eight hours. Cursor has generated multiple test files, troubleshooting guides, and existential dread. Nothing works.By 1:00 am, I realize: it’s Saturday. I need sleep. Tomorrow is another day. I close my laptop and decide to crash.
Phase 2: the slightly less enthu cutlet
Sunday: 10:15 am
My flatmate has woken up at a sane hour. She’s already started her day: gone for a run, chugged a protein shake, stared thoughtfully at some neighborhood cats, and now she’s Ready to Go. Where exactly she’s going, I have no idea.
Meanwhile, I crawl out of my room, eyes half-glued shut, still haunted by visions of Cursor and and the error it keeps throwing out. My battle isn’t done, and my flatmate’s productivity is a cruel reminder that I might never reach that level of morning readiness.
Sunday: 11:15 am
I’ve had breakfast and coffee. I’m feeling a little more upbeat. I have some hope.
Sunday: 11:35 am
I’ve put in a couple of prompts into Cursor, but I literally have no clue what to do. At this point I’m just copying and pasting prompts from cursor to chatgpt and vice versa. I’ve almost given up at this point. We’re going in a circle. I open up chatGPT and ask it why cursor sucks.
Sunday: 12:14 am
I collapse onto the couch and watch a few episodes of With Love, Meghan. Everyone on that show looks like they’re there against their will. Kind of like how Cursor has been “helping” me with my brilliant fitness tracker idea. Deliberate sabotage, I think.
Sunday 3:05 pm
I’ve done absolutely nothing all morning except brood over my failed project, and demolish a hearty lunch. I crack my knuckles. There’s only one solution left: a coffee shop. A cappuccino, bad WiFi, and strangers loudly detailing the horrors of their week is clearly what I need to fix this.
At the coffee shop, I open ChatGPT and pour my soul out: “Look, I’m not an enginer and this project is killing me.” ChatGPT, ever the considerate therapist, responds with a comparison table of tools for tech vs. non-tech-first people, the most prominent being Lovable as a possible alternative to make this dream of mine come true.
And that’s when Lovable steps in. Cue a hero’s entry with loud drum beats, and some inspirational music.
I’m anyway familiar with Lovable for prototyping, but I’ve never used its backend capabilities. It has a direct integration with Supabase for backend hosting, databases, authentication and so on on. And to connect Lovable to Supabase, since it’s already sort of pre-integrated, if I already have an account (which I do because of my Cursor & Github saga), it takes me just 1 click to connect my fitness tracker project in Supabase to Lovable. And another advantage of the pre-integration - Lovable does all the heavy lifting to set up Supabase that Cursor made me bleed for.
I open Lovable and boldly command it to build me a fitness tracker that can rival Whoop & Garmin.
This time, I’m smarter. Instead of springing Supabase & Google OAuth on it at later stages like I did with Cursor, I start from the top, asking for all the integrations in the very first prompt. Lovable even asks me for the Client ID in the chat, so it can map it to Supabase, way easier than the Cursor circus.
In hindsight, I should have probably taken more time to think it through before I even started working on Cursor. This is AI 101 - and I’m smacking myself thinking about it now. In my defence, when I started out, I didn’t even think about the authentication & the backend parts of the site, I was still thinking about it from a very front end perspective.
Of course, it still takes multiple prompts, and I go through my free credits in about 15 minutes. But I’m too far gone to stop, so I bite the bullet and buy a monthly subscription: $25 or INR 2199. Money well spent, I tell myself, as my cappuccino goes cold.
Total Spent: $45 or INR 3959
1. Cursor: 1 month subscription: $20 or INR 1760
2. Lovable: 1 month subscription: $25 or INR 2199
3. Google cloud console: Unbilled but mandate set up in case of further spends: INR 15,000
👉 Insight: Working with Lovable was WAY easier than with Cursor.
Honestly, working with Lovable felt like someone finally gave me the cheat codes. The direct Supabase integration was a game changer, I didn’t have to keep jumping between Supabase and Lovable. Lovable would surface the exact Supabase links I needed in the chat: where to update URLs, where to add client IDs and even allowed me to set up databases, or make edits to the database schema by typing directly in the chat. With Cursor & Github it wasn’t connected, so it was almost like me doing this blindfolded with no prior experience, and required a lot of trial and error to get it right.
That said, spending an entire day wrestling with Cursor, Supabase, and Google Cloud Console definitely paid off. By the time I got to Lovable, a lot of the groundwork was already done. Supabase was set up, the Client IDs & Secrets I had got from cloud console, and Cursor had even created the database schema that I just had to copy and paste into the Supabase SQL editor and run, instead of getting Lovable to set it up again. My job was mostly: update site URLs, callback URLs, and endpoint, because now, instead of GitHub, this was running on Lovable servers.
Once I configure the urls, I test the OAuth flow again, but without too much hope. I’m ready for it to crash again. But this time, it works!
The callback URL you see below: skomlyx…supabase.co is the Project ID of supabase, and what I configured in the Google Cloud redirect URL. After all the chaos, it finally felt like a real app, and I felt a sense of accomplishment.
👇 Live and working GoogleOAuth from the app built on Lovable
Sunday 4:30 pm
On that note, I head out to play padel with some friends. This is only my second time playing, and while it’s obviously not on par with tennis, it’s way more satisfying than pickleball.
Sunday 8:30 pm
I’ve come back from playing padel, had a protein shake, and settled in for dinner. Now, with the day winding down, I sit back to explore the app I’ve created. Everything seems to be working, so I start testing if the events are being logged into Supabase.
This is another win: thanks to Cursor, I had already set up the database and Supabase project for FitTracker. But what Lovable added on top was amazing, it let me create and edit the database schema directly through the chat. I could make changes on the fly without jumping between consoles.
I publish the site, start interacting with it, and lo and behold I can see the database logging events perfectly. The data is flowing, everything is syncing, and I feel a rush of excitement. For the first time, it hits me: I’ve actually built something from scratch, something tangible and functional.
👇 Supabase data tables recording live data logged in from the app
Phase 3: Adding the AI recommendation layer using OpenAI APIs:
Sunday: 10:00 pm
I’m feeling pumped - FitTracker is officially working! I send the link to a few friends to try it out. They’re able to sign in without a hitch and add their fitness details. Watching the data appear in the Supabase database in real time is thrilling. It’s one thing to build something, but seeing others interact with it and knowing it’s actually logging data? I feel pretty accomplished.
I decide it’s time to add a recommendation engine to FitTrack. Following my usual routine, I open Lovable and command it to create an AI-powered workout recommendation engine. It pauses thoughtfully, then tells me I need to share my OpenAI secret. Essentially, the flow will now be: Lovable (front end) → Supabase (backend) → OpenAI intelligence → output back to Lovable (this is after auth is done).
At this point, I feel like an expert, I have client IDs and Secrets coming out of my ears. Lovable provides a link to the OpenAI developer login, and I flex my fingers like a pro, opening ChatGPT on the side for guidance. Compared to the chaos of juggling Google, Supabase, and Cursor, this seems laughably easy.
👇 Getting OpenAI keys to access OpenAI intelligence for AI powered recommendations
I go to the OpenAI API keys, generate a key, and share it with Lovable. Lovable thanks me profusely and confirms the recommendation engine is ready. Forget an AI powered PM, I’m ready to call myself an AI engineer at this point. I enter the configuration details, which I’ve set as muscle groups, intensity, duration of workout, and training type (cardio, strength, HIIT) and wait breathlessly.
The workout starts generating. And then gets stuck. It never generates, but remains in that loading state, like the google log-in errors I had when I was building the website using Cursor. I’m having traumatic flashbacks at this point.
I’m at my wit’s end, so I ask Lovable to fix it. The problem seems to be billing (of course, OpenAI APIs aren’t free). I smack myself on the forehead, but also feel slightly relieved. I head back to OpenAI, and prepay $10 (+18% GST, so $11.80 or INR 1038) to get this working. I then reload the FitTracker on Lovable, and ask it to generate another workout. It fails again. I’m close to tears.
Total Spent: $56.80 or INR 4996
1. Cursor: 1 month subscription: $20 or INR 1760
2. Lovable: 1 month subscription: $25 or INR 2199
3. Google cloud console: Unbilled but mandate set up in case of further spends: INR 15,000
4. OpenAI APIs: $11.80 or INT 1038 ($10 + 18% GST prepaid)
Sunday: 10:46 pm
The finish line is so close I can almost taste it. Lovable tells me to check the logs on Supabase. I peer at them, completely clueless. Meanwhile, Lovable explains that there’s a mismatch between frontend and backend, the backend is sending one event, but the frontend is expecting another. It applies a fix and then fails again.
I’m relentless. I prod Lovable to fix it, again. This time, as we inspect the logs together, we discover that OpenAI is returning empty responses. Lovable explains that GPT-5 is using different model parameters.
It switches back to GPT-4o……and it WORKS!
⏳ I select my workout preference…
🎉 And FitTracker generates an AI powered workout! On inspecting the Supabase logs, I also see that there is a successful OpenAI response!
I can’t believe it! I’ve created an AI-powered app and taken it live, well, live by my definition. The only thing that still bothers me is the domain name:
Domain name on Lovable: https://ddffc4fd-031d-4e01-8a50 9713ab82e93b.sandbox.lovable.dev/dashboard
Clearly, this won’t do. Luckily, it’s easy enough to fix. You can go to a domain registrar like GoDaddy and search for a domain. Once you buy it, you need to:
Connect your domain in Supabase.
Follow Supabase’s instructions to configure the same DNS settings in your registrar (Ex: GoDaddy, if you have used a vendor that is not connected to Supabase for domain set-up).
Wait for DNS propagation, which is fancy tech-speak for “record updates.”
Once that’s done, anyone who visits fitttrack.in for example, will be redirected to my app on Lovable’s servers. I can set up / buy my domain straight from Lovable, you can follow the steps in the chat. Lovable (like everything else clearly) has also built a way to seamlessly add your custom domain to your app build, and allows you to also buy domains through integrated third party vendors.
👇 Setting up your custom domain for your project on Lovable
👇 IONOS - 3rd party integrated with Lovable through which you can buy your custom domain.
I decided not to take this step. I felt that spending INR 5k on this project was a good enough amount, and I have done this domain set up / DNS set up in the past, so I didn’t feel I needed to spend money on this experience.
Conclusion: It took me about 2 whole days to figure this out and build something from scratch, with zero experience.
It took me about two full days to figure this out and build something from scratch, with zero prior experience. But it was also me being relentless, sticking with it until I got it right. And there were times when I was close to just shutting this down.
Some key takeaways:
This was a pretty good learning experience. I now have a much better understanding of how to use these tools, not just Cursor and Lovable, but also how to integrate third-party services to build a full-stack website, such as Authentication and backend services. Next time I tackle a project, I expect the process to be much faster. The “move fast and break things” philosophy really worked here, and I came away with practical knowledge of what to do, which tools to use, and what to set up.
I definitely recommend this approach for anyone who wants a solid, hands-on understanding of these tools, assuming, of course, you have time to spend, you’re willing to invest a bit, because AI isn’t cheap. I ended up spending around $25 on Cursor, $20 on Lovable, and $11.80 on OpenAI, for a total of $57 or ~INR 5k Thankfully, Supabase and Google OAuth didn’t cost me anything, but that was because I built this as a personal project with zero traffic, and I didn’t buy a custom domain.
If you’re building something full-stack, you need a clear vision of the services, backend, and auth setup you’ll use before diving in. Hacking together a quick prototype is fine, but once you start layering frontend, backend, and integrations, a little planning goes a long way. These AI tools don’t optimize your codebase, they just keep taping on whatever you ask for. The result? A kind of duct tape engineering: lots of layers, not much stability. Inevitably, things start to break, and I’m assuming that’s why my project on Cursor broke. I even heard a horror story where someone used Cursor to churn out code for a client project, only to have it collapse at deployment because all that duct tape couldn’t hold.
Lovable was way easier to work with than Cursor for me as a non-engineer, especially because of the visual interface. With Cursor, I often got stuck in loops where I didn’t know enough to give meaningful suggestions. Expertise and domain experience clearly matter, and there’s huge value in diving deep into a specific tool or domain.
AI is expensive, even just to experiment. Free prompts only take you so far. Even basic Supabase and Lovable subscriptions cost money. To scale this into a real app with traffic, I’d need to buy a domain and upgrade my backend to handle constant use. But for learning and experimentation, this level of investment was more than worth it.
And also - SaaS might be dead (atleast what some folks on the internet are claiming) but AI SaaS seems to be only starting out
For those saying SaaS is dead, this project reminded me it isn’t, at least not AI SaaS. Subscription models are alive and well when it comes to tools that actually let you build something meaningful. Another example: Golpo AI - a tool I’ve been experimenting with to create article videos, costs $20/month just to make 8 minutes of AI generated video. A tad expensive in my opinion, but it works, and it delivers value.
Runway, another cool tool for image and media generation - I tried to get it to create multiple images for this article, but after 1 image I ran out of credits, and was I told I would either have to wait for a bit, or buy a paid plan (ugh).
And for those of you folks who are building in this space, and using these tools, would love to hear what tools you’re using, and how you’re optimizing your AI toolkit.
👇 How I felt after completing the FitTracker. Image generated by Runway
I want to build a website for mutual funds. I have a rough idea what I want to build. But god, it's too much work even after using these AI tools. Well done Ambika!
Well written Ambika ! Lovely dose of humor to go along with your struggles !