The 48-Hour Challenge: Building Z-Image from Scratch
How we built a free AI image generator website in 48 hours - from domain purchase to deployment. A raw, unfiltered look at building in public.
So it's late, I can't sleep, and I've been watching the community buzz around z-image-turbo for the past few days.
This model just dropped 2-3 days ago, and the discussion is everywhere. Google Trends searches for it are exploding right now.
I tried it on Hugging Face Spaces, and now I get why everyone's talking about it.
I think this might be the next-gen SDXL. Here's what got me excited (for the technical deep dive, check out our evolution of text-to-image AI models):
- Runs on consumer GPUs — finally, no need for enterprise hardware
- Photorealistic human faces — the realism on portraits is insane
- Fast — generation with only 8 inference steps
- Proper text rendering — English and Chinese, actually readable
The hype is real. But the Hugging Face Space is always crowded, and most people still can't easily try it without waiting in queue or setting up locally.
I want more people to be able to use this model.
So I made a decision: I'm building a free website for it.
The 48-Hour Challenge
- Build a free z-image-turbo site from scratch
- Full Building in Public: domain → dev → deploy → launch
- 48 hours, starting now
- If I fail, roast me forever
What you'll see: Every step documented. Every mistake exposed.
Whether I succeed or crash and burn, you'll learn something.
The stakes: If I fail, screenshot this post. Bring it up forever. Full permission granted.
Clock starts now. 48 hours. Let's see what happens.
T+1h: Getting Started
Getting Z-Image running on our server with ComfyUI. Maybe I can optimize the speed later, but this will do for now.
T+1.5h: Domain Purchased
Purchased domain on Cloudflare — z-image.vip ($10)
T+2h: Project Setup
Deployed Next.js project to Vercel. Since we do web development and have our own refined templates, this step was pretty easy for us. But honestly, with powerful tools like Claude Code nowadays, anyone can do this. You can also purchase ready-made templates from various providers — I won't name them here, but trust me, a quick search and you'll find plenty.
T+3h: Tech Stack Decided
Here's what we're using:
| Category | Technology |
|---|---|
| Frontend | Next.js (Vercel) |
| Domain | Cloudflare |
| Storage | Cloudflare R2 |
| Image Processing | Cloudflare Images |
| Auth | Google Auth, Email Auth |
| Email Service | Plunk |
| Database | PostgreSQL (Neon) |
| ORM | Prisma |
| Background Jobs | Trigger.dev |
| GPU Server | RunPod + FastAPI |
T+4h: Theme & Landing Page Setup
Landing page + theme setup (Tailwind CSS + shadcn/ui, Claude theme). I usually grab my themes from tweakcn.com — big fan of this site because the themes are super clean and dead simple. Every Next.js project has a global CSS file — just copy what you get from the site and paste it in. That's it.
T+5h: Logo Created
Logo created with Seadream 4.0. AI tools making everything faster.
T+6h: Custom Cursor
I even made custom cursor SVG files — honestly this is so fun. Got different versions for dark mode and light mode, plus different states. It's a small thing but makes your site feel different from everyone else's. Super simple feature but really adds personality. The cursor was generated by Gemini 3 Pro.
T+7h: Landing Page Philosophy
Let's talk landing pages — honestly, this part can make or break your site.
Your landing page is the first impression. You've got maybe 3 seconds to convince someone to stay. That's it. So how do you make it count?
The standard playbook:
- Navbar
- Hero section (this is where you hook them)
- Features (what can you do for me?)
- Pricing (be upfront about it)
- Testimonials (social proof)
- Call to Action (tell them what to do next)
- Footer
Real talk though: a lot of those glowing testimonials you see on websites? Yeah... not all of them are real. Some are just placeholder templates. Same with a lot of the content. I'm not saying everyone's faking it, but let's just say you should take some of it with a grain of salt. You'll learn to spot the difference.
When I build landing pages, I spend a lot of time browsing component libraries and other sites for inspiration. No shame in that — why reinvent the wheel? Find something that works, adapt it, make it yours.
But here's what I've learned over time: none of that matters if you can't answer these three questions:
- Why should I use your site instead of something else?
- What problem are you solving for me?
- What makes you different?
Nail those, and you're 90% there. Everything else is just polish.
Oh and one more thing — performance. If your site takes forever to load, people bounce. No one's got time to wait. They'll close the tab before your fancy hero animation even finishes loading.
T+8h: Landing Page Done
Landing page is done! Got all the basics in — navbar, hero, features, pricing, testimonials, CTA, footer. Just need to swap out the placeholder images with actual generated ones later. Honestly, it looks pretty good so far.
Getting a bit tired now, but pushing through. Next up: Google auth and email login. This part's gonna be a bit tedious — gotta register with Google, set up all the env variables, the usual annoying stuff.
T+9h: First Deployment
Site is now deployed on Vercel and live at z-image.vip — might still have some bugs here and there. The main image generation feature isn't fully working yet, but I'm literally falling asleep at my keyboard right now. Gonna take a quick nap.
Next up when I wake up:
- Fix bugs and polish things up
- Generate some actual images to replace the placeholders on the site
Stay tuned — we keep building.
T+10h: Back at It
I'm back. LFG.
T+11h: The Core Loop
Now working on the most important part — the full image generation flow.
This is the complete loop:
- Frontend: user submits a task
- Backend: receives and processes the request
- GPU server (RunPod): handles the actual image generation
- Results: come back and display on the frontend
One full cycle from user input → backend → GPU → back to the user. This is where the magic happens.
T+12h: Major Fixes
Fixed a bunch of stuff:
Mobile styling issue — discovered the waterfall layout wasn't scrolling on mobile but worked fine on desktop. Fixed that.
Image generation flow is now complete: User clicks generate → request goes to backend → GPU picks up the task → starts processing → status updates → callback notifies our backend → order updated → frontend gets real-time results via Upstash Realtime.
One issue though — keeping the subscription open 24/7 seems kinda pricey. Gonna optimize that later. Good enough for now.
Added anonymous login — you can now generate images without signing up. Some folks in the comments asked for this, so I made it happen. But yeah, gotta add captcha or something later to prevent abuse. If you do sign up, you'll get more credits.
Still rough around the edges but we're getting there.
Running multiple projects at the same time is killing me. Without AI I'd be absolutely cooked rn.
T+24h: It's Live
Alright, it's done. Sharing it with everyone now — need you guys to help me test it out.
Site is live: https://z-image.vip/
Running on a single 4090 for now. If traffic picks up, I'll add more machines.
There might still be some small details that need fixing, but the core flow should be working fine. Good enough to share.
Next up I'm thinking about:
- SEO optimization
- Adding some comparison pages between models
- Maybe some benchmark content
- Also noticed the community already has some LoRAs out for this model — definitely wanna try those
Going to sleep now. When I wake up, I'll check the feedback and do another round of fixes.
Let me know what's broken.
What's Next
This is just the beginning. We're planning to:
- Open-source this project on GitHub eventually
- Add more models as they come out
- Keep improving based on user feedback
If you need more free credits, hit us up. We're here to make AI image generation accessible to everyone.
48 hours. One website. Zero sleep. Worth it.
Keep Reading
- Z-Image Turbo vs Flux: 2025 Showdown — Why Z-Image Turbo is 5-10x faster than Flux
- Best Sampler for Z-Image Turbo — Optimize your generation settings
- The Evolution of Text-to-Image AI — From Stable Diffusion to Z-Image Turbo