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
A painter or deck builder in Canada runs the whole business from a phone. Leads come in by call, text, and web form. Quotes go out, then deposits, invoices, and GST/HST that changes by province. Most of that ends 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, and 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
What discovery changed
- 01
The founders knew what to build. We worked out how.
The founders came with a clear vision and a benchmark set by the apps they'd already used. What they didn't have was the technical detail behind it: how Stripe Connect works, which email provider to use, what the admin panel needed.
So the team took the product one feature at a time and put options in front of the founders for each: UI, stack, performance, Stripe setup, PostHog for analytics, SendGrid against Postmark for email, and the admin panel's feature set. Nothing was decided by default.
- 02
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.
- 03
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. Our records don't show whether the PWA or the Express recommendation started with us or with the founders. They were agreed during discovery.
The engineering problems worth reporting
- 01
Destination charges put every dispute on the platform
Challenge. 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.
Approach. 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.
Result. The rework is still being settled with Stripe, so we're not publishing the final model yet. What's already clear: the charge type decides who answers for a dispute, and it has to be chosen before checkout is built, not after the first chargeback.
- 02
Business phone numbers had to clear verification first
Challenge. 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.
Approach. 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.
Result. 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.
- 03
Our first progressive web app
Challenge. The team had shipped web and mobile apps, but not a PWA. This one had to feel like an app on a contractor's phone: fast, installable, and usable on a job site.
Approach. We treated it as new ground, not as a website with an icon. The work covered how the app installs, how it behaves on iOS and Android browsers, and how it holds up for someone checking a quote between jobs.
Result. StrikeHoney runs on any phone, with nothing to download from an app store. 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.
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 |
Building a platform that takes payments for small businesses?
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.
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.
Timeline
How the engagement is running
- 01Discovery
From a clear vision to technical options
The founders brought a benchmark from competing apps. The team laid out options feature by feature, and Stripe Express and a PWA were agreed over Custom accounts and native apps. - 02Build
Leads, quotes, jobs, invoices, and payments
Two engineers and a tech lead built the PWA and admin panel, with QA folding both internal and client feedback into each round. - 03Mid-build
The dispute problem surfaced
Express with destination charges left the platform liable for every chargeback. The model was reworked over more than a month of emails with Stripe support. - 04Today
First phase, still in progress
About 5 months in. The public site is live. Stripe dispute handling is being finalised before the first phase is called done.
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.
stack
What the stack is responsible for
- 01Stripe Connect ExpressChosen over Custom accounts to save development time and cost. Stripe handles contractor onboarding and identity checks, and StrikeHoney keeps control of branding and payouts.
- 02TwilioGives each contractor a dedicated business number for calls and texts, so leads land in the app instead of on a personal cell.
- 03Progressive web appOne codebase for iOS and Android browsers, installed without an app store. Keeps build and running costs in line with a $24 CAD monthly plan.
- 04PostHogProduct analytics alongside the admin dashboard, so the founders can see how contractors use the app once it's in their hands.
Evidence and limitations
Reviewed 24 September 2026
- Sources. Team, duration, discovery choices, and the engineering challenges come from the engineer's written answers (17 September 2026) and the QA/PM's answers (23 September 2026).
- Product details (features, $24 CAD pricing, payout terms) come from strikehoney.com, the client's public site.
- Stripe liability rules are quoted from Stripe's Connect documentation on Express accounts and disputes.
- Not published. Budget, engagement model, why the founders chose RaftLabs, the final Stripe charge model, usage numbers, and a client quote. We don't hold sourced versions of these yet, and the first phase hasn't shipped.
Questions founders ask about building a contractor app as a PWA
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. Payments took longer than planned: more than a month went into reworking dispute handling with Stripe. Our guide to building painting contractor software covers scope.
Set up Stripe properly from the start, with dispute liability decided before checkout is built. And check Stripe answers with Stripe's people and documentation, not an AI summary. We'd also plan time for business phone number verification up front, because the first rounds cost more time than they should have.
Yes. RaftLabs is still in the first phase of the StrikeHoney build. The founders have been positive about the work in our meetings, especially about clear communication. If you're building something similar, see our SaaS development service and field service work.
Related work












