Leads to paid invoices for Canadian trade contractors, in one phone app

StrikeHoney's two founders in Toronto knew exactly what solo contractors and small crews were missing from the apps they already had. RaftLabs turned that into one phone-first product for leads, quotes, jobs, invoices, and payments. It runs in the phone's browser, with no app store, on Stripe Connect Express.

runs in the phone browser, no app store download
1 PWA
of engagement so far, first phase in progress
~5 months
of back and forth with Stripe to rework dispute handling
1+ month

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.

Before
  • 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
After
  • 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.

ResultWhat changedPeriod or contextEvidence and limitation
Build statusFirst phase in progressAbout 5 months into the engagementEngineer's written answers, 17 September 2026
PlatformOne PWA for iOS and Android browsersNo app store download neededstrikehoney.com features page
PaymentsStripe Connect ExpressCard, Apple Pay, and Google Pay. The public site lists next-business-day payouts or instant cash-out for a 1.5% feestrikehoney.com. Dispute handling is still being finalised with Stripe
Stripe reworkOver a month of back and forth with Stripe supportTo move off a charge model that left the platform carrying every disputeEngineer's written answers
AdoptionNot measured yetPostHog, the admin dashboard, and the Stripe dashboard are in place to track itNo 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.

01

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.

02

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.

03

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.

04

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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  • 01
    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.
  • 02
    Twilio
    Gives each contractor a dedicated business number for calls and texts, so leads land in the app instead of on a personal cell.
  • 03
    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.
  • 04
    PostHog
    Product 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.

Work with us

Recognise this problem in your business?

Tell us what's broken. We'll diagnose it and show you exactly what to fix first, before you commit to anything.

  • Scope and cost agreed before work starts. No surprises. No obligation.
  • Working prototype within 3 weeks of kickoff.
  • Pay by milestone. You see progress before each invoice.
  • 60-day post-launch warranty. Bug fixes, UI tweaks, and deployment support. No retainer.
  • All conversations are NDA-protected.

Trusted by

VodafoneAldiCalorgasEnergia RewardsErisPSiBrandfireWorxsquadCentusSponzee