An AI-first ERP built for whole-house custom furniture
Roll up Feishu, Excel, WeChat threads, and the boss's memory — into one system you own.
AI isn't a sidebar — it's the operating layer
⌘K everywhere. AI knows what page you're on, which customer you're looking at, what field is empty — and gets the work done.
Global ⌘K shortcut
Available on every page after login. Skipping only the login and a few raw form pages.
37 tools, full-stack coverage
Create customers, edit quotes, record payments, advance projects, query performance. Route-aware injection — AI sees only the tools that fit this page.
Extract mode for form filling
On /customers/new and similar pages, toggle 🪄 Extract. AI parses your sentence into a structured payload and patches your live React form.
MCP integration
Same tools exposed as an MCP stdio server. Drive the ERP from Claude Desktop if that's where you live.
- Master bedroom wardrobe2.4×2.7m¥28,600
- Guest bedroom desk unit1.8×0.6m¥9,800
- Entryway shoe cabinet1.2×2.4m¥12,400
- Dining sideboard (Blum hardware)2.0×0.4m¥14,600
- Kitchen tall appliance unit0.6×2.4m¥8,900
A 4-level nested quoting engine, purpose-built
Not a generic ERP retrofitted — built from the actual signing flow of a real custom-furniture shop.
Four-level nesting
- QuotationOne per customer; keep multiple versions side-by-side
- ZoneMaster bedroom, guest room, entryway, dining…
- CabinetWardrobe, desk unit, bar cabinet, tall pantry
- LineDimensions, unit price, hardware, add-ons
Seven formulas
- H × W
- H × W × coefficient
- Projected area minus deductions
- Direct input
- Quantity × unit price
- Zone subtotal
- Add-on charge
One-click export
- Excel (gold-border style)Clients get a real spreadsheet — not a raw backend dump
- PDF (A4 layout)Editorial-grade typography; send straight to the client
Replaces Feishu, Excel, WeChat — and the boss's memory
Pre-sale to post-delivery, recorded in one place.
- Drag-to-advance: lead → contacted → visited → measured → quoted → signed
- Channel attribution: Douyin, Xiaohongshu, WeChat, building canvassing…
- QR sent to the customer's phone for self-serve 18-field intake
One system, four tools retired
Customer and sales data scattered across sheets with no link
One formula change blows up the whole quote; client edits never sync back
Chat history is unsearchable; a new salesperson starts from zero
Tracking every customer in your head works until headcount catches up
One `docker compose up`. Your data, your machine.
Phone numbers, contract amounts, commissions — these don't belong on someone else's cloud.
$ docker compose --profile prod up -d
✓ traefik │ certs auto-renewed
✓ api │ FastAPI listening on :8800
✓ web │ Next.js ready on :3000
✓ db │ postgres healthy
✓ langfuse │ trace dashboard at :3010Single-machine
Run everything on one server. Right for shops under 30 people.
Public cloud
Cloud VM with a domain, so salespeople can use it on the road
VPC
Fully internal, traffic via VPN. Right for chains and franchises.
One codebase, branded per tenant at runtime
Brand name, logo, primary color all live in `app_config`. Flip a row — no rebuild, no new Docker image.
- Runtime brand switching (no restart)
- Logo / primary color / favicon fully customizable
- Email templates rendered per brand
- Demo mode toggleable independently
Built on Claude, LangGraph and MCP
Latest, most reliable open-source and commercial components. Built to still run tomorrow.
Let AI write your next quote
30-minute demo. You'll know inside that whether it fits your shop.
