You built 80% of it. Someone else can do the rest.

Shipmate pairs you with a builder who works in the same tools you do. Send them the link and a five-minute walkthrough, and they fix the auth, the payments and the bits you skipped. You review a staging link before anything goes live.

See a projectUses a sample project

Monthly subscription. One project at a time, paused whenever.

Kerbside, first 24 hoursaudit · 0/8
    What the handover actually looks like

    Three things, none of them a spec document.

    01

    The link

    Your project, wherever it lives. Your builder works in the same tool you built it in.

    02

    Five minutes of you talking

    Walk through what works and what does not, out loud, badly. That is genuinely enough.

    03

    What done means

    One or two sentences. For Kerbside it was: a customer can book, pay, get a confirmation, and I can see the money.

    Project
    Kerbside
    Built in
    Lovable, over three weekends
    Done means
    Book, pay, confirm, see the money
    walkthrough · 4m 12s · excerpt from 0:38
    So the booking bit works, you pick a time, you put your car in, all fine. Then after that, honestly, nothing. There’s a pay button but I don’t think it actually does anything, and nobody gets an email. Oh, and I logged in as my mate once and I could see my own booking, which I think is bad.

    No discovery call, no scoping document, no two-week kickoff. Your builder starts the same day.

    The work, in the open

    Two weeks of Kerbside.

    The audit

    blocking
    No authentication on the bookings tabledb/policies/bookings.sqlPriyaOpen
    Payment flow stops at the formsrc/routes/checkout.tsxPriyaOpen
    API keys committed in the client bundledist/assets/index-4f2a91.jsPriyaOpen
    high
    No confirmation emailsrc/server/bookings.tsPriyaOpen
    Booking times can be double-bookedsrc/server/availability.tsPriyaOpen
    medium
    No error statessrc/components/BookingForm.tsxPriyaOpen
    Mobile layout breaks below 380pxsrc/components/TimePicker.tsxPriyaOpen
    No way for the founder to see bookingssrc/routes/admin.tsxPriyaOpen

    Every update is written to be read on a phone between meetings. There is no status call.

    Before it goes live

    Twelve things, every time.

    Every build gets the same security and launch checklist before it touches a real customer. This is Kerbside’s, on day 14.

    An unticked box with a reason is more useful than twelve ticks you did not read.

    Launch checklist

    11 of 12
    • 01Done: Every table has an access rule
    • 02Done: Customers can only see their own bookings
    • 03Done: No private keys in the published app
    • 04Done: Payments confirmed on the server before booking
    • 05Done: Failed payments show a clear message
    • 06Done: Every request has an error state
    • 07Done: Confirmation email delivered and not marked as spam
    • 08Done: Layout checked down to 375px
    • 09Done: Pages load in under two seconds on 4G
    • 10Done: Customers can delete their account and data
    • 11Done: Daily backup enabled and one restore tested
    • 12Not done: Load tested above 200 concurrent usersNot tested. You have fourteen bookings a week. We will do it when that becomes a question.
    Your builder

    One person, not a queue.

    Priya
    6 Shipmate projects finished

    Ran operations for a small bike repair chain before she started building tools for it. Has been finishing other people’s projects for two years.

    • Lovable
    • Replit
    • Cursor
    • Claude Code
    • You get the same builder every time.
    • You can ask to switch once, without explaining why.
    • Your builder works on one project at a time.
    When it needs a real engineer

    Some things are not a vibe coding problem.

    A builder who tells you they can do anything is a builder who will quietly make a mess of the thing they cannot. When a job genuinely needs a specialist, your builder scopes it, builds what they safely can, and writes a handover so whoever picks it up starts from a working base.

    Handover: booking availability

    Kerbside · day 9 · written by Priya
    1
    The problem

    Two customers can book the same valeter for the same slot. A real fix needs to know which valeters cover which areas, how long each job takes, travel time between jobs, and which time zone each booking is in.

    2
    What was built
    • A lock that stops the same slot being taken twice within one area.
    • A list of valeters and their postcodes, stored but not yet used for matching.
    • Tests that reproduce the double booking, so a specialist can see it fail.
    3
    What was deliberately left
    • Travel time between jobs. Guessing this badly is worse than not guessing.
    • Time zones. Every booking is currently treated as UK time.
    4
    Three decisions for a specialist
    1. Whether a slot belongs to a valeter or to an area.
    2. How much travel buffer to allow, and whether it varies by distance.
    3. What happens to existing bookings when a valeter changes their hours.
    5
    Where the code sits
    • src/server/availability.ts
    • src/server/slot-lock.ts
    • tests/double-booking.test.ts

    This is included. We do not charge you for the week we did not spend.

    Pricing

    A monthly subscription. One project at a time.

    A flat monthly fee for a dedicated builder working through your list. Pause any month and keep everything built so far. There is no per-fix charge and no estimate to argue about, because the whole point is that you stopped having to think about this.

    blocking
    No authentication on the bookings table
    Any signed-in user can read every customer’s address and phone number.
    db/policies/bookings.sql

    Found on day one. Fixed on day three.

    Watch two weeks of someone else’s project.

    Tap through the audit, the fixes, the escalation and the checklist. About two minutes.

    See a project