DEV Community

Biricik Biricik
Biricik Biricik

Posted on

Lessons from shipping 19 landing pages in 3 days as a solo bootstrapped founder

I shipped 19 landing pages in 3 days for ZSky AI. Here's what I learned about velocity, AI as a sketching tool, and why most founders ship too slowly.

I'm not writing this to brag. I'm writing it because every conversation I've had with a fellow indie hacker this month started the same way: "I've been planning a landing page for our new niche for two weeks." Two weeks. To plan one page. Meanwhile the narrative window they were chasing was already closing.

This is the retrospective I wish someone had handed me a year ago.

The context — why I had to move

A few things collided in the last week of March that forced me to pick up the pace.

Sora announced an April 26 shutdown of its public free tier. That meant a defined, dated cohort of users were about to lose a tool they loved. There was a window — maybe two weeks — to be the first thing they found when they searched "what should I use instead of Sora."

Grok paywalled its free video generation. Same dynamic, smaller cohort, same opportunity.

Google Vids launched on April 4. A week later it was already the default suggestion in half the "AI video for marketing" articles I read. If I waited a week to respond, the search results would harden around it and I'd be invisible.

I'm a solo bootstrapped founder. I can't out-spend Google. I can't out-staff OpenAI. The only edge I have is that I can decide on Tuesday morning and ship by Tuesday night. So I sat down and made a list of every narrative window opening in the next 14 days, and I started shipping pages.

Nineteen pages in 72 hours. I'd never done anything like that before, and frankly I didn't believe I could until I was already on page 11.

The system — research cycles and execution cycles, alternating

The mistake I'd made on every previous push was treating "research" and "build" as one phase. I would research for hours, get tired, ship one half-finished page, and tell myself I'd come back to it. I never came back to it.

This time I broke it into ruthless alternation:

Research cycle (30-60 minutes): Pick a narrative window. Read the news. Skim three competitor pages. Write a one-paragraph "what does this page need to say" note in a single claims.json file. No design. No copy yet. Just the angle.

Execution cycle (60-90 minutes): Open the template page. Duplicate it. Replace the hero block, the proof block, the FAQ. Wire the CTA. Ship it. Submit it to IndexNow on push. Move on.

I never let either cycle exceed its budget. The moment a research cycle ran long, I started building with whatever I had. The moment an execution cycle ran long, I shipped a v0.5 and promised to come back. I almost never had to.

The single most important rule: every page goes to the same template. Same hero structure, same CSS, same nav, same footer. No design decisions per page. I had spent two days the previous month picking colors for a landing page that got 41 visits in a week. Never again.

Other rules that mattered:

  • No committee. I am the committee. I write the angle, I write the copy, I push the commit, I check the screenshot, I move on.
  • IndexNow on every push. Bing and Yandex pick up new pages within minutes when you ping them. If you're shipping at this speed, the index needs to know in real time.
  • Single source of truth for claims. Everything I claimed on any page lived in one JSON file. If a number changed, I changed it once. This is also how I avoided contradicting myself across pages on page 14.
  • Sketch with AI, finish by hand. I used AI to draft the first version of each page's copy in 30 seconds — bullets, headline candidates, FAQ questions. Then I rewrote what mattered by hand. AI was a sketching tool, not a finishing tool. Treating it as a finishing tool is how you end up with the same five hero phrases everyone else has.

The unfair advantages I should be honest about

Velocity isn't only about discipline. I had three structural advantages, and I'd be lying if I said you can replicate this without any of them.

1. I own the GPUs. ZSky AI runs on seven RTX 5090s in a rack in my office. Every time I needed a hero image, a demo clip, a social card, or an alt-version of an image for a different aspect ratio, the marginal cost was zero. I generated 240+ pieces of media for these 19 pages without thinking about a budget. If I had been paying per generation, this push would have been impossible — not because of the dollars, but because of the decision fatigue of "is this hero shot worth $0.80 to retry."

2. claims.json was a single source of truth. I wrote it the week before. It was 180 lines. Every fact I'd want to put on any page lived there: free tier limits, paid tier prices, GPU count, user count, founder story, accessibility commitments, security posture. When I was building a page, I was retrieving claims, not deciding them. That alone cut my per-page time in half.

3. The team can ship in hours, not weeks. This is mostly because the team is one person, but it's also because nobody is waiting on anyone. No Jira. No standup. No design review. If you're a solo founder, the lesson is: protect that. The moment you add a process that takes more than a day to round-trip, your velocity halves.

The actual pages I shipped

For anyone curious what 19 pages in 72 hours looks like, here are 10 of them, with the angle each one was chasing. Every one went live at zsky.ai, to the same template.

  • /sora-refugee.html — Countdown clock to Sora's April 26 shutdown with a one-click migration path. Be the first thing a Sora user sees when they search "what now."
  • /one-million-minds-eye.html — A free lifetime Ultra plan for the first one million people who self-identify as having aphantasia or a visual processing condition. The page closest to my heart; aphantasia is part of my own founder story.
  • /human-made-with-ai.html — An anti-slop manifesto. A third position that says human taste plus AI tools is the actual future, and most "AI art" feels bad because the human taste step got skipped.
  • /beauty-index.html — An anti-benchmark. A public scoreboard of how much beauty a tool helps a real human ship. Benchmarks are how you optimize the wrong thing.
  • /healthcare.html — A free Pro plan for licensed clinicians who use visual storytelling in patient education. Narrow audience, high trust, almost no competition.
  • /security.html — Data sovereignty. Where the GPUs are, who can read your prompts, what the retention policy is. Every enterprise inquiry asked the same five questions; now they have a URL.
  • /uk-ai-video-generator.html — A UK-specific landing page. Same product, but testimonials and SEO tuned for UK searches. Geo pages are unsexy and they work.
  • /press.html — A press kit. Logo pack, founder photos, fact sheet, contact. I had been saying "I should make this" for four months. It took 90 minutes.
  • /accessibility.html — Broader than the aphantasia page. Screen reader stories, motor accessibility, low-vision flows. About who we are, not what we sell.
  • /google-vids-alternative.html — A direct counter to Google Vids' April 4 launch. Honest comparison, no trash talk. Be in the search results for "Google Vids alternative" before the phrase hardens.

The other nine are smaller geo and use-case pages. The point isn't the pages themselves; it's that every one was a decision I made in under an hour and shipped in under another hour.

What I'd do differently next time

I want to be honest about the tradeoffs, because "I shipped 19 pages and everything was perfect" is a lie nobody should publish.

Template fatigue is real. Around page 14 the template started to feel repetitive to me. (Visitors don't care; they only see one page.) But by page 17 I was making small unprincipled tweaks, and a few of those tweaks were worse than the original. Next time I'd freeze the template completely until the sprint is over.

Over-shipping is a real risk. Some of these 19 pages are not going to convert. They were bets on narrative windows, and a few of those windows will close before traffic ever finds the page. The cost of a page that never converts is ~90 minutes, but I now have 19 pages to maintain. Maintenance compounds. Next time I'd build a "sunset list" into the sprint itself.

Conversion vs visibility is a real tension. Pages optimized for visibility (SEO, narrative timing) are not always the same as pages optimized for conversion. A few of these get traffic but don't convert because the audience is too cold. I should have wired a clearer mid-funnel step on the geo and "alternative to" pages.

I didn't sleep enough. Not a brag. By hour 60 I was making typos I didn't catch until users emailed me about them. Next time: a hard 7-hour sleep window, even if the sprint becomes 4 days instead of 3.

Speed is a moat

The thing to take away isn't "ship 19 pages in 3 days." That's a stunt. The thing to take away is that velocity compounds. Every page made the next one easier, because the template hardened, the claims file grew, the IndexNow integration smoothed out, and my confidence in the angle sharpened. By page 19 I was shipping in 40 minutes instead of 90.

If you can ship in 3 days what your competitor takes 3 months to plan, you don't need to be smarter than them. You don't need a bigger team. You don't need more funding. You just need to actually decide and actually push.

The hardest part of this whole sprint wasn't writing the copy or wiring the CTAs. It was giving myself permission to ship something I wasn't sure was perfect. Most founders die there. They sit on page 1 of 19 forever, polishing.

Don't polish. Ship. The next page will be better than the last one, but only if there is a next page.

ZSky AI is currently at 26K users in 4 months with about 3,000 new signups per day. None of that growth came from a perfect landing page. It came from 19 imperfect ones, shipped in a weekend, while my competitors were still in their planning meetings.

That's the moat. It's not technology. It's the willingness to push the button.


Cemhan Biricik, Founder, ZSky AI

Top comments (0)