Frequently asked questions

What UangLite is, what it does, and how the AI pilot stays safe.

What is UangLite?

UangLite is a mini-ERP for small trading businesses — products and stock, customers and suppliers, invoices with PDF output, purchase orders, and a live dashboard — with an AI pilot that can answer questions and prepare actions on top of the same business data.

What is the main function of the application?

Running the daily back office of a small business: keep a product catalog with stock levels, bill customers with invoices, restock from suppliers with purchase orders (receiving a PO automatically adds stock), and watch revenue, receivables and stock health on the dashboard. The Pilot AI layers on top so you can ask things like “which products are low?” or “draft payment reminders for overdue invoices” in plain language.

What can the AI Pilot do?

It answers grounded questions using read-only tools: stock lookups, invoice search, business KPIs (revenue, outstanding, overdue) and anomaly scans. For anything that writes, it only prepares a draft — a restock purchase order or a payment reminder email — and waits for your explicit approval before anything is created.

Why do write actions require my approval?

Human-in-the-loop by design. An agent that can silently mutate business data is unsafe, so UangLite's write tools stop mid-run and render Approve / Decline buttons in the chat. Nothing is created until you approve, and every approved draft stays editable. This pattern keeps the AI useful without giving up control.

How is my data isolated from other tenants?

Every tenant (workspace) shares one database but never sees another's rows. The app connects with a database role that cannot bypass Postgres Row-Level Security; each query sets the current tenant and RLS policies filter every read and write. This is verified by automated tests, including an attempt to write across tenants that is rejected at the database level.

How does UangLite track AI costs?

Every model call is logged per tenant with the model name, token counts, tool usage, latency and an estimated cost based on per-token pricing. Owners see the breakdown on the AI Usage page, so agent spending is transparent and attributable per workspace.

What do the invoice and purchase order statuses mean?

Invoices: Draft (editable, not counted as revenue) → Sent (customer owes you; past the due date it shows as Overdue) → Paid or Void. Purchase orders: Draft → Sent to the supplier → Received, which automatically increases product stock. The Pilot creates invoices' companion POs only as drafts for you to approve.

Who is this for, and how do I try it?

It is a portfolio project: a realistic demo of how a small business tool with a grounded, approval-gated AI agent could work. Sign in with the demo tenant demo@uanglite.dev / demo1234 (pre-filled on the login page), or register a workspace of your own from the sign-up page.

What is the tech stack?

Next.js (App Router, React Server Components, partial prerendering) with TypeScript and Tailwind CSS on the front; PostgreSQL with Drizzle ORM and row-level security for multi-tenancy; the Vercel AI SDK for the pilot with tool-call approvals; Playwright and Vitest test suites (including agent evaluations against a mocked model); GitHub Actions CI; Docker files for self-hosting; deployed on Vercel with a managed Postgres.

Can I self-host it?

Yes. The repository ships a Dockerfile and a docker-compose file (app + Postgres). Point DATABASE_URL at any Postgres instance, run the migrations, set a session password, and add an OpenAI-compatible API key for the Pilot. The full setup is documented in the README on GitHub.

Ready to poke around? Sign in to the demo tenant and start with the Dashboard, then try the Pilot AI.