CodingIdeas.ai
← Back to Ideas

Kerb - Live Roadside Assistance With Real ETA

Broken down on a motorway at midnight and the AA gives you a 90-minute ETA with zero updates? Kerb connects stranded drivers to nearby mechanics and tow operators right now — live map, upfront price, no hold music. Think Uber but your car is crying.

Difficulty

intermediate

Category

Mobility & Transport

Market Demand

Very High

Revenue Score

8/10

Platform

Web + Mobile

Vibe Code Friendly

⚡ Yes

Hackathon Score

🏆 8/10

Validated by Real Pain

— seeded from real-world friction

real-world friction🔥 real demand

Drivers breaking down on motorways or quiet roads at night with roadside assistance taking 60–90 minutes and providing no real-time ETA updates — a common, high-stress friction point for millions of drivers.

What is it?

Outside the US, roadside assistance is a call centre problem disguised as an infrastructure problem. Kerb is a real-time dispatch platform that lets stranded drivers post their breakdown, see nearby available mechanics and tow operators on a live map, and get an upfront fixed fee before confirming. No membership required, no 90-minute mystery queue. Operators list their service radius, vehicle type coverage, and on-call hours. Payment via Stripe on job completion. Buildable with Next.js, Supabase Realtime, Google Maps, and Stripe Connect in 3 weeks.

Why now?

Supabase Realtime is now production-stable for location-based queries, and Stripe Connect instant payouts launched in the UK in late 2024 — removing the two biggest blockers for this type of marketplace.

  • Live operator map showing on-call mechanics within configurable radius (Supabase Realtime + Google Maps)
  • AI breakdown triage that classifies job type and recommends tow vs. fix (Claude API)
  • Upfront fixed pricing display before driver confirms job
  • Real-time SMS ETA updates via Twilio as operator drives to location

Target Audience

Drivers in the UK and EU aged 25-55, and 30k+ independent mechanics and tow operators who take ad-hoc call-out work but have no dispatch platform.

Example Use Case

James blows a tyre on the M6 at 10pm, opens Kerb, drops a pin, describes the issue, sees 3 nearby operators with ETAs and prices, confirms a $95 tyre change, and tracks the mechanic arriving in 22 minutes.

User Stories

  • As a driver stranded on a motorway at night, I want to see available mechanics within 10 miles with real ETAs, so that I am not waiting 90 minutes with no information. As an independent tow operator, I want to receive job alerts for breakdowns near my current location, so that I fill dead evening hours with premium call-out income.
  • As a driver, I want to pay a fixed upfront price before confirming, so that I am not hit with a surprise invoice after a stressful breakdown.

Acceptance Criteria

Live Map: done when operator location updates within 10 seconds of movement on driver screen. AI Triage: done when breakdown type is correctly classified for 90% of test descriptions. Escrow Payment: done when Stripe transfer releases only after driver confirms job completion. Operator Onboarding: done when new operator can sign up, upload insurance proof, and go live in under 10 minutes.

Is it worth building?

80 jobs/month at avg $150 = $12k GMV. 12% take = $1,440/month at month 3. Realistic with 25 active operators across 2 regions.

Unit Economics

CAC: ~$10 per operator via Facebook group outreach. LTV: $216 (18 months x avg $12 commission per job x 1 job/week). Payback: under 1 month. Gross margin: 87%.

Business Model

12% platform commission per completed job plus optional $12/month operator pro plan for priority ranking

Monetization Path

Per-job commission via Stripe Connect. Pro operator plan unlocks job alerts by SMS and priority placement.

Revenue Timeline

First dollar: week 4 after first completed job. $1k MRR: month 3. $5k MRR: month 8. $10k MRR: month 13.

Estimated Monthly Cost

Supabase: $25, Vercel: $20, Google Maps API: $60, Twilio: $25, Stripe fees: ~$30. Total: ~$160/month at launch.

Profit Potential

Full-time viable at $6k–$15k MRR across 4-5 regions with 100+ active operators.

Scalability

High — expand by region, add fleet operator accounts, white-label for breakdown cover insurers.

Success Metrics

Week 2: 15 verified operators onboarded in one city. Month 1: 20 completed jobs. Month 3: average operator response under 8 minutes.

Launch & Validation Plan

Post in UK tow operator Facebook groups offering zero commission for 90 days, collect 15 operator signups before writing code.

Customer Acquisition Strategy

First operators: DM 30 independent tow truck operators via Facebook groups and Gumtree ads in target city offering zero commission for 3 months. First drivers: Google Ads on 'breakdown recovery near me' in target postcode, Reddit r/CasualUK, local Facebook groups.

What's the competition?

Competition Level

Low

Similar Products

AA and RAC (membership model, no live tracking, 90-min ETAs), Urgently (US only), Motorway (car selling not rescue) — none offer real-time independent operator dispatch in the UK.

Competitive Advantage

Unlike RAC or AA, Kerb requires no annual membership, shows live operator locations, and gives upfront fixed pricing — not a mystery queue.

Regulatory Risks

Operators must hold public liability insurance — require proof at onboarding. No licensing required to operate the platform itself. GDPR applies to location data.

What's the roadmap?

Feature Roadmap

V1 (launch): AI triage, live operator map, Stripe escrow, SMS ETA updates. V2 (month 2-3): rating system, repeat driver history, operator earnings dashboard. V3 (month 4+): fleet operator accounts, insurance partnership upsell, iOS app.

Milestone Plan

Phase 1 (Week 1-2): Supabase schema, Claude triage, Stripe Connect live. Phase 2 (Week 3-4): live map, job flow, SMS tested with 5 real operators. Phase 3 (Month 2): 10 completed paid jobs, escrow validated end-to-end.

How do you build it?

Tech Stack

Next.js, Supabase Realtime, Google Maps API, Stripe Connect, Twilio for SMS, Claude API for breakdown triage — build with Cursor for API logic, v0 for map UI, Lovable for operator onboarding

Suggested Frameworks

Next.js App Router, Supabase Realtime, Stripe Connect

Time to Ship

3 weeks

Required Skills

Stripe Connect, Supabase Realtime, Google Maps API, Next.js routes.

Resources

Stripe Connect docs, Google Maps Platform, Supabase Realtime docs, Twilio SMS API.

MVP Scope

pages/index, pages/breakdown, pages/operator/dashboard, pages/job/[id], api/triage, api/jobs, api/stripe-connect, components/LiveMap, components/OperatorCard, supabase/schema.sql, lib/twilio.ts, lib/stripe.ts

Core User Journey

Drop pin -> describe breakdown -> see live operators with ETAs -> confirm and pay upfront -> track arrival -> job done.

Architecture Pattern

Driver submits breakdown + location -> Claude triage classifies job type -> Supabase queries nearby on-call operators -> push notification to operators -> operator accepts -> Realtime map activates -> job complete -> Stripe escrow releases.

Data Model

User is Driver or Operator. Operator has many ServiceAreas and AvailabilitySlots. Job belongs to Driver and Operator. Job has one Payment, one Location, and one Review.

Integration Points

Stripe Connect for escrow, Google Maps API for live tracking, Twilio for SMS ETA updates, Claude API for breakdown triage, Supabase Realtime for live operator state.

V1 Scope Boundaries

V1 excludes: fleet operator dashboards, scheduled bookings, insurance integrations, native mobile app, white-label.

Success Definition

A stranded driver finds Kerb via Google at 11pm, books a mechanic without calling anyone, tracks them live, and pays automatically — without the founder touching anything.

Challenges

Operator cold-start is brutal — one stranded driver with zero nearby operators is an instant app uninstall. Supply density in target region must precede any marketing spend.

Avoid These Pitfalls

Do not launch in multiple cities simultaneously — cold-start in one dense urban postcode (e.g. Manchester city centre) before expanding, because one stranded driver with zero nearby operators is an immediate uninstall and a reputational crater. Do not skip operator public liability insurance verification at onboarding — one uninsured incident where a mechanic damages a vehicle or causes injury creates direct legal exposure for the platform under UK tort law. Do not use Google Maps static embeds for the live operator tracking view — you need the Maps JavaScript API with Realtime marker updates, which has a different billing structure; budget Google Maps API costs carefully because Places + Directions + Dynamic Maps calls stack up fast beyond the $200/month free tier. Do not hold driver payments in your own Stripe balance — use Stripe Connect separate charges and transfers with escrow held on the platform account, released only on job completion, or you may fall under FCA payment institution regulations. Do not assume tow operators check push notifications — your first dispatch channel must be Twilio SMS to their mobile because operators are driving, not watching a dashboard. Supply density must precede any driver-side marketing spend or you burn CAC budget on unserviceable demand.

Security Requirements

Supabase Auth with Google OAuth, RLS on all location and payment tables, rate limiting 60 req/min per IP, GDPR location data deletion endpoint required, Stripe Identity for operator verification.

Infrastructure Plan

Vercel for Next.js, Supabase for Postgres and Realtime, Cloudflare R2 for insurance document uploads, GitHub Actions for CI/CD, Sentry for error tracking.

Performance Targets

Launch: 150 DAU, 1.5k req/day. Map location updates under 3s latency. Page load under 2s. Supabase Realtime channels — no polling.

Go-Live Checklist

  • Security audit complete
  • Stripe escrow tested end-to-end
  • Sentry live
  • Monitoring dashboard active
  • Custom domain with SSL
  • Privacy policy and T&Cs published
  • 10 beta operators signed off
  • Rollback plan documented
  • Reddit and Facebook group launch posts drafted.

How to build it, step by step

1. Run 'npx create-next-app@latest kerb --typescript --app' and install dependencies: '@supabase/supabase-js', '@supabase/auth-helpers-nextjs', '@stripe/stripe-js', 'stripe', 'twilio', '@googlemaps/js-api-loader', '@anthropic-ai/sdk'. 2. In Supabase dashboard create tables: drivers (id, name, email, phone), operators (id, name, phone, stripe_account_id, insurance_doc_url, is_verified, is_on_call, current_lat, current_lng, service_radius_km), jobs (id, driver_id, operator_id, status ENUM breakdown_type, lat, lng, description, fixed_price_gbp, stripe_payment_intent_id, created_at), job_events (id, job_id, event_type, message, created_at). Enable Row Level Security — drivers read only their own jobs, operators read jobs within their service radius. 3. Enable Supabase Realtime on the operators table (current_lat, current_lng, is_on_call columns) and jobs table (status column). Test with supabase.channel('operators').on('postgres_changes') in a throwaway script before building UI. 4. Build POST /api/triage using the Anthropic SDK: accept { description: string }, send to claude-3-5-haiku with a system prompt listing job categories (flat_tyre, battery_jump, fuel_delivery, tow_required, unknown), return { job_type, urgency, recommended_action } as JSON. Test with 10 hardcoded descriptions before wiring to the form. 5. Build Stripe Connect operator onboarding: GET /api/stripe/connect/onboard creates a Stripe Connect Express account and returns an account_link.url — redirect operator there. GET /api/stripe/connect/callback handles return_url, marks operator as stripe_connected in Supabase. Test in Stripe test mode with a dummy UK operator account. 6. Build the driver breakdown form at app/breakdown/page.tsx: Google Maps pin drop using @googlemaps/js-api-loader, textarea for description, on submit POST to /api/triage then POST to /api/jobs which inserts a pending job row and queries operators where is_on_call=true and location within service_radius using Postgres ST_DWithin (enable PostGIS extension in Supabase). Return matched operator list with ETAs estimated via Google Maps Distance Matrix API. 7. Build the live operator map at app/job/[id]/page.tsx: subscribe to Supabase Realtime on the specific job row and the assigned operator's location columns, render operator marker moving on Google Maps JS API, show ETA countdown from Distance Matrix, update every 15 seconds via Realtime channel. 8. Build operator dashboard at app/operator/dashboard/page.tsx: on-call toggle updates operators.is_on_call in Supabase, incoming job card shows driver location on map and fixed price, accept button calls POST /api/jobs/[id]/accept which updates job status to accepted and creates a Stripe PaymentIntent with application_fee_amount set to 12% of the job price. 9. Add Twilio SMS via lib/twilio.ts: trigger SMS to operator on new nearby job (job created event from Supabase webhook -> Vercel serverless function -> twilio.messages.create), trigger SMS to driver on operator acceptance with name and ETA. Use Twilio Verify for driver phone verification at signup. 10. Add job completion and payment release: driver taps 'Job Complete' -> POST /api/jobs/[id]/complete -> stripe.paymentIntents.capture(paymentIntentId) releases funds minus 12% application fee to operator's Connect account. 11. Upload insurance documents to Cloudflare R2 using the S3-compatible API (@aws-sdk/client-s3 pointed at R2 endpoint) — store the R2 object URL in operators.insurance_doc_url. Mark operator as verified manually in Supabase dashboard for V1. 12. Configure Supabase Auth with Google OAuth for drivers and magic link email for operators. Apply RLS policies: operators can only update their own row, drivers can only read jobs they own. 13. Deploy to Vercel, set all env vars (SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, ANTHROPIC_API_KEY, GOOGLE_MAPS_API_KEY, R2_BUCKET credentials). Register Stripe webhook endpoint for payment_intent.succeeded and account.updated events. 14. Test end-to-end with two real phones: one as driver submitting a fake breakdown, one as operator accepting and completing — verify Stripe transfer appears in Connect dashboard and SMS fires at each step.

Generated

April 9, 2026

Model

claude-sonnet-4-6 · reviewed by Claude Sonnet

← Back to All Ideas