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 s 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 🇹🇱