Skip to content

Internal build: Our own product, built and run by our team.

SendSlip: Estimates and invoices for solo tradespeople

Our own app for tradespeople: build an estimate on the job, share a link the client can sign and pay, and turn it into an invoice, even offline.

Category
Estimates and invoices for solo tradespeople
Stack
Flutter, Laravel 13, React 19, Stripe Connect, QuickBooks Online
automated server tests running in CI
~300
platforms: iOS, Android and web
3
SendSlip Jobs screen with money collected and overdue, beside a client's estimate page with photos, signature and deposit.

Project Goals

A plumber or electrician quoting from a van needs to write an estimate in a few minutes, add photos, and get a yes before driving away. Afterwards come change orders, invoices, deposits and chasing late payment, usually across three different apps and a notebook.

The Result

SendSlip runs as a Flutter app on iOS and Android, as a web app, and on a Laravel server. Jobs carry line items with tax, discounts, deposits, before and after photos, and change orders that record what moved and why. Clients open a signed share link to view, sign, accept and pay through Stripe, and the shop is the merchant of record. Reminders go out on a schedule, repeat jobs generate themselves, and paid invoices can export to QuickBooks Online. The phone keeps working without signal and syncs through an outbox. The server has about 300 automated tests and runs in CI. It's built and tested but hasn't launched yet. Payments are in test mode.

Gallery

  • SendSlip on three phones: an estimate with line items, tax and a deposit, a change order waiting for the client's signature, and before and after photos saved offline until signal returns.
  • SendSlip invoices on the web with paid and overdue status, scheduled payment reminders and QuickBooks Online export, beside a phone listing repeat jobs.

We only use the cookies this site needs to work, such as keeping forms secure. Cookie policy