Abstract amber glass software interface visual.
Back to blog
Coding8 min read

Building a production site for free with AI

I built a full production website in 5 days, spent only ₹1,813.75 on the domain, and used nothing but free AI tools. Here's what actually happened, and why it worked.

By Suryansh Kushwaha /

Next.jsAIIndie HackingFree Tools
On this page

I was sitting in my room one Tuesday morning, thinking about my old website. It was fine, I guess. But "fine" doesn't cut it anymore—at least not for me. I wanted something that actually represented what I do now: freelancing, client work, mentoring, writing about tech. My old site was just mentorship, which felt... incomplete.

So I did what any sleep-deprived indie dev would do: I set a constraint so tight it would force me to actually finish something.

Rule: spend almost nothing except the domain. No paid tools, no subscriptions, no shortcuts that cost money.

I thought it was impossible. Five days later, it wasn't.

What I Actually Built

When I started, I had to figure out what the website even was. Not just technically, but conceptually. What am I selling? What does someone need to know about me when they land on my site?

I ended up with three separate business verticals:

  • Hire Me: For freelance projects and one-off work
  • Studio: For longer-term client engagements
  • Mentorship: One-on-one mentoring with a booking calendar

Then, because I'm that person, I added a blog (this thing you're reading).

Plus the standard stuff: home page, a portfolio showing past work, contact page, about section. Nothing revolutionary, but it all needed to feel like one cohesive experience, not a Frankenstein's monster of disconnected pages.

The key was deciding early that these three areas weren't afterthoughts. They were the thing. Everything else was supporting cast. That clarity saved me from endless redesigns later.

The Painful Design System

I'm going to be honest: this was the most tedious part of the entire process. But also the most important.

I spent about 5 hours just on color palettes, dark mode variants, and testing every UI component I knew I'd need. Buttons, cards, inputs, accordions, checkboxes, sections—all of it. I'd build a component, throw it on a test page, switch to dark mode, squint at it for 30 seconds, wonder if it looked right, switch back to light mode, question my life choices.

Then I'd do it again. And again.

Why? Because I didn't have a designer. It was just me and my taste. And my taste is paranoid about edge cases. I needed to catch every moment where an amber color might clash with a dark background, or where contrast could fail someone.

Most people would never spend 5 hours on this. They'd grab a UI library, use a template, move on. But I've seen enough projects where the design system breaks down mid-way through, and then you're either living with it or refactoring everything. Not today.

The payoff was real though—when I started building pages, I didn't have to think about design. I just knew which component to use and how it would look. No 2am "wait, why does this button look weird in dark mode?" panic.

The Color Decision (Yes, Really)

I wanted the vibe of places like Supabase, Raycast, and Linear. Places that feel professional and calm, not flashy and distracting. Clean. Intentional.

I went with amber as the primary color. Not because it was trendy, but because it felt right—warm enough to be approachable, professional enough for business stuff, and surprisingly beautiful in both light and dark modes.

I tested it. A lot. Like, an unhealthy amount. But it paid off.

Time Breakdown

Okay, so "5 days" sounds wild when you say it fast. But let me be real about what that actually means:

Day 1 (2 hours thinking, 5 hours design): I spent the morning figuring out positioning and structure. Then I dove into building the design system. Colors, components, dark mode testing. My eyes hurt by the end.

Day 2-3 (roughly 2 days of pages): Home, about, hire me page, studio, mentorship, blog page, contact, work showcase. Some were complex (the mentorship page had custom layouts that took forever to get right), most were straightforward. I wasn't fighting any templates, just building fresh from components I already had.

Day 4-5 (roughly 2 days of backend): Cashfree integration first (tested in sandbox), then Supabase migrations, Stripe setup, email setup with Nodemailer, calendar integration with Cal.com, database schemas. Webhook testing ate up a solid chunk of time because I'm paranoid about payment stuff breaking in production.

The hours were scattered through the day because I was doing other things too. Eating, answering messages, that one 2-hour rabbit hole where I debated whether to use rounded corners on buttons or not. (I did. No regrets.)

The real secret wasn't time management, it was momentum. I didn't wait for things to be perfect. I built, I shipped, I moved on. Each day had one clear target, and I didn't let myself get distracted by shiny ideas.

The Stack (Absolutely FREE!)

Here's what I used:

Frontend: Next.js 16, Tailwind CSS v4, React Icons (it's all pretty standard modern web stuff)

Payments: Cashfree for Indian transactions (I cover their processing fees because I'm still scrappy about costs), and Stripe with $1000 free transaction volume via GitHub Education. That covers my launch period nicely.

Backend: Supabase handles the database and real-time subscriptions. Their free tier does everything I need right now.

Email: Nodemailer over SMTP. No service fees, just sending emails the old-school way. It works.

Calendar: Cal.com's free version. I'm not self-hosting anything—I'm not that much of a masochist.

Hosting: Vercel's free tier handles everything. Preview deploys, serverless functions, the works.

DNS: Cloudflare free tier. Plus they give you email forwarding so I can actually own my email address without paying for hosting separately.

When I mapped this all out, I realized something: the free tier economy is actually insane now. There are legitimate free services that handle serious production workloads. We're living in a weird timeline.

What Actually Cost Money

Just to be crystal clear about the "completely free" claim: I spent ₹1,813.75 (~$22) on a 2-year domain. That's it. Full stop.

No monthly bills. No "you'll need to upgrade later" gotchas (well, maybe eventually, but not today). No surprise charges. Just domain registration, paid once, done.

Everything else? Zero.

I do pay transaction fees to Cashfree myself (the company hasn't given me a discount, I'm just eating the cost), but that's not a build cost, that's a business operating cost. Stripe covers my first $1000, which is genuinely generous.

Why It Didn't Fall Apart

Here's the thing about free AI: it runs out. Claude's free tier has limits, Copilot ran dry, so I switched to Gemini. Then those credits hit their ceiling too.

Most people would have stopped here. "Well, can't work without Claude." But that's where something weird happened.

I hadn't been obsessively documenting anything myself. Instead, early on I created an AGENTS.md file. It was basically a set of instructions for any AI I used: "Your job is to create and maintain a NOTES.md file that documents the entire project state—crisp updates on schemas, integrations, components, everything. Keep it updated after every change."

So when I switched to a fresh AI, it would read AGENTS.md, which told it exactly how to update or reference NOTES.md. Suddenly it had full context on where we were, what was built, and how it was wired. It worked. Context survived the tool-switching.

That AGENTS.md became my secret weapon. It turned every new AI into a consistent project manager that actually remembered things.

(There's a whole second blog post in this idea, and I'll write it. This one is already long enough.)

The Surprises (Good and Bad)

The good surprises: Building components from scratch was faster than I expected. Once the design system was locked in, things just flowed. Stripe's webhook testing was genuinely solid. The payment flow actually worked right the first time, which never happens.

Switching between payment gateways wasn't painful either—the APIs were similar enough that Cashfree → Stripe felt like refactoring, not rewriting. That was genuinely nice.

The bad surprises: Juggling two payment systems with different costs and flows ("Cashfree charges me, Stripe gives me credit") was more confusing than it should have been. The hours were scattered, and momentum sometimes dipped when real life interrupted.

The "why didn't I think of this earlier" moment: The hardest part of this entire project wasn't coding or design or payment integration. It was deciding what to build. Once I knew I wanted hire/studio/mentorship as three separate pillars, everything else fell into place. The technical stuff is just... implementation.

Is This Actually Production?

Genuinely asking myself this question when I flipped the switch. Is this "real" or is it a toy?

It handles actual transactions. Money moves. Emails get sent and delivered. People can book mentoring sessions and the calendar works. It's not enterprise-scale—I'm not handling millions of requests—but it's real. It's live. It's doing business.

An indie dev can do a shocking amount with free tiers before they actually need to pay for anything. The moment that changes, it means you're winning.

What Happened Next (The Workflow Question)

Okay so here's what's nagging at me now: does this actually scale?

I have a system that worked for 5 days of building. But what happens when I'm 3 weeks in and the project is way deeper? What happens when free AI runs out? What happens when I genuinely need to upgrade something?

Those are the questions I want to dig into. Because the real story here isn't "AI is free"—it's "having a system made the difference between chaos and actually shipping."

That's a different post though. A deeper one.


Built in 5 days. Shipped for the cost of a domain. YOUR TURN.

If you're thinking about doing something like this, you probably can. You have the tools. What you might be missing is the decision about what you actually want to build, and a way to keep your brain in sync across tool switches.

The barriers are lower than they've ever been. The hard part isn't the tools anymore—it's knowing what you want to make.