What Wave actually does
Wave is a cloud accounting platform for small businesses and freelancers, founded in 2010 in Toronto and acquired by H&R Block in 2019. Over 2 million small businesses use Wave worldwide. The Starter plan is genuinely free — unlimited invoicing, accounting, and expense tracking — making it the most accessible accounting tool in the market for bootstrapped businesses.
Wave's free tier is compelling but strategically limited. Bank account auto-import requires the Pro plan at $16/mo, and the card processing rate of 2.9% + $0.60 has notably double the fixed fee of Stripe's $0.30, costing a business processing 500 transactions/month an extra $150/mo purely in fixed fees. Payroll is an additional $20–$40/mo plus $6 per employee depending on the state.
H&R Block's 2019 acquisition added Wave Advisors, a bookkeeping service starting at $149/mo, positioning Wave as a managed accounting solution for small businesses that don't want to do their own books. The core product has not seen major feature additions post-acquisition, and competitors like Akaunting (self-hosted, GPL-3), Invoice Ninja, and ERPNext have closed the feature gap significantly.
Double-Entry Accounting
Wave uses true double-entry accounting with a chart of accounts, journal entries, and automated balance reconciliation. The general ledger is maintained automatically from connected bank transactions and manual journal entries.
Unlimited Invoicing
Create and send unlimited professional invoices with customizable branding on the free Starter plan. Supports recurring invoices, automatic late payment reminders, and a client-facing payment portal.
Bank Account Connection
Bank auto-import requires the Pro plan ($16/mo) via Plaid integration. The free Starter plan supports manual CSV import only. When Plaid connections work, transactions are categorized automatically against the chart of accounts.
Expense Tracking
Track and categorize business expenses, upload receipt photos, and reconcile against bank transactions. The receipt scanning feature is included in Pro or available as an $11/mo add-on for Starter users.
Financial Reports
Generate profit & loss statements, balance sheets, and cash flow statements at any time. Reports are exportable to PDF or CSV. Wave's report suite covers the core financial statements small businesses need for taxes and investor presentations.
Payroll Processing
Wave Payroll handles pay runs, tax withholding, and direct deposit in supported US states. Full-service payroll (tax filing included) costs $40/mo + $6/employee in 14 states; self-service is $20/mo + $6/employee in the remaining 36 states.
Wavepricing & limits
A business processing 500 card transactions/mo at 2.9% + $0.60 pays $150/mo more than at Stripe's 2.9% + $0.30 rate
Where Wave falls short
Bank sync via Plaid breaks constantly
Plaid-based bank connection breakage is the #1 complaint across G2 and TrustRadius reviews for Wave. When a bank updates its authentication flow or MFA requirements, Wave connections silently drop with no proactive notification. Users discover missing weeks of transactions when running reports or doing month-end reconciliation — often when it is most urgent. This is a structural Plaid problem that affects all bank-sync apps, but Wave has fewer engineering resources than Intuit to build workarounds.
Card processing fixed fee double Stripe's rate
Wave's 2.9% + $0.60 per card transaction has a fixed fee exactly double Stripe's $0.30. For a business sending 500 invoices per month at any amount, this is an extra $150/mo ($1,800/yr) in processing fees versus integrating Stripe directly. The percentage rate is competitive, but the fixed fee punishes high-volume, lower-value invoices — common for service businesses billing in the $20–$100 range.
No phone support
Wave offers chat and email support only. For non-technical small business owners dealing with a reconciliation issue or a tax deadline, the inability to call someone is a consistent Trustpilot and G2 complaint. H&R Block's Wave Advisors bookkeeping service at $149/mo addresses this with human bookkeepers, but that 9x price jump has no middle tier for basic support.
Missing critical SMB features
Wave has no inventory tracking, billable hours, purchase orders, or vendor management. These are standard features in competing tools including QuickBooks Simple Start ($35/mo), FreshBooks Plus ($33/mo), and the free Akaunting self-hosted. A growing business hits these gaps early and must either work around them with spreadsheets or migrate to a more capable platform — an expensive and disruptive process.
Mobile app downgrade and Pro paywall
Wave's Android app has a 3.4-star Google Play rating, driven primarily by complaints that features previously available for free were moved behind the Pro paywall in recent updates. Small business owners who rely on mobile receipt capture and invoice management feel penalized for the same tasks that were free when they signed up. The 3.4-star rating reflects the accumulated trust damage from these changes.
Key features to replicate
The core feature set any Wave alternative needs — plus what you can improve on.
Double-Entry Accounting Engine
The foundational ledger for Wave — every transaction debits one account and credits another, maintaining a self-balancing general ledger. Build with a journal_entries table (debit_account_id, credit_account_id, amount, date, description) and a chart_of_accounts table with standard account types (Asset, Liability, Equity, Revenue, Expense). PostgreSQL's ability to enforce constraints and run window functions makes it ideal for accounting aggregations.
Invoicing with Online Payments
Invoice creation with line items, tax rates, discounts, and branding. Build the invoice editor as a React form with Server Action mutations, generate PDF via React PDF, and integrate Stripe Payment Intents for the client payment portal. Store invoice PDFs in Supabase Storage. Add automatic reminders via Supabase Cron + Resend for overdue invoices.
Bank Account Aggregation
The feature Wave charges $16/mo for. Integrate Plaid Link for bank connection and Plaid /transactions/sync for ongoing import. Build proactive connection health monitoring (daily /items/get check) to alert users before connections expire rather than after. Add CSV import as a free fallback — many Wave users on Starter already use this workflow.
Expense Tracking and Receipt OCR
Mobile receipt capture with OCR extraction via AWS Textract. Store receipt images in Supabase Storage. Auto-suggest expense categories from OCR text using a rules dictionary + GPT-4o-mini fallback. Mark expenses as billable to clients for pass-through billing on invoices.
Bank Reconciliation
Match imported bank transactions to journal entries, flag unmatched transactions for review, and produce a reconciliation statement showing book balance vs bank balance. Implement as a matching workflow where the user confirms or rejects each suggested match, with manual journal entry for transactions with no match.
Financial Reports
Profit & loss, balance sheet, cash flow statement, and accounts receivable/payable aging. Build as SQL aggregations over the journal_entries and accounts tables, rendered with Recharts. Use Next.js Server Components for server-side computation to avoid loading spinners on report pages.
Multi-User Access with Roles
Wave Pro includes multi-user access. Build with workspace-scoped RLS in Supabase, invitation flows via email, and role definitions (owner, accountant read-only, employee). Wave charges nothing extra for user seats on Pro — match this in a custom build to undercut QuickBooks' per-seat pricing.
Payroll Integration
Wave Payroll is a Wave-built product; a custom alternative can integrate with Gusto or Rippling via API for payroll processing rather than building payroll tax filing from scratch (50-state withholding and e-filing is 3–6 months of engineering alone). Alternatively, build a payroll export that generates the data Gusto needs and let users process payroll in Gusto.
Technical architecture
Wave is a freemium cloud accounting SaaS — a double-entry ledger engine with invoicing, bank sync, and payment processing layers on top. The main architectural challenge is maintaining accounting integrity (the ledger must always balance) while supporting concurrent multi-user access. Bank sync reliability is the ongoing operational challenge.
Frontend
Next.js App Router, React SPA with React Query, Vue + Nuxt
Recommended: Next.js App Router — Server Components for accounting reports (balance sheet, P&L computed server-side), Client Components for the invoice editor, transaction review queue, and real-time reconciliation UI
API / Backend
Next.js Server Actions, Supabase Edge Functions, Node.js + Fastify
Recommended: Next.js Server Actions for all accounting mutations (journal entries, invoice creation, expense logging). Supabase Edge Functions for Plaid webhooks, Stripe webhooks, and scheduled jobs (reminders, recurring invoices).
Database
PostgreSQL (Supabase), Neon PostgreSQL, PlanetScale MySQL
Recommended: Supabase PostgreSQL — double-entry accounting requires foreign key constraints, triggers for balance verification, and complex aggregation queries that PostgreSQL handles natively. RLS isolates each workspace's data.
Bank Aggregation
Plaid, MX Technologies, Finicity (Mastercard)
Recommended: Plaid for US/Canada. Add SimpleFIN Bridge for credit unions. Build CSV import as the universal fallback. Critically: build a connection health monitoring system that Plaid does not provide natively — daily /items/get polling with email alerts on error.
Authentication
Supabase Auth, Clerk, NextAuth v5
Recommended: Supabase Auth — workspace-scoped RLS policies control data access. Email/password for small business owners, Google OAuth for tech-forward users.
Payment Processing
Stripe, PayPal, Square
Recommended: Stripe at 2.9% + $0.30 — directly undercuts Wave's 2.9% + $0.60. Passing the $0.30 vs $0.60 savings to users is a quantifiable competitive advantage you can advertise explicitly.
Background Jobs
Supabase Cron, Inngest, Trigger.dev, Vercel Cron
Recommended: Supabase Cron for scheduled tasks (recurring invoices, payment reminders, bank sync health checks). Inngest for event-driven workflows (transaction imported → categorize → match to journal entry → update balance).
Complexity estimate
Complexity 6/10 — double-entry accounting domain is well-understood; the risks are bank sync reliability, payroll tax compliance (optional — use Gusto API instead), and data import quality. Plan for 6–12 months with a team of 2–4 engineers.
Wave vs building your own
Open-source Wave alternatives
Existing projects you can self-host or use as a starting point. Each has trade-offs.
Akaunting
9.7KAkaunting is a PHP/Laravel self-hosted accounting app with double-entry bookkeeping, unlimited invoicing, expense tracking, multi-currency, and a marketplace of extensions. It directly mirrors Wave's feature set and is fully free under GPL-3. The app marketplace includes bank import, payroll, and inventory modules.
Invoice Ninja
9.7KInvoice Ninja is a PHP-based invoicing, time tracking, and billing platform with a self-hosted free tier. It covers invoicing, recurring billing, client portals, expense tracking, and 50+ payment gateway integrations. Less accounting-focused than Wave but stronger on the invoicing and billing workflow.
ERPNext
34.9KERPNext is a full Python/Frappe ERP that includes a complete accounting module with double-entry bookkeeping, invoicing, payroll, inventory, and more. It is significantly more powerful than Wave but also substantially more complex to deploy and operate.
Build vs buy: the real math
6–12 months for MVP
Custom build time
$300K–$800K (agency)
One-time investment
24–36 months at $14.99/mo pricing with 5K+ users
Breakeven vs Wave
Wave's Pro plan costs $192/yr per business. At $14.99/mo for a custom Wave alternative, you need approximately 1,700–4,500 paying businesses to break even against a $300K–$800K build cost — achievable for a focused vertical SaaS but challenging for a horizontal small business accounting tool competing against Wave's free tier. The stronger build case is the card processing rate arbitrage: Wave charges 2.9% + $0.60 versus Stripe's 2.9% + $0.30. A custom Wave alternative using Stripe directly can charge $14.99/mo and advertise that the processing savings alone cover the subscription cost for any business processing 30+ invoices per month. The honest analysis is that building a general-purpose Wave competitor is difficult — Wave's free tier creates enormous price resistance. Vertical SaaS plays (accounting for contractors, freelance management for agencies, bookkeeping for restaurants) with domain-specific features that Wave cannot offer have far higher win rates. Regulatory considerations: no money transmitter license required since Wave does not move money on behalf of users.
DIY roadmap: build it yourself
This roadmap covers building a Wave-style cloud accounting SaaS, assuming 2–4 engineers using Next.js, Supabase, Plaid, and Stripe. Covers web app MVP; mobile apps add 3+ months.
Accounting data model and chart of accounts
3–4 weeks- Set up Next.js 16 + Supabase PostgreSQL with Supabase Auth
- Design double-entry schema: accounts, journal_entries, journal_entry_lines, account_categories
- Seed default chart of accounts: Assets, Liabilities, Equity, Revenue, Expense categories
- Build chart of accounts UI: create, edit, and organize account hierarchy
- Implement balance verification constraint: sum of debits must equal sum of credits per entry
- Build manual journal entry form for accountants to make direct ledger adjustments
Invoicing and bank sync
4–6 weeks- Build invoice editor: line items, tax rates, client selector, due date, payment terms
- Integrate Stripe Payment Intents for invoice payment portal (replaces Wave's 2.9%+$0.60 with 2.9%+$0.30)
- Build client-facing payment portal with invoice PDF download and Stripe payment form
- Integrate Plaid Link for bank account connection and /transactions/sync webhook
- Build daily connection health check job: /items/get polling with email alert on broken connections
- Add CSV bank statement import as free fallback for all users
Transaction management and reconciliation
3–4 weeks- Build transaction review queue: list imported transactions with suggested journal entry mappings
- Implement categorization rules engine: merchant name → account mapping with learning from corrections
- Add AI categorization fallback: GPT-4o-mini for unrecognized merchants ($0.0001/call)
- Build bank reconciliation workflow: match transactions to journal entries, flag discrepancies
- Implement reconciliation statement: book balance vs bank balance with uncleared items list
- Add expense entry form with receipt upload to Supabase Storage and OCR via AWS Textract
Reports and financial statements
2–3 weeks- Build P&L report: revenue and expenses by category for any date range
- Build balance sheet: assets, liabilities, and equity at any point in time
- Add cash flow statement: operating, investing, and financing activities
- Build accounts receivable aging report: unpaid invoices by age bucket (0-30, 31-60, 60+ days)
- Implement CSV and PDF export for all reports
- Add annual tax summary: income and expense totals by category for Schedule C or corporate tax prep
Multi-user, billing, and launch
2–3 weeks- Build workspace multi-user access with role-based permissions (owner, accountant, view-only)
- Integrate Stripe Billing for subscription: Free (manual import), Pro ($14.99/mo, bank sync)
- Build onboarding wizard: connect bank → review first transactions → create first invoice
- Add mobile-responsive layout for invoice creation and expense capture on mobile
- Write privacy policy covering Plaid data handling requirements
- Deploy to Vercel, set up PostHog analytics for funnel tracking
These estimates assume 2–4 experienced engineers. Double-entry accounting logic is tricky to get right — budget extra time for balance verification edge cases and reconciliation UX. Plaid integration adds 2–3 weeks of edge case testing. Payroll is excluded — integrate Gusto or Rippling API rather than building 50-state tax filing from scratch.
Features you can't get from Wave
This is where a custom build pulls ahead — features impossible or impractical on a shared platform.
Lower card processing rate as a competitive feature
Wave's 2.9% + $0.60 per transaction has double the fixed fee of Stripe's $0.30. A custom Wave alternative using Stripe directly can advertise '2.9% + $0.30 — save $150/mo vs Wave for a 500-invoice business' as a specific, quantifiable advantage. This is the clearest price-based differentiation point available and requires zero extra engineering — just use Stripe instead of Wave's payment layer.
Proactive bank connection health monitoring
Wave's top complaint is broken Plaid connections discovered after the fact. A custom build runs a daily health check via Plaid's /items/get endpoint and sends a proactive email with a one-click re-authentication link the moment a connection shows degraded status — before transactions start missing. This is a simple cron job that Wave has not prioritized and is worth significant customer satisfaction improvement.
Vertical accounting for specific industries
Wave is a generic accounting tool. A vertical build for contractors (job costing, AIA billing), restaurants (COGS tracking, tip reporting), or freelancers (Schedule C auto-categorization, quarterly tax estimation) can embed domain-specific workflows that Wave cannot support without custom workarounds. Vertical SaaS can charge $25–$75/mo versus Wave's $16/mo Pro, with better retention because switching cost is higher.
Accountant portal with client management
Wave has no accountant-facing product. A custom platform can add an accountant workspace where bookkeepers manage multiple client accounts, leave internal notes, set tasks, and generate consolidated reports across all clients. Charge $49–$99/mo per accountant seat on top of the client subscription — this B2B2C model dramatically improves unit economics versus direct-to-SMB.
AI-powered month-end close assistant
Wave's reconciliation is manual and time-consuming. A custom build can use Claude or GPT-4o to suggest journal entries for unmatched transactions, flag unusual expenses for review, and generate a 'month-end checklist' of items to reconcile before closing the period. For small business owners who are not accountants, this coaching layer makes the difference between timely books and months of backlog.
Inventory and COGS tracking
Wave has no inventory module — a gap that forces growing product businesses to add a separate tool or switch to QuickBooks. A custom build with a basic inventory module (item catalog, stock quantities, COGS calculated on sales) serves the $35–$99/mo segment that Wave cannot retain as businesses grow. This feature alone justifies a 2x price premium over Wave Pro.
Who should build a custom Wave
Small business owners paying Wave's high processing fees
Any Wave user processing 30+ card transactions per month saves more on processing fees from switching to a Stripe-native alternative than the monthly subscription costs. At 500 transactions/mo, the $0.30 fixed fee difference alone is $150/mo — easily justifying a $14.99/mo subscription to a Wave alternative.
Bookkeepers and accountants managing multiple clients
Wave has no accountant portal. A custom platform with a multi-client dashboard, client management, and accountant-specific workflows can charge $49–$99/mo per accountant seat while offering the client Wave-equivalent tools at $12.99/mo. This B2B2C model is Wave's biggest unaddressed market.
Vertical SaaS for specific industries
Construction contractors needing job costing, restaurants needing tip reporting and COGS tracking, and service agencies needing billable hours — all need Wave-level accounting plus domain-specific features. A vertical build can charge $30–$75/mo with higher retention than Wave because the switching cost is higher once industry-specific data is entered.
International small businesses
Wave is US/Canada/UK-centric in its bank connections and tax reporting. A multi-currency alternative with VAT invoice support, Plaid International, GoCardless (Europe), and local invoice formats serves markets where Wave's free tier is not available or fully functional.
Credit unions offering member financial tools
Credit unions that want to offer small business members a free accounting tool can white-label a Wave alternative with automatic transaction import from the institution's own core banking data — eliminating Plaid costs for member accounts entirely. A $2–$5/member/mo licensing fee creates sustainable B2B revenue.
Skip the DIY — let RapidDev build it
Everything above is doable — but it takes months of full-time work. We build custom Wave alternatives using AI-accelerated development, delivering in weeks what used to take quarters.
Discovery call (free)
30 minWe map your exact requirements: which Wave features you need, what custom features to add, your users, integrations, and compliance needs. You get a detailed scope document and fixed-price quote within 48 hours.
AI-accelerated build
6–12 months for MVPOur engineers use Claude Code, Lovable, and custom AI tooling to build 3–5x faster than traditional development. You see progress in a staging environment every week — not a black box for months.
Launch + handoff
1 weekWe deploy to your infrastructure, transfer the GitHub repo, set up CI/CD, and walk your team through the codebase. You own 100% of the source code — no vendor lock-in, no recurring platform fees.
What you get
Timeline
6–12 months for MVP
Investment
$300K–$800K (agency)
vs Wave
ROI in 24–36 months at $14.99/mo pricing with 5K+ users
30-min call. Fixed-price quote within 48 hours. No commitment.
Frequently asked questions
How much does it cost to build a Wave alternative?
A custom Wave-style accounting SaaS built by an agency costs $300K–$800K for an MVP with 6–12 month timeline. Starting from Akaunting (GPL-3, 9.7K stars) as a foundation reduces cost to $100K–$200K — you extend the PHP codebase and add a managed hosting layer rather than building the accounting engine from scratch.
How long does it take to build a Wave clone?
6–12 months with a team of 2–4 engineers for a web app with double-entry accounting, invoicing, bank sync, Stripe payments, and reports. The double-entry accounting engine and bank reconciliation UX are the most time-intensive parts. Mobile apps add 3+ months. Solo developers should plan for 12–18 months.
Are there open-source Wave alternatives?
Yes. Akaunting (9.7K GitHub stars, GPL-3) is the closest match — PHP/Laravel, double-entry accounting, invoicing, multi-currency, and an app marketplace. Invoice Ninja (9.7K stars, Elastic License) covers invoicing and billing. ERPNext (34.9K stars, GPL-3) adds inventory and payroll but is significantly more complex. Akaunting is the recommended starting point for a Wave-equivalent feature set.
Why does Wave charge 2.9% + $0.60 instead of Stripe's 2.9% + $0.30?
Wave is a reseller of Stripe's payment processing and marks up the fixed fee from $0.30 to $0.60 to generate processing revenue. This is a significant hidden cost — at 500 transactions per month, it adds $150/mo ($1,800/yr) versus using Stripe directly. A custom Wave alternative integrated directly with Stripe charges 2.9% + $0.30 with no markup, making this a specific, quantifiable competitive advantage.
Do I need any financial licenses to build a Wave alternative?
No. Wave does not move money — it records transactions and creates invoices. Stripe handles payment processing compliance. No money transmitter license, banking charter, or PCI DSS certification is required. The main compliance requirements are Plaid's developer agreement (privacy policy covering bank data), GDPR compliance for EU users, and standard SaaS terms of service.
Can RapidDev build a custom Wave alternative?
Yes. RapidDev has built 600+ apps including accounting platforms, invoicing tools, and Stripe integration projects. A Wave alternative is a complexity 6/10 build — the accounting domain is well-understood and the OSS foundation (Akaunting, Invoice Ninja) reduces ground-up engineering. Visit rapidevelopers.com/contact for a free consultation.
Is it worth competing with Wave's free tier?
Horizontally, no — competing with a free product on price is a losing strategy. The winning approach is vertical: build for a specific industry (contractors, restaurants, agencies) with domain-specific features that Wave cannot offer, and charge $25–$75/mo. Verticals have higher retention, less price sensitivity, and a clear reason to switch beyond cost. The processing rate arbitrage (2.9%+$0.30 vs 2.9%+$0.60) is the one horizontal advantage worth marketing explicitly.
How do I handle double-entry accounting without making users learn it?
Abstract the double-entry model from the user interface. When a user marks an expense as 'Food & Dining,' the system automatically creates the journal entry (Debit: Food & Dining expense, Credit: Checking account) without showing them the debit/credit mechanics. Only accountants and advanced users ever need to see the journal entry view. This is exactly how Wave, QuickBooks, and all modern accounting tools handle it — the double-entry model is an implementation detail, not a user-facing feature.
We'll build your Wave
- Delivered in 6–12 months for MVP
- You own 100% of the code
- No per-seat fees, ever
30-min call. No commitment.