Q&A
Straight answers about UangForge: what the factory really does, what's AI versus deterministic, and where the honesty guarantees come from.
The project
›What is UangForge?
A portfolio build where you watch software get made: pick or describe a small business app, and the site plans it, builds it, tests it and ships it in front of you — ending in a working app you can use immediately and share by URL. It's the "watch the factory work" piece of a three-part showcase for uang.ai ("The AI Factory").
›Why does this exist?
Because "bespoke software built with AI" is easy to claim and hard to show. UangLite shows an agent operating a real ERP; UangFactory (the website) proves instead of tells; UangForge goes all the way: it demonstrates the delivery loop itself — the thing uang.ai literally names itself after — live, in the browser, in under a minute.
›Is this affiliated with uang.ai?
No. Independent portfolio work by Rico — not affiliated with or endorsed by uang.ai.
What's AI vs. what's real
›Does the AI really build the app?
Here is the honest breakdown: the LLM is the planner — it fills a strict JSON blueprint (entities, fields, views, metrics, workflow) from your description. A deterministic runtime — ordinary, tested React code — builds the actual app from that blueprint. So yes, the app you see is really built and really runs; no, the model doesn't write arbitrary code. That division is the whole point.
›Why not let the LLM write the code?
Because then the demo sometimes works — and a factory that sometimes works is a demo, not a factory. Constraining the model to a schema inside a fixed runtime means every build succeeds, every build is testable, and nothing can be faked. It's also how a lot of real production AI works: model the judgment, engineering the rest.
›What can the factory actually build?
The runtime's full vocabulary: up to 2 entities with 2–7 typed fields, table/board/calendar views, count/sum/avg dashboard cards, seed data, a create-record form, and one approval workflow with a human confirm. Membership trackers, leave approvals, bug triage, inventory reorders — that class of app. The factory refuses what's outside the vocabulary instead of pretending.
›Is the test stage real?
Yes — it's the part most similar demos fake. The checks execute actual validations against your blueprint: schema bounds, every field typed, views resolvable against entities, aggregations resolvable, workflow statuses distinct and present. A failing check stops the line; the fallback is a labeled curated template, never a fabricated result.
›What if there's no LLM API key configured?
You get the nearest match from the curated template library, clearly labeled "curated template". With a key, the planner plans from any description and the result is labeled "planned by LLM". If the planner fails validation twice, you get the curated fallback plus a note explaining exactly what happened.
Privacy & data
›Where is my data stored?
In your browser. Records you create persist in localStorage under a key derived from the app's blueprint. There is no database. The whole built app is encoded inside its URL, so a link can never leak data you entered after opening it.
›What does the LLM see?
Only your prompt (what you typed). No records you create in a built app are ever sent anywhere — they never leave your browser.
Stack & meta
›What is it built with?
Next.js 16 (App Router) · React 19 · Tailwind CSS 4 · TypeScript · AI SDK with any OpenAI-compatible endpoint · zod for the blueprint schema · a URL codec (deflate + base64url) so apps live in links · Vitest + Playwright for tests. No database by design.
›How was it verified before being shipped?
The generation strategy was spiked first: 8/8 prompts produced schema-valid blueprints on the first try with a small model. Unit tests cover the schema (including workflow sanity rules), the URL codec round-trip, and seed determinism. Playwright end-to-end tests build an app through the real theater, create a record through the real form, run the approval flow, and open a shared URL.
›Can I run my own instance?
Yes — open source. Set LLM_BASE_URL / LLM_API_KEY / LLM_MODEL to any OpenAI-compatible endpoint (including a local one). Without them the curated library still powers the whole experience.
Convinced? Run a build and check the results yourself.