DEV Community

Cover image for I'm 12. This morning I fought two hosting providers. My app survived both.
Harun - solo dev
Harun - solo dev

Posted on

I'm 12. This morning I fought two hosting providers. My app survived both.

It's Saturday, 8 AM. Day 1 of my KODA Online Fest. I wake up, grab my POCO C55, open Netlify to deploy v16…

And I get this:

Account credit usage exceeded - new deploys are blocked until credits are added

Translation: you're out of build credits, kid. Come back with a credit card.

I don't have a credit card. I'm 12.

Enemy #1: Netlify

Here's the embarrassing part. KODA is a single static HTML file. No build step. Nothing to compile. And yet I was deploying 10–30 times a day through Git, and every deploy ran a "build" that ate my free build credits.

I was paying a tax on a file that doesn't need cooking.

The workaround: manual deploy. Upload the zip, skip the build, burn zero credits. Ten minutes later v16 was live on a temp URL. Enemy #1 down.

Enemy #2: Neocities

But temp URLs are temp. I wanted a permanent home with no credit system at all. So I signed up for Neocities.

First hurdle: you can't skip the onboarding tutorial. A cat named Penelope makes you write HTML in 10 steps. I speedran it by typing "hi" into every box and smashing Next. Respect to Penelope, she's a good cat.

Uploaded v16. Site went live. I opened it, tapped "Try KODA as Guest," sent a message…

And instead of the AI, I got this:

πŸ›°οΈ OFFLINE SENSEI MODE β€” the AI cloud is unreachable from your network

Wait. What? My internet is fine.

Here's what actually happened: Neocities' free tier ships with a strict Content Security Policy. It blocks browser JavaScript from calling external APIs. My app's fetch to the AI provider? Blocked at the door.

Enemy #2 didn't break my site. It broke my app's ability to talk to its brain.

The part that made it all worth it

Here's the thing. The app didn't crash. No infinite spinner. No white screen. No raw error bar.

Two nights ago a senior engineer told me: "Define what production-ready means before you write the fix." So in v16 I added:

  • A 15-second timeout on every AI call (AbortController)
  • An error_logs table in Supabase that every failure writes to
  • A graceful fallback (Offline Sensei) for when the AI is unreachable

So when the firewall blocked the AI, my error handler caught it, logged it to the database, and served the fallback in under a second. The user never saw a broken app. They saw a sensei scroll.

The code was production-ready. The host was wrong. That's the real lesson: your app can be perfect and still die on the wrong infrastructure.

Where we are now

Fest Day 1 runs on the temp Netlify URL. Neocities stays as a backup home for static pages. Next week I set up Cloudflare Pages properly, with a real GitHub repo, so no host can ever hold my deploys hostage again.

Also, my code has a legend built in called "The Silent Tiger" β€” a senior engineer from China who break-tests KODA through the Great Firewall. He stress-tested v16 last night before logging off at 9 PM. He found nothing. The drawer z-index fix held.

Come vibe with us

KODA is an AI code mentor built by a 12-year-old on a POCO C55. It teaches step-by-step, renders animated LaTeX math, runs your JavaScript in a sandbox, and now survives hosting betrayals.

Try v16: https://koda-aicodementortemp.netlify.app

If it ever shows you Offline Sensei, that's not a bug. That's the feature doing its job. πŸ˜„

Top comments (1)

Collapse
 
koda2026 profile image
Harun - solo dev

Who else is building an entire company from a screen smaller than their hand? πŸ“±

There is an invisible billion of us building on cheap Androids, fighting through firewalls, and surviving hosting betrayals. If you're one of them, drop a 🐯 in the comments.

Also, the KODA Code Jam closes in ~60 hours. If you built a niche app, open the drawer in KODA and submit it to get crowned. πŸ‘‘