Jimmi - AI Image Generator

Jimmi - AI Image Generator

I designed and vibe-coded a full AI image SaaS from scratch 10+ models, a credit system, Razorpay payments, and a live product without writing a single line of backend code manually. This is how I did it, what broke, and what I learned.

I designed and vibe-coded a full AI image SaaS from scratch 10+ models, a credit system, Razorpay payments, and a live product without writing a single line of backend code manually. This is how I did it, what broke, and what I learned.

What I Built
Full product

Auth, credits, payments, 20+ AI models, gallery, pricing page — a live production app with real users and real money flowing.

Timeline
2025 · Ongoing

Built from zero to live product. Still iterating UGC Ad Studio is the next major feature in development.

Responsibilities
Live · 10+ models

A pay-per-use AI image platform with a real credit economy, multi-provider integration, and Razorpay billing built solo.

My Role
Designer + AI Developer

Designed every screen, wrote product decisions, and vibe-coded the entire product using AI tools no manual backend coding.

What I Built
Full product

Auth, credits, payments, 20+ AI models, gallery, pricing page — a live production app with real users and real money flowing.

Responsibilities
Live · 10+ models

A pay-per-use AI image platform with a real credit economy, multi-provider integration, and Razorpay billing built solo.

Timeline
2025 · Ongoing

Built from zero to live product. Still iterating UGC Ad Studio is the next major feature in development.

My Role
Designer + AI Developer

Designed every screen, wrote product decisions, and vibe-coded the entire product using AI tools no manual backend coding.

Why I Built This

Most AI tools force subscriptions. I wanted pay-per-use.

I use AI image tools constantly for client work and personal projects. Every tool I tried had the same problem: you pay every month whether you use it or not. Midjourney, Adobe Firefly, DALL-E all subscription-based, all wasteful for designers who generate in bursts.

So I decided to build it myself using AI coding tools to handle the technical side, while I focused on the product decisions, UX, and architecture. This is how designers build software in 2025.

Every AI image tool required a subscription

Best models were fragmented across platforms

Pricing was never transparent

This was also a personal challenge to go from Figma to a live, revenue-generating product without a technical Knowledge, using only AI coding tools.

Tools I chose and why

each one earned its place.

Every tool was chosen for a specific reason. Nothing was added because it sounded impressive. Everything had to earn its place in a solo-built product.

Icon

Perplexity, Claude, Chatgpt, Gemini and grok.

Research, writing, asset generations

Research, competitive analysis, fact-checking, Copy draft and images

Icon

Perplexity, Claude, Chatgpt, Gemini and grok.

Research, writing, asset generations

Research, competitive analysis, fact-checking, Copy draft and images

Icon

V0 by vercel

Vibe coding

AI-generated rapid front-end, backend database by supabase, managing API and Hosting by vercel.

Icon

V0 by vercel

Vibe coding

AI-generated rapid front-end, backend database by supabase, managing API and Hosting by vercel.

Icon

Supabase

Database + Auth

PostgreSQL database, Google OAuth, phone OTP, Row Level Security, and storage all in one. No separate auth service, no separate database setup.

Icon

Supabase

Database + Auth

PostgreSQL database, Google OAuth, phone OTP, Row Level Security, and storage all in one. No separate auth service, no separate database setup.

Icon

Razorpay

Payments

Indian payment gateway. Supports UPI, cards, net banking, and wallets. Handles the entire credit purchase flow order creation, webhook verification, and credit top-up.

Icon

Razorpay

Payments

Indian payment gateway. Supports UPI, cards, net banking, and wallets. Handles the entire credit purchase flow order creation, webhook verification, and credit top-up.

Icon

Vercel

Hosting + Deployment

Git push = deploy. Automatic SSL, edge network, and serverless functions. Every commit goes live in under 2 minutes with zero DevOps knowledge required.

Icon

Vercel

Hosting + Deployment

Git push = deploy. Automatic SSL, edge network, and serverless functions. Every commit goes live in under 2 minutes with zero DevOps knowledge required.

Icon

Hostinger

Domain + DNS + Email

Domain registration, DNS management, and professional email hosting. Business email set up for Razorpay merchant compliance.

Icon

Hostinger

Domain + DNS + Email

Domain registration, DNS management, and professional email hosting. Business email set up for Razorpay merchant compliance.

Icon

Next.js 16

Frontend + API

App Router with Turbopack. API routes handle all backend logic — model calls, credit deduction, webhook processing. One codebase, one deployment.

Icon

Next.js 16

Frontend + API

App Router with Turbopack. API routes handle all backend logic — model calls, credit deduction, webhook processing. One codebase, one deployment.

Icon

fal.ai

AI Model Gateway

Unified API for FLUX, Qwen, Ideogram, Wan, OpenAI image models, and more. One integration, many models. No separate accounts for every provider.

Icon

fal.ai

AI Model Gateway

Unified API for FLUX, Qwen, Ideogram, Wan, OpenAI image models, and more. One integration, many models. No separate accounts for every provider.

AI Models Integrated

Google Imagen 4 (Fast / Standard / Ultra)
Google Imagen 4 (Fast / Standard / Ultra)
Nano Banana + Nano Banana Pro
Nano Banana + Nano Banana Pro
ByteDance Seedream 3.0 / 4.0 / 4.5
ByteDance Seedream 3.0 / 4.0 / 4.5
GPT Image 1.5 + GPT Image Mini
GPT Image 1.5 + GPT Image Mini
Ideogram v2 Turbo
Ideogram v2 Turbo
Qwen Image Edit + LoRA
Qwen Image Edit + LoRA
Wan v2.2 · Fast SDXL
Wan v2.2 · Fast SDXL
FLUX Schnell / Dev / Pro / Kontext
FLUX Schnell / Dev / Pro / Kontext

How I Built It

Six stages of building a
real product as a designer.

The process wasn't linear I designed, broke things, debugged, redesigned, and shipped. Here's the honest version of how this went.

1 – Product Architecture

Defined the full system before touching any tool. Credit model, FIFO expiry logic, multi-provider routing, Supabase schema, API endpoint structure. Product spec first.

2 – UI Design in v0

Designed every screen in v0 auth, dashboard, generate page, gallery, pricing, sidebar. Used ImagineArt + Freepik as visual references. Dark theme throughout.

3 – Backend via Supabase

Full-feature logic credit deduction (FIFO), Supabase triggers for free credits on signup, Razorpay order creation and webhook verification, API route structure.

4 – Model Integration

Connected 10+ models across fal.ai, ByteDance BytePlus, and Google Gemini API. Each provider required its own request schema the hardest part of the technical build.

5 – Debug + Deploy

Used V0 to run and debug. Fixed build errors, font import duplicates, JSX syntax issues, and provider payload mismatches. Every error read and traced manually.

6 – Live + Framer Site

App deployed on Vercel. Landing page built in Framer. Razorpay business onboarding completed with all compliance pages. App is live and accepting real payments.

Features Shipped

Everything a SaaS needs. Built solo, no shortcuts.

These are not wireframes or prototypes. Every feature listed here is live in production and has been tested with real usage.

Razorpay credit packs + custom
Payments

Four preset credit packs (₹199–₹1999) plus a custom input where users type any amount. Razorpay order creation, payment verification via webhook, and automatic credit addition on successful payment. Compliance pages written for Razorpay approval.

Razorpay credit packs + custom
Payments

Four preset credit packs (₹199–₹1999) plus a custom input where users type any amount. Razorpay order creation, payment verification via webhook, and automatic credit addition on successful payment. Compliance pages written for Razorpay approval.

10+ models, one interface
Generation

Model selector grouped by provider. Each model has its own credit cost, aspect ratio support, quality options, and API schema. Text-to-image and image-to-image modes. Batch generation up to 4 images. Credit deduction happens before generation refunded automatically on failure.

Two-way authentication
Auth

Email + password, Google OAuth all via Supabase. New users get 10 free credits automatically via a database trigger on signup. Session handling, protected routes, and redirect logic all working in production.

Two-way authentication
Auth

Email + password, Google OAuth all via Supabase. New users get 10 free credits automatically via a database trigger on signup. Session handling, protected routes, and redirect logic all working in production.

FIFO credit system with expiry
Credits

Each credit purchase is a separate entity with its own expiry date. Credits are consumed oldest-first (FIFO). Starter pack expires in 1 month, Power pack in 6. Total balance is calculated dynamically never stored as a single number.

Full business compliance stack
Business

Razorpay merchant account setup, purpose code P0803 (data processing), SaaS business category selected, Terms, Privacy, Refund, Shipping, and Contact pages written and published. Google Cloud credits applied for model inference cost offset during development.

What Got Built

20+ AI models integrated
20+ AI models integrated
Google, ByteDance, FLUX, OpenAI, Ideogram, Qwen, MiniMax, Wan, Stability.
Google, ByteDance, FLUX, OpenAI, Ideogram, Qwen, MiniMax, Wan, Stability.
All live, all generating real images in production.
All live, all generating real images in production.
Web + mobile responsive
Web + mobile responsive
₹1 Per credit
₹1 Per credit
Transparent pricing model. 1 credit = ₹1. Users know exactly what every model costs before they generate. No hidden conversions.
Transparent pricing model. 1 credit = ₹1. Users know exactly what every model costs before they generate. No hidden conversions.
4 Credit packs live
4 Credit packs live
Starter (₹199) through Power (₹1999), plus custom credit input. FIFO expiry, per-purchase entity model, Razorpay webhook-verified top-up.
Starter (₹199) through Power (₹1999), plus custom credit input. FIFO expiry, per-purchase entity model, Razorpay webhook-verified top-up.
0 Lines of backend code written manually
0 Lines of backend code written manually
Every API route, database trigger, webhook handler, and credit deduction function was built through AI tools directed and validated by me as the product owner.
Every API route, database trigger, webhook handler, and credit deduction function was built through AI tools directed and validated by me as the product owner.

What Broke

Every provider had a different rule. Every rule had to be learned the hard way.

Each solution addresses a specific constraint from research. The goal across all of them was the same: one system that operators could use without thinking about the system.

Unsupported parameters breaking every Seedream request

All ByteDance models (Seedream 3.0, 4.0, 4.5) returned 400 errors. Logs showed sequential_image_generation is not valid. BytePlus rejects any unknown field it doesn't ignore extras like other APIs.

Fix :

Remove sequential_image_generation, stream, and watermark from ByteDance requests. Build provider-specific adapters instead of one shared payload schema.

ByteDance API authentication failing entirely

401 Unauthorized on every ByteDance request in production. The API key was set locally but never added to Vercel environment variables. Frontend calls also can't access server-only secrets — a fundamentally wrong architecture.


Fix :

All provider API keys must live in Vercel environment variables only. Backend API routes inject keys — never expose them to frontend or AI coding tools.

422 Unprocessable Entity on FLUX and GPT image models

FLUX 2 Dev, GPT Image 1.5, and Qwen models all failed with 422 errors. The generic payload sent enable_safety_checker, guidance_scale, and num_inference_steps — none of which these models support.


Fix :

Each fal.ai model needs its own input schema. Generic payload reuse across providers is the root cause. Per-model validation required before API call.

Duplicate font imports crashing Turbopack build

Vercel build failed with V0_Font_Geist_Mono is defined multiple times. AI tools (v0, Lovable) each added font imports incrementally without checking what was already there. Turbopack is strict — no duplicate symbols.


Fix :

One import block for all Google Fonts. Each font alias unique. Handlers and logic declared before return(), never inside JSX. Rules enforced manually after each AI-generated commit.

Silent prompt blocking with no error just empty predictions

Google Imagen returned 200 OK with zero predictions for portrait prompts with editorial language. No error code, no message. The API simply returns nothing when it blocks content silently.


Fix :

Handle zero-prediction responses as a blocked prompt. Show a clear user message instead of a generic failure. Add content-safe prompt suggestions for Imagen specifically.

Unsupported parameters breaking every Seedream request

All ByteDance models (Seedream 3.0, 4.0, 4.5) returned 400 errors. Logs showed sequential_image_generation is not valid. BytePlus rejects any unknown field it doesn't ignore extras like other APIs.

Fix :

Remove sequential_image_generation, stream, and watermark from ByteDance requests. Build provider-specific adapters instead of one shared payload schema.

422 Unprocessable Entity on FLUX and GPT image models

FLUX 2 Dev, GPT Image 1.5, and Qwen models all failed with 422 errors. The generic payload sent enable_safety_checker, guidance_scale, and num_inference_steps — none of which these models support.


Fix :

Each fal.ai model needs its own input schema. Generic payload reuse across providers is the root cause. Per-model validation required before API call.

Silent prompt blocking with no error just empty predictions

Google Imagen returned 200 OK with zero predictions for portrait prompts with editorial language. No error code, no message. The API simply returns nothing when it blocks content silently.


Fix :

Handle zero-prediction responses as a blocked prompt. Show a clear user message instead of a generic failure. Add content-safe prompt suggestions for Imagen specifically.

ByteDance API authentication failing entirely

401 Unauthorized on every ByteDance request in production. The API key was set locally but never added to Vercel environment variables. Frontend calls also can't access server-only secrets — a fundamentally wrong architecture.


Fix :

All provider API keys must live in Vercel environment variables only. Backend API routes inject keys — never expose them to frontend or AI coding tools.

Duplicate font imports crashing Turbopack build

Vercel build failed with V0_Font_Geist_Mono is defined multiple times. AI tools (v0, Lovable) each added font imports incrementally without checking what was already there. Turbopack is strict — no duplicate symbols.


Fix :

One import block for all Google Fonts. Each font alias unique. Handlers and logic declared before return(), never inside JSX. Rules enforced manually after each AI-generated commit.

Unsupported parameters breaking every Seedream request

All ByteDance models (Seedream 3.0, 4.0, 4.5) returned 400 errors. Logs showed sequential_image_generation is not valid. BytePlus rejects any unknown field it doesn't ignore extras like other APIs.

Fix :

Remove sequential_image_generation, stream, and watermark from ByteDance requests. Build provider-specific adapters instead of one shared payload schema.

422 Unprocessable Entity on FLUX and GPT image models

FLUX 2 Dev, GPT Image 1.5, and Qwen models all failed with 422 errors. The generic payload sent enable_safety_checker, guidance_scale, and num_inference_steps — none of which these models support.


Fix :

Each fal.ai model needs its own input schema. Generic payload reuse across providers is the root cause. Per-model validation required before API call.

Silent prompt blocking with no error just empty predictions

Google Imagen returned 200 OK with zero predictions for portrait prompts with editorial language. No error code, no message. The API simply returns nothing when it blocks content silently.


Fix :

Handle zero-prediction responses as a blocked prompt. Show a clear user message instead of a generic failure. Add content-safe prompt suggestions for Imagen specifically.

ByteDance API authentication failing entirely

401 Unauthorized on every ByteDance request in production. The API key was set locally but never added to Vercel environment variables. Frontend calls also can't access server-only secrets — a fundamentally wrong architecture.


Fix :

All provider API keys must live in Vercel environment variables only. Backend API routes inject keys — never expose them to frontend or AI coding tools.

Duplicate font imports crashing Turbopack build

Vercel build failed with V0_Font_Geist_Mono is defined multiple times. AI tools (v0, Lovable) each added font imports incrementally without checking what was already there. Turbopack is strict — no duplicate symbols.


Fix :

One import block for all Google Fonts. Each font alias unique. Handlers and logic declared before return(), never inside JSX. Rules enforced manually after each AI-generated commit.

What I Learned

Vibe coding is real product building, but you must be the architect, not the passenger.


Every AI provider has its own rules. Shared schemas are a trap.

GitHub is the brain. AI tools are just hands. Never mix them up.

Got a product to build? Let's figure it out.

For freelancing Opportunity

Schedule a call for freelancing projects.

For Fulltime Opportunity

Download a following Resume and contact me

Got a product to build? Let's figure it out.

For freelancing Opportunity

Schedule a call for freelancing projects.

For Fulltime Opportunity

Download a following Resume and contact me

Got a product to build? Let's figure it out.

For freelancing Opportunity

Schedule a call for freelancing projects.

For Fulltime Opportunity

Download a following Resume and contact me

Let's create something

extraordinary together

If you want to discuss a product role, a team need, or a

project at company level, get in touch:

Find me on

Role

UI/UX Designer — Prowess Enterprises

Phone Number

© 2026 Hemal Singh Designed with care and attention to detail.

Let's create something

extraordinary together

If you want to discuss a product role, a team need, or a

project at company level, get in touch:

Find me on

Role

UI/UX Designer — Prowess Enterprises

Phone Number

© 2026 Hemal Singh Designed with care and attention to detail.

Let's create something extraordinary together

If you want to discuss a product role, a team need, or a project at company level, get in touch:

Find me on

Role

UI/UX Designer — Prowess Enterprises

Phone Number

© 2026 Hemal Singh Designed with care and attention to detail.

Create a free website with Framer, the website builder loved by startups, designers and agencies.