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

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.

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

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

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

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.

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.