I shipped an AI cartoon generator from Timor-Leste in 2 weeks — here's how A developer in Timor-Leste built FurakToon, an AI cartoon generator that turns sentences into anime or cartoon images in seconds, in about two weeks for the Mind the Product 'Everyone Ships Now' hackathon. The app supports 21 languages with a Southeast Asian focus, uses a monthly free-credit system with atomic spending logic in Postgres functions, and includes a lazy monthly reset and automatic refunds on failed generations. The developer also integrated Novus.ai for analytics, which revealed user behavior insights that shaped product decisions. TL;DR— I built, an AI app that FurakToon turns a sentence into a beautiful anime or cartoon image in seconds. It speaks 21 languageswith a Southeast-Asia focus, has a monthly free-credit system, and was built in ~2 weeks for the Mind the Product"Everyone Ships Now" hackathon. This is the build-in-public story. I'm building from Timor-Leste 🇹🇱. Furak means "beautiful" in Tetum , our language — so the app is FurakToon : beautiful cartoons . That one constraint shaped the whole product. Nothing exotic — boring tech, shipped fast: The image generation? A few API calls. The product around it is where the real work was. "10 free images a month" sounds trivial until you think about double-spends and refunds. I pushed the logic into Postgres functions so spending is atomic: -- spend credits : refill if a new month started, then deduct only if affordable update public.credits set balance = balance - cost where user id = uid and balance = cost returning balance into new bal; -- null = not enough credits The monthly reset is lazy — no cron job. The first action in a new month tops you back up to 10. And if generation fails after charging, the credits are refunded automatically. New users get their 10 via a signup trigger. I rolled a tiny typed i18n layer: one dictionary per locale, English as the fallback, with {placeholder} interpolation and dir="rtl" for Arabic. The locale persists in localStorage and resolves through useSyncExternalStore so there's no hydration flash. Switching language is instant. The two Timor-Leste flag pieces in the showcase strip aren't decoration — they're the whole point. I'm on Supabase's free tier, which pauses after ~7 days idle . During judging, a sleeping DB = a dead demo. So I added: /api/health probe, andSmall touches, but they're the difference between "demo" and "product." The hackathon required Novus.ai , and I expected to bolt it on and forget it. Instead it changed how I worked. I instrumented the real moments — user registered , image generated , image downloaded , content moderation blocked , generation blocked no credits , language switched — and suddenly I wasn't guessing. I could see where people dropped off. Two things genuinely surprised me: That's the shift: from "I think this is good" to "I can see what's working, and act on it." - 👉 Live app: furaktoon.fun Type an idea, pick anime or cartoon, and make something beautiful — in your language. Built for World Product Day 2026 — "Everyone Ships Now" by Mind the Product × Novus.ai. Furak means "beautiful" in Tetum 🇹🇱