QuickBooks Online costs $30 per month for the base plan, $200 if you need the features a real business actually uses. Xero charges $15 to $78. FreshBooks, Wave, Zoho Books, and a dozen others all want their slice of your monthly revenue for the privilege of tracking where that revenue goes. We decided to build our own. Trellis is a cloud accounting application with proper double-entry bookkeeping, Plaid bank feed integration, AI-powered transaction categorization, and over 40 financial reports. Every line of code was written by Claude, working alongside a single human supervisor, in 120 minutes of AI build time and 30 minutes of human prompting.
Overview
Trellis is a full-featured accounting system for small businesses. It handles the complete financial lifecycle: chart of accounts, journal entries, invoicing, bill payment, expense tracking, bank reconciliation, and financial reporting. The backend runs on FastAPI with SQLAlchemy 2.0 async, the frontend on React 19, and it follows the same fleet architecture as every other Renkara tool. Every monetary value is stored as integer cents, never floating point, never decimal. This eliminates rounding errors across all calculations, reports, and aggregations. The double-entry guarantee is enforced at the database level: every journal entry must balance, and the system rejects any transaction that would violate this invariant.
Key Features
Chart of Accounts with Templates
Trellis ships with industry templates for retail, consulting, SaaS, and freelance businesses. Each template provides a hierarchical account structure across the five standard account types: Asset, Liability, Equity, Revenue, and Expense. You can use a template as a starting point and customize from there, adding sub-accounts, renaming entries, or building an entirely custom chart. The hierarchy supports parent/child relationships with unlimited nesting, so you can organize accounts at whatever level of detail your reporting requires.
Guided Invoice Builder
Creating an invoice follows a step-by-step flow with a live preview. You drag line items to reorder them, apply discounts, attach files, and either send immediately or save as a draft. Multiple professional templates are available (clean, bold, classic, minimal), all customizable with your logo, brand colors, fonts, and custom fields. Customers can pay directly from the invoice via Stripe checkout, accepting cards, ACH, Apple Pay, and Google Pay. Partial payments are supported. Automatic payment reminders escalate from friendly to firm to final notice, with configurable late fees that apply after a grace period.
Bank Feed Integration via Plaid
Trellis connects to checking, savings, and credit card accounts from over 12,000 financial institutions through Plaid. Daily automatic sync pulls in new transactions, with up to 24 months of historical data available on initial connection. Once transactions arrive, the AI categorization engine takes over. A machine learning model trained on your correction history auto-categorizes transactions above 90% confidence and suggests categories between 70% and 90%. Below 70%, transactions wait for manual review. A bank rules engine lets you define patterns for recurring transactions, with smart suggestions based on merchant and amount.
Financial Reporting
Trellis produces over 40 reports across profit and loss, balance sheet, cash flow, receivables, payables, sales, expenses, tax, inventory, and custom categories. Every report supports a cash vs. accrual toggle and exports to PDF, CSV, and Excel. You can schedule automated report delivery to stakeholders. The dashboard is information-dense and configurable, with drag-to-reorder widgets for revenue overview, P&L snapshot, cash flow, outstanding invoices, bills due, account balances, expense breakdown, and quick actions. Updates arrive in real time via WebSocket, so the dashboard reflects new payments, viewed invoices, and recorded expenses without a manual refresh.
Bills and Accounts Payable
Vendor bills flow through the full lifecycle: open, partial payment, paid, overdue. Batch payments let you pay multiple vendors at once. Check printing with MICR line encoding is supported for vendors who still operate in the physical world. Purchase order management ties POs to bills for complete procurement tracking.
Inventory Management
Trellis tracks quantity on hand per product using FIFO cost layering. Cost of goods sold is calculated automatically as inventory moves. SKU support, reorder point alerts, and purchase order integration round out the inventory features. This is not a full warehouse management system, but it covers the inventory tracking needs of a small product business without requiring a separate tool.
Integration Points
MCP Server
Trellis exposes its full accounting API through an MCP server running in stdio mode. AI agents can create accounts, post journal entries, generate invoices, record payments, and pull financial reports. This opens up workflows that would be unthinkable in traditional accounting software: automated monthly closes, AI-driven expense categorization at scale, and programmatic financial analysis. The MCP server communicates with the backend via httpx, inheriting the same authentication and validation as the web interface.
Fleet Architecture
Like every Renkara tool, Trellis uses auth-service JWT tokens for authentication, CSS Modules with custom properties for theming, and the standard React 19 + Vite + TypeScript frontend stack. Multi-tenant isolation is enforced with organization_id on all tables and row-level enforcement. No data leaks between tenants, period.
Advantages Over SaaS
The financial argument is straightforward. QuickBooks Online Advanced costs $200 per month, which is $2,400 per year. Wave was free until Intuit bought it and started charging. Xero locks advanced reports behind higher tiers. With Trellis, the total cost is the fractional share of an RDS instance that you are already paying for. Over five years, the savings against QuickBooks alone exceed $12,000.
But cost is not the strongest argument. The strongest argument is data sovereignty. Your financial records are among the most sensitive data your business produces. With Trellis, those records live in your PostgreSQL instance, backed up on your schedule, accessible with your credentials. No third-party vendor has access to your chart of accounts, your revenue figures, or your vendor payment history. When your accountant needs data, you export it. When you need to switch tools, your data is already in a database you control.
The AI integration layer matters too. No SaaS accounting tool exposes an MCP interface. The ability for an AI agent to post journal entries, reconcile bank transactions, and generate financial reports without human intervention changes accounting from a manual monthly ritual to an automated continuous process.
Specifications
| Component | Detail |
|---|---|
| Backend | FastAPI, SQLAlchemy 2.0 async, PostgreSQL |
| Frontend | React 19, Vite, TypeScript, CSS Modules |
| Ports | 3409 (frontend), 3419 (backend) |
| Database | PostgreSQL (shared RDS), `trellis` database |
| Monetary Precision | Integer cents, never float or decimal |
| Auth | Bearer token via auth-service (RS256 JWT) |
| Bank Integration | Plaid (12,000+ institutions) |
| Payment Processing | Stripe (cards, ACH, Apple Pay, Google Pay) |
| Reports | 40+ reports, cash/accrual toggle, PDF/CSV/Excel export |
| Multi-Tenant | organization_id on all tables, row-level isolation |
| Themes | Light and dark mode via CSS custom properties |
Built Entirely by AI
Trellis was built entirely by Claude working alongside a single human supervisor. The human equivalent of the work is roughly 480 hours: the kind of project a team of two engineers would spend three months on. Claude completed it in 120 minutes of build time, with 30 minutes of human prompting. That is a 240x leverage factor on build time and a 960x leverage factor on supervisory time. Every line of backend code, every React component, every database migration, every test: AI-authored with human direction. We are not aware of another accounting system of comparable scope that was built this way.