Tech Swamy LogoTech Swamy
Services
Arrow Icon
Case StudiesBlogAI Product DevelopmentAbout Us

Jun 09, 2025

ai

4 min read

Behind The Scenes: What It  Really Took to Build My LinkedIn Planner

Sneak a peek behind the curtain of what it really is like to build an app "over the weekend" with bolt.new. I dive into the awesomeness and drawbacks of using AI to build products as an engineer.

vijay rangan

Vijay Rangan

Founder

82 views

Everyone loves a good “I built this with AI in a weekend” story.

This is… not that story.

This is a behind-the-scenes look at what actually happened when I tried to build a simple app using AI tools. The kind of post you'd wish you'd read before diving in.


📌 Why I Built This

I’ve been posting more regularly on LinkedIn—sharing lessons from my consulting work, startup journey, and engineering experiences. But the platform’s publishing experience is bare minimum:

I wanted a basic editorial planner for LinkedIn with:

Something that would give me clarity at a glance.


🤖 Enter “AI-Powered Development”

Everyone’s raving about tools like bolt.new. You describe your app, and it scaffolds the UI, hooks up the backend, and wires things up.

So I thought: why not give it a shot?

Let’s go full “vibe coder” and see how far it gets me.

TL;DR

It got me ~70% of the way there.

The final 30%? Took real engineering work to fix, patch, and polish.

Here’s what that looked like.


🛠️ What Went Wrong (and How I Fixed It)


1.  Broken Migrations & Supabase Conflicts

Bolt generated a users table in the migration files, which conflicted with Supabase’s built-in auth.users.

This broke auth entirely. Supabase was technically right—user already existed—but the custom table had no records.

Fix:

Rolled back migrations, deleted the user table, reset Supabase to its default schema, and updated all foreign key references.


2. State Mismatch in OAuth Flow

The app stored a state string in localStorage but didn’t retrieve it correctly during the LinkedIn callback.

It was comparing a newly generated state to the incoming value—guaranteed to fail.

Fix:

Tracked the issue by console-logging the full flow. Rewrote the code to persist and retrieve the same state across the auth lifecycle.


3. Missing the Final Leg of LinkedIn OAuth

LinkedIn’s 3-legged OAuth requires a server-side token exchange. Bolt didn’t handle this step.

Fix:

I wrote a Netlify Edge Function that:

Then wired the frontend to call this function post-auth.


4. Missing Dev Environment Setup

Bolt didn’t set up a local dev environment. No docker-compose, no local Supabase CLI setup, nothing.

Fix:


5. React Hook Caused Infinite API Calls

Connecting LinkedIn triggered an API loop. The app kept trying to fetch a token that didn’t exist yet.

Fix:

Diagnosed it as a useEffect hook that didn’t guard against undefined states.

Refactored the hook to exit early when the user wasn’t authenticated.


6. Supabase RLS Policies Break Upserts

Bolt used upsert operations to insert/update data, but Supabase’s Row-Level Security blocked the queries.

Fix:

Wrote custom RLS policies allowing authenticated users to upsert based on user_id, restricted by ownership.


✅ The Stack (Post-Refactor)

Here’s the final architecture that now works reliably:


🤯 Wow Moments (Yes, There Were Some)

Despite the issues, a few things were genuinely impressive:

⚡ UI Scaffolding with Bolt

It generated a calendar view, post list, and auth screens faster than I could have prototyped manually. Felt like a solid 4th-year developer wrote it.

📦 Supabase + GitHub + Bolt

The way Bolt integrated GitHub commits with Supabase’s DB schema and file storage was smooth.

🌐 Netlify + Edge Functions

Once I showed Bolt how to write Netlify functions, it became easy to slot in backend logic and deploy.


🧠 Key Takeaways


💬 Would I Do It Again?

Absolutely.

But I’d go in eyes wide open.

AI helped me move faster. But I still had to steer, patch, and clean up behind it.

If you’re a solo founder, engineer, or product builder: This new wave of tools can save you days of work—if you know where to look and when to intervene.


If you’re curious about the app, drop me a message.

Related Blogs

Ready to Scale? Book a free consultation today.

Whether you’re curious or ready to dive in, we’re ready for you. Let’s scale your product and bring your vision to life—schedule a call and make it happen, together!

2025 © All rights reserved