OneLink
All case studiesarwaroAI · Business management system

arwaro — a business management system with an AI agent

Money, inventory, production, payroll, tasks and documents in one system. The code is written by AI following the team’s rules

About the project

arwaro is our own product for small and mid-sized businesses that keep their books in a dozen spreadsheets and several services. Finance, inventory, payroll, tasks, document flow, a knowledge base, mail and messaging live in one system with shared reference data and end-to-end permissions. Inside it works an AI agent: it connects banks, builds a cash-flow chart of accounts for the company’s niche, answers questions with numbers and acts right from team chats in Telegram, MAX and WhatsApp.

Tech stack

ReactTypeScriptNxMUIRTK QueryClaude CodeMCPPlaywright

Task

Replace spreadsheets and scattered services with one system where money, inventory, people and tasks share the same data, and an AI agent tailors it to the company’s niche and answers employees’ questions. The product had to move fast: the owner changes the interface every day.

Constraints

Each module is deployed on its own — its own image, its own blue/green slots, its own gateway route — yet all modules must look and behave the same. The owner has made hundreds of interface decisions, they keep being refined, and none may get lost in the next change. Growing the team for every module was not the plan.

Solution

We put the frontend into an Nx monorepo: a shell, seven micro-frontends (finance, boards, inventory, document flow, knowledge base, mail, management) and a shared kit of 101 components. The code is written by Claude Code. Engineers don’t write screens; they write what agents build screens from: skills (design system, pixel-perfect layout, copywriting, git flow), design tokens and a project rulebook where every decision comes with its reason. The product itself is open to agents too: Claude works with it over MCP, and every agent inside arwaro has its own messenger bot.

Challenges

AI does not remember past agreements and may silently bring back a cancelled decision. So every rule is locked in with a guard: a test that fails on a violation or a check in the pipeline gate. Each guard is verified by provocation: the rule is broken on purpose to make sure the check catches it. This added up to 17 automated guards — from module boundaries to icons in menus — and about 1,800 test files, 193 of them end-to-end.

Further development

A new module is generated from a template and immediately gets the kit, the rules and the guards. A new decision by the owner is one entry in the rules and one guard, after which agents apply it across all modules on their own.

Result

We launched a system made of a shell and seven modules that are deployed independently. Most of the code was written by Claude: instead of hiring juniors and mid-level developers for every module, we invested in skills, a design system and the rules agents follow when writing code. Routine work — screens, forms, rolling a change out to every module, tests — went to AI, and engineers moved to architecture and review. The product grows faster than the team would.