Wave's core is invoices, a few reports and a ledger that never goes out of balance. An agent builds that in a weekend on SQLite, and importing bank CSVs replaces most of what Pro's bank connection does. The gaps are the parts with other people's money: card and bank payments need Stripe and its fees, live bank feeds need an aggregator contract, payroll and tax rules change by state, and receipts on a phone want an app. Wave's free Starter plan already covers the basics, so a DIY build is mainly worth it for control and for moving away from Wave's own limits.
Before you buildWave Starter already costs nothing: invoices, bills, reports and manual statement uploads. Only Pro's bank sync and extra users are paid, so build this only if those limits or Wave's own terms are the problem.
Build me a small-business invoicing and bookkeeping app to replace Wave. Requirements: - Node.js 22 + TypeScript: a Fastify server with server-rendered pages (Eta) and a little vanilla JS. `npm start` serves http://localhost:4860. - Storage: better-sqlite3 in ./data/books.db. Money is integer cents with one currency per business; every invoice payment, bill and bank line becomes a balanced journal entry. Seed an editable chart of accounts (income, expenses, assets, liabilities, equity). - Invoicing: customers, products, estimates that convert to invoices, line items with tax rates, sequential numbers, a PDF with my logo (`pdfkit`) and email through nodemailer (SMTP in .env). Reminders go out 3, 7 and 14 days after the due date until the invoice is marked paid. - Payments: "record payment" posts the entry. Optionally a Stripe Payment Link per invoice (`stripe`, STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET in .env) whose webhook verifies the signature, records the payment and books the fee as an expense. - Bank lines: upload CSV statements (map the columns once per account and remember them), skip duplicates by a hash of date, amount and description, apply rules such as "contains UBER -> Travel", and leave the rest in a review queue. - Receipts: drop a photo or PDF on a transaction; `tesseract.js` suggests the total and date for me to confirm; files are kept in ./data/receipts/. - Reports for any date range, exportable as CSV: profit and loss, balance sheet, sales tax summary and receivables aging. - Single user. No accounts, no telemetry, local-first: only SMTP and Stripe, if configured, are contacted. - Out of scope: live bank feeds, payroll, tax filing, multiple users and roles. - README: setup, backing up the .db file and the receipts folder, and a note that this is not tax advice and an accountant should check the first year-end.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Wave.
Add a Wave importer to the bookkeeping app in this folder. Requirements: - A command `npm run import:wave <folder>` that reads the four files from Wave's Accounting data export: the accounting file (journal entries), bill items, customers and vendors. - Create accounts from the account names it finds, import customers and vendors, and rebuild each transaction as a balanced journal entry; stop and report any that don't balance. - Print counts and the opening balance of every account, and require --write before saving. - Skip anything already imported by an external id, so running it twice is safe. - Update the README with the Wave export steps.
Add recurring invoices to the bookkeeping app in this folder. Requirements: - An invoice can repeat weekly, monthly, quarterly or yearly from a start date until an end date or a count, using the same customer, lines and terms. - A scheduler creates the next invoice as a draft or sends it automatically, per template, and never creates a duplicate after a restart. - Show the next five run dates and let me pause or end the series. - Add tests for month-end dates and leap years. - Update the README.
Add a year-end export to the bookkeeping app in this folder. Requirements: - A command `npm run pack -- --year 2026` that writes a ZIP with the trial balance, profit and loss, balance sheet, general ledger, receivables aging and a list of all invoices as CSV and PDF. - Add a folder of receipts named by transaction date and amount, and a manifest.csv mapping each file to its journal entry. - Warn about unreviewed bank lines and unbalanced entries before writing anything. - Update the README.
The free plan is enough to send invoices, so Pro pays for hours of data entry: bank transactions arriving and categorising themselves, a bookkeeper or accountant logged in beside you, and a cheaper rate on every card payment. On 1 June 2026 Wave moved older businesses that don't use payments or payroll to Starter, which put bank connections and collaborators behind Pro.
Estimate · Runs on your machine for nothing. Stripe's processing fee applies per payment, and a live bank feed through an aggregator would add a monthly fee. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Starter | $0 | $0 | Unlimited estimates, invoices, bills and bookkeeping records, optional online payments, mobile app, dashboard; bank transactions come in by uploading statements. |
| Pro | $19 | $15.83 | Starter plus automatic bank imports through Plaid with auto-merge and categorisation, late-payment reminders, extra users with admin, editor or viewer roles, no Wave branding in invoice footers, discounted online-payment rates. |
| Wave Advisors | $149 | — | Pro features plus a dedicated bookkeeper, monthly financial statements and expert support. |
Starter is free: unlimited invoices, estimates, bills and bookkeeping records, manual statement uploads, reports and the mobile app.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Bank connections that import and match transactions on their own, Online card and bank payments with processing handled for you.
About $19 a month on the Pro plan, $228 a year (checked 2026-10-19).
Bank connections that import and match transactions on their own; Online card and bank payments with processing handled for you; Payroll, and Wave Advisors bookkeepers; Receipt scanning from the mobile app; Accountant access with roles, plus chat and email support on weekdays. If any of those matter to you, keep paying.
Yes: InvoiceShelf (open source), Bigcapital (open source), Akaunting (free).