Brasswork is a complete source-code template for running your own operations SaaS. You sell plans; each customer gets an isolated business with its own books, stock, people and documents.
It is built for small businesses that make, sell and serve: a roaster with a café, a bakery that sells wholesale, a bike shop with a workshop. They sell over the counter and on invoice, buy from suppliers, keep stock in more than one place, pay a crew on shifts and run a few projects. Brasswork covers that whole day in one set of books, so the Counter sale, the wholesale invoice, the supplier bill and the pay run all post to the same ledger.

Work is organised in lanes named after the job: Today, Sell, Buy, Stock, Money, People and Work. Today collects the decisions that need the owner across every lane. Records are drawn as printed sheets with a paper trail (Quote → Order → Invoice → Payment → Ledger), so anyone can see where a document came from and where it went.
On the platform side you get plan bands sized by crew (Solo, Crew, Company, Group) with apps and storage included, app packs, trials, offer codes, Stripe and PayPal with automatic renewal, pay by invoice, a storefront you edit from the console, help requests and a Pulse view of revenue and sign-ups.
The code is modern and typed end to end: Next.js 16 App Router with Server Components and Server Actions, TypeScript, Tailwind CSS v4 with shadcn/ui, Drizzle ORM on PostgreSQL, Better Auth and Zod. Money uses decimal arithmetic, documents are recalculated on the server, and the books are fed by events from every app inside the same database transaction. It ships with unit, integration and end-to-end tests, a CI workflow, a Docker Compose kit and a seeded demo business: Hollow Pine Coffee Roasters.
Rename it, choose your apps and prices, load your own demo for your industry, and launch.

Features by lane
Today
- The decisions that need you across every app: approvals, overdue invoices, bills due, stock running low, bank lines to match, drafts.
- Pulse: cash, owed to you, you owe, this week's sales.
- A getting-started checklist for new businesses.
Sell
- Invoicing: quotes with a board view, invoices, credit notes (apply or refund), one payment across several invoices, recurring invoices, automatic payment reminders, customer statements, share links, PDFs attached to emails, online card payment through each business's own Stripe account, reports.
- Counter (point of sale): a touch-friendly selling screen, registers and cash drawers, promotions, returns and approvals, receipts, a customer display, offline sales that sync later, barcode scanning, a per-item "Sell at the Counter" switch.
- Pipeline: lead and deal boards with values and next steps, calls, emails and notes, conversion, funnel and monthly reports.



Buy
- Purchase orders, partial receiving, bills, one payment across several bills, supplier returns and debit notes, recurring bills, supplier statements, share links, reports.
Stock
- Stocked items, non-stock items and services, image galleries, categories, taxes, units, several warehouses.
- A stock ledger for every move, weighted-average cost, transfers, stock counts, reorder points and suggestions, label printing. Stock can't silently go negative.

Money
- Double-entry books fed by every app, chart of accounts, journal, recurring journals.
- Bank, card and loan accounts; statement import (CSV, OFX/QFX, CAMT.053), matching rules and reconciliation.
- Income and expenses (recurring), budgets, P&L and balance sheet with comparisons, trial balance, ledger, aging.
- Multi-currency with manual or ECB exchange rates and realized/unrealized FX.
- A lock date, integrity checks and "Rebuild postings".


People
- Employees with CSV import and an org chart, rota, time clock, time off with line-manager approvals.
- Pay runs (weekly, bi-weekly, semi-monthly, monthly), payslips by email, SEPA and NACHA bank files, advances and loans.
- The employee journey (recognition, role changes, conduct notes, concerns, exits), onboarding and offboarding checklists, hiring with a careers page, reviews, training and a company hub.


Work
- Projects with several customers, templates, task boards, list and calendar views, a timeline (Gantt) with dependencies, milestones and milestone billing, issues, timesheets and timers, customer access.

Business and settings
- Directory of customers and suppliers, files, team chat, help requests, Ask (an AI assistant; each business enters its own Anthropic, OpenAI or Google API key).
- Roles with permissions per app and "own vs all" visibility, customer rooms and supplier rooms.
- Custom fields, saved list views, CSV export on every list, bulk actions, ⌘K search, activity log, notification preferences and daily digests, calendar feeds, a business's own SMTP server.
- REST API with scoped keys and an OpenAPI document; signed outbound webhooks with retries.

Operator console (your SaaS)
- Pulse: monthly recurring revenue, paying businesses, trial conversion, lapsed plans, sign-ups, revenue by band.
- Customers: businesses, people, sign-ins, create businesses and accounts, sign in as an owner.
- Catalogue: bands, apps, app packs, offer codes, sync to Stripe and PayPal, app retirement.
- Payments: orders, refunds, plan invoices for bank transfer.
- Storefront: a block-based home page, pages, billing email templates.
- Help requests, and Setup with a first-run walkthrough (brand, email, currency, payments, catalogue).



Works on every screen


Tech stack
- Next.js 16 (App Router, React 19, Server Components, Server Actions, Turbopack)
- TypeScript
- Tailwind CSS v4 and shadcn/ui (Radix)
- PostgreSQL with Drizzle ORM
- Better Auth (email and password, optional Google and GitHub sign-in, two-factor)
- Zod 4, decimal.js, @react-pdf/renderer, Recharts
- Stripe and PayPal SDKs; nodemailer; AWS S3 SDK (any S3-compatible storage)
- Vitest and Playwright (with axe accessibility checks); GitHub Actions CI
What's included
- Full source code of the app, the Operator console and the storefront.
- Database schema, seed and a complete demo business with about 18 months of history, a sister business and fifteen sample customer businesses.
- Docker Compose kit (Postgres, migration step, app, hourly cron) and a Dockerfile.
- Documentation: install, configuration, deployment (Docker, Vercel, VPS with nginx), payments, rebranding, upgrading, architecture, REST API and webhooks, testing, coding conventions, design system, support.
- Unit, integration and end-to-end test suites, a CI workflow, and repeatable payment checks with Stripe and PayPal mocks.
.env.example, license and changelog.
Not included: hosting, a Stripe or PayPal account, an SMTP service, native mobile apps, translations (the UI is in English).
Requirements
- Node.js 20.9 or later (22 recommended) and pnpm 10
- PostgreSQL 15 or later
- For production: a server or host for Next.js (Docker, a VPS or Vercel), a domain with HTTPS, an hourly cron call
- Optional: SMTP for email, an S3-compatible bucket for files (required on Vercel), Stripe and/or PayPal accounts
- Some experience with Node.js and PostgreSQL to install, configure and customise it
Demo accounts
Created by pnpm db:seed in development (password password123):
RoleEmailOperator (Operator console)admin@example.comOwner of Hollow Pine Coffee Roastersmargit@hollowpine.exampleStaff memberlena@hollowpine.exampleCustomer roomruth@brickyardbagels.exampleSupplier roomana@altiplanogreen.example
The seed refuses demo data and demo passwords in production.
Changelog
1.0.0 (2026-10-09): first release. The multi-tenant platform with plans, Stripe, PayPal and pay by invoice; the Operator console and storefront; Today and the six lanes (Sell, Buy, Stock, Money, People, Work) with Invoicing, Counter, Pipeline, Purchasing, Stock, Books, People & pay and Projects; the REST API and webhooks; the design system in light and dark mode; Docker, Vercel and VPS deployment guides; tests and CI.