Changelog
What shipped, and when. Including the things we switched off — if a feature went away because it did not work, that is more use to you than another line about what we added.
- Changed
Email marketing is off until it can comply
A marketing email needs a working unsubscribe link and a real postal address, and ours had neither. Campaigns are hidden rather than shipped half-legal; transactional email — invoices, receipts, reminders — is unaffected.
- Removed
Loyalty points and happy-hour pricing are switched off
Both could be configured but neither applied at checkout, so a customer could earn points they could never spend. They are hidden until redemption works end to end.
- Added
A shift can share one register
Baristas switch with a PIN instead of signing in and out, and every order records who actually rang it. Tips and voids attribute to the person, not the terminal.
- Added
Employees have names, pay and classification
The team directory is a personnel record you can export to a payroll provider, with start dates, pay rates, employee-versus-contractor status and offboarding. Exports say plainly what they still leave out.
- Fixed
An invoiced estimate carries its tax
Converting an accepted estimate into an invoice dropped the tax line, so the invoice was short by exactly the tax and the operator absorbed it.
- Fixed
ACH payments are not marked paid before the funds clear
A bank payment showed as settled the moment it was initiated, days before the money arrived — and it could still fail after that.
- Fixed
The daily summary separates collected from invoiced
An invoice raised on net terms was counted as takings on the day it was written, which overstated a day that had not been paid yet. Turning the summary off now also works — the opt-out was being skipped by the job that sends it.
- Added
STOP and HELP are answered
A customer texting STOP gets a one-time confirmation and no further messages; HELP gets a reply naming the business. Invoice texts are also deduped, so a retry no longer sends the same message twice.
- Added
No money without an order
The register refuses to take a payment that is not attached to an order, so takings always reconcile against something sold.
- Added
Proposals — the estimate, written up
A quote can carry sections, options and terms rather than being a bare list of line items, and it stays one record instead of a separate document to keep in sync.
- Added
Send email from your own domain
Invoices and reminders can go out from your address instead of ours, with the DNS records to set it up shown during first-run. Delivery, bounces and complaints are tracked wherever the app sends.
- Added
Tap to Pay on iPhone
Take a card on the phone in your pocket, with no reader to buy, charge or leave behind. It sits alongside the Stripe reader rather than replacing it.
- Fixed
A broken page reaches us
Unhandled errors are captured and reported, so a page that fails for you is something we find out about rather than something you have to describe.
Entries start from September 5, 2026. Work shipped before then is in the commit history but was never written up, and we would rather say that than backfill it.