Short answer
RaftLabs is building StrikeHoney, a job app for Canadian trade contractors, as a progressive web app on Stripe Connect Express. It covers leads, quotes, invoices, and payments in the phone browser. About 5 months in, over a month with Stripe support went into reworking dispute handling.
Engagement
The StrikeHoney engagement
- Client
- StrikeHoney, a two-founder SaaS startup in Toronto, Canada
- Decision-makers
- The two founders. Technical people with a clear product vision, but not coders or integration specialists
- What it is
- A job app for solo trade contractors and small crews: leads, quotes, jobs, invoices, and payments from one phone
- What we own
- The progressive web app, the admin panel, Stripe Connect payments, Twilio business numbers, email, and analytics
- Team
- Two engineers, a tech lead, a QA engineer, and a project manager at the start
- Duration
- About 5 months so far. First phase still in progress
- Status
- Public site live at strikehoney.com. Stripe dispute handling still being finalised
The situation
A painter or deck builder in Canada runs the whole business from a phone. Leads come in by call, text, and web form. Quotes get written on the couch at 10 pm, then lost in text threads, never followed up because the contractor is on a roof the next day. Deposits, invoices, and GST/HST that changes by province end up split across a personal cell, a notes app, and a payments tool that doesn't know which job the money is for.
StrikeHoney's two founders in Toronto had used and studied the competing apps. They knew where those apps fell short for solo contractors and crews of two to five. The full field-service suites felt heavy and expensive for a two-person outfit. They came to RaftLabs with a clear minimum benchmark, not a vague idea.
We're building that product. It's one phone-first app that takes a contractor from lead to quote to job to paid invoice, and it runs in the browser with no app store download. The hardest part so far wasn't the features. It was deciding who pays when a contractor's customer disputes a card payment.
starting point
From a phone full of apps to one job app
The goal is a product a solo contractor can run their whole business from, priced as one flat plan, built for Canada first.
- Leads arrive by call, text, and web form, in different places
- Work calls go to the contractor's personal cell
- Quotes, deposits, and final invoices live in separate tools
- GST/HST gets worked out by hand, province by province
- Unpaid invoices get chased by memory
- Existing apps are priced and built for bigger, office-run crews
- One inbox for calls, texts, and web-form leads, with alerts before a lead goes cold
- A dedicated business phone number, so the personal cell stays personal
- Quotes sent as a link the customer approves and pays a deposit on
- One-tap invoices with GST/HST calculated by province
- Card, Apple Pay, and Google Pay, with automatic reminders on unpaid invoices
- One flat plan at $24 CAD a month, in the phone's browser
The decisions that shaped the build
Stripe Express instead of Stripe Custom
Stripe Connect offers several account types for platforms that pay out to other businesses. With Custom accounts, the platform builds and runs the whole onboarding and account experience itself. Express accounts hand onboarding, identity checks, and a payout dashboard to Stripe, and the platform keeps control of branding and payout timing.
The recommendation was Express. It cut development time and cost and still left StrikeHoney in control of the contractor experience.
A progressive web app instead of native apps
Contractors are on iPhones and Androids. Two native apps would have roughly doubled the build and added app store reviews to every release. A progressive web app runs on both from one codebase and installs straight from the browser.
A native app was never a hard requirement, so the PWA saved cost without taking away anything the founders had asked for. For a product priced at $24 CAD a month, skipping two native codebases keeps the cost of building and running it in line with what customers pay.
Destination charges put every dispute on the platform
The problem: StrikeHoney takes payments on behalf of contractors. The first model used Express accounts with destination charges: the customer pays the platform, and the contractor's share is transferred on. It works well for the happy path. Disputes and fraud were where it broke down.
Stripe's documentation is direct about it. For destination charges, "Stripe debits dispute amounts and fees from your platform account." And for Express, "your platform is responsible for losses incurred by Express connected accounts." So if a contractor's customer files a chargeback, StrikeHoney pays first. It then has to recover the money by reversing the transfer to a contractor who may already have been paid out.
What we did: We reworked the whole model. That meant more than a month of emails with Stripe support to work out which options fit a platform like this. At one point we considered Stripe Standard accounts, where the contractor holds a full Stripe account and handles their own disputes. That didn't fit StrikeHoney's business model, so we kept Express and changed how charges and disputes are handled around it.
Where it stands: the rework is still being settled with Stripe, so we're not publishing the final model yet. What is already clear is that the charge type decides who answers for a dispute. It has to be chosen before checkout is built, not after the first chargeback.
Business phone numbers had to clear verification first
The problem: Every contractor gets a dedicated business number through Twilio, so work calls and texts stay off their personal phone. Numbers used for business messaging have to pass verification before they can be provisioned and used.
What we did: The first rounds were messy. Requirements weren't obvious up front, and the team learned the process by working through it rather than from one clear guide.
Where it stands: Once the team understood the verification steps, provisioning settled into a repeatable process. The lesson is to budget time for telecom verification in the plan, because it runs on the carrier's clock, not the sprint's.
the build
What we're building
Everything in StrikeHoney follows one job from the first call to the final payment, on the phone the contractor already carries.
One inbox for every lead
Calls, texts, and web-form leads land in one place, on a dedicated business number. A lead that sits too long gets flagged before it goes cold.
Quotes customers approve and pay on
Contractors build a quote on their phone and send it as a link. The customer reviews it, approves it, and pays a deposit from that link. The deposit is credited to the job, and the balance still owed is tracked.
Invoices with Canadian tax built in
A finished job becomes an invoice in one tap, with GST/HST calculated by province. Customers pay by card, Apple Pay, or Google Pay, and automatic reminders chase anything unpaid. The job finished today and so did the paperwork.
An admin panel and analytics for the founders
The founders run the platform from a web admin panel, with PostHog and dashboard analytics in place to measure how contractors use it once they're on board.
Proof
What we can and can't claim
The first phase isn't finished. Nothing below is a usage or revenue number.
| Result | What changed | Period or context | Evidence and limitation |
|---|---|---|---|
| Build status | First phase in progress | About 5 months into the engagement | Engineer's written answers, 17 September 2026 |
| Platform | One PWA for iOS and Android browsers | No app store download needed | strikehoney.com features page |
| Payments | Stripe Connect Express | Card, Apple Pay, and Google Pay. The public site lists next-business-day payouts or instant cash-out for a 1.5% fee | strikehoney.com. Dispute handling is still being finalised with Stripe |
| Stripe rework | Over a month of back and forth with Stripe support | To move off a charge model that left the platform carrying every dispute | Engineer's written answers |
| Adoption | Not measured yet | PostHog, the admin dashboard, and the Stripe dashboard are in place to track it | No usage figures exist to publish |
The lesson
Pick your Stripe charge model around disputes, not checkout
If you're building a SaaS platform that takes payments for small businesses, the thing most teams miss is that the Stripe charge type is a liability decision, not a plumbing detail. Destination charges make checkout simple. They also mean your platform pays for every dispute and has to claw the money back from a business that may already have spent it. Work out who answers for a chargeback before you write the first payment screen.
And check what you read. Our engineer's advice after a month with Stripe support: verify the answer with Stripe's own people and documentation, not an AI summary of them. In their words, "making the mistakes is how I figured things out." Your team can skip that step.
How it runs
- Stripe Connect Express
- Chosen over Custom accounts to save development time and cost. Stripe handles contractor onboarding and identity checks, and StrikeHoney keeps control of branding and payouts.
- Twilio
- Gives each contractor a dedicated business number for calls and texts, so leads land in the app instead of on a personal cell.
- Progressive web app
- One codebase for iOS and Android browsers, installed without an app store. Keeps build and running costs in line with a $24 CAD monthly plan.
- PostHog
- Product analytics alongside the admin dashboard, so the founders can see how contractors use the app once it's in their hands.
Common questions
RaftLabs is building StrikeHoney, a job management app for Canadian trade contractors such as painters, landscapers, and deck builders. It covers a lead inbox with a dedicated business number, quotes customers approve and pay a deposit on, one-tap invoices with GST/HST by province, and Stripe payments. It runs as a progressive web app in the phone's browser.
Contractors use both iPhone and Android, and native apps would have roughly doubled the build and added app store reviews to every release. A PWA runs on both from one codebase and installs from the browser. For a product priced at $24 CAD a month, that keeps costs in line with revenue. See our progressive web app development service.
The platform does. Stripe's documentation says it debits dispute amounts and fees from the platform account for destination charges, and that platforms are responsible for losses on Express accounts. The platform can try to recover funds by reversing the transfer to the connected account. That's why StrikeHoney's first charge model had to be reworked.
Express saved development time and cost compared with Custom, because Stripe runs contractor onboarding and identity checks. Standard, where each contractor holds a full Stripe account and handles their own disputes, was considered during the dispute rework but didn't fit StrikeHoney's business model. More on this in our payment integration work.
StrikeHoney's engagement is about 5 months in, with the first phase still in progress. The team is two engineers, a tech lead, a QA engineer, and a PM at the start. Our guide to building painting contractor software covers scope.
Yes. RaftLabs is still in the first phase of the StrikeHoney build. If you're building something similar, see our SaaS development service and field service work.
Related work
More SaaS, payments, and North American startup work

AI-led interviews that replace static surveys
Perceptional, a Canadian startup, runs adaptive AI interviews for product managers and delivers summaries within 48 hours.

10,000 transactions in 3 months on a mobile POS
A UAE FinTech operator replaced hardware POS with a phone app for small merchants taking card payments.

10,000+ orders without third-party commissions
Grubly gave small restaurant owners their own ordering and payments channel instead of paying delivery-app commissions.