Skip to main content
DevelopmentMobile AppMarketplaceTakeover

An unfinished roadside assistance platform, taken over and brought to release.

Wein connects drivers in Algeria who need help on the road with nearby towing companies, mechanics and independent providers. We took over its in-progress Flutter customer and provider apps and Laravel backend, stabilised both apps, relocated and recovered the backend, and delivered both Android apps to Google Play closed testing.

Wein roadside assistance platform cover: conceptual map artwork with a tow truck and car, beside the Wein customer app home screen
Client
Wein
Market
Algeria
Release Stage
Google Play Closed Testing
In short

Wein didn't need a blank-canvas build. It needed a team that could pick up an in-progress, two-sided product, make the customer app, the Wein Partner provider app and the backend work together reliably, and get them to a controlled release. We took over the codebase, fixed the client-reported issues, moved and recovered the Laravel backend, completed the realtime request, offer, tracking and notification integration, and shipped both apps to Google Play closed testing.

  • Takeover of an inherited Flutter codebase across two Android apps
  • Stabilisation and client-reported issue fixes before release
  • Laravel backend relocation and recovery on Railway (EU)
  • Both apps released to Google Play closed testing

The product, by the numbers

Product scope and configuration, not downloads or revenue

Android Apps Released

2

Roadside Services

25

Service Categories

9

Languages, RTL Supported

3

The Challenge

An in-progress product, not a blank canvas

The engagement started with an existing, unfinished codebase. Both mobile apps needed stabilisation, the backend needed to be relocated and recovered, and a list of client-reported issues stood between the product and a release. The two sides of the marketplace, drivers and providers, also had to share one request lifecycle and behave like one product rather than two unrelated apps.

The priority was to make both sides work together reliably and reach a controlled release, without throwing away the work already done or presenting it as an entirely new build.

01

Inherited Flutter codebase

Two in-progress Android apps to understand, continue and stabilise.

02

Backend to relocate and recover

The Laravel services both apps depend on needed a new, working home.

03

Two sides, one lifecycle

Requests, offers, tracking and notifications had to flow correctly between both apps.

04

Three languages

Arabic, French and English, with right-to-left layouts and language switching.

Before
  • In-progress codebase from an earlier team
  • Client-reported issues blocking release
  • Backend needing relocation and recovery
  • Customer and provider apps not yet release-ready
After
  • Codebase taken over and development continued
  • Both apps stabilised and reported issues resolved
  • Laravel backend relocated and recovered on Railway (EU)
  • Both Android apps in Google Play closed testing, with Play App Signing
Our Solution

Stabilise both apps, recover the backend, then release

We took over the existing Flutter applications and their Laravel backend, worked through the client-reported issues and stabilised both the customer and provider experiences. In parallel we relocated and recovered the backend, restoring the service foundation both apps rely on.

With the foundation back in place, we completed the mobile-to-backend integration across the realtime architecture: requests, offers, live tracking and push notifications, using WebSockets over the Pusher protocol against Laravel Reverb and Firebase Cloud Messaging.

Finally, we prepared and delivered both Android apps through Google Play closed testing with Play App Signing, keeping the existing Arabic, French and English experience, including right-to-left layouts and language switching.

FlutterLaravelFilamentMySQLRedisFirebaseGoogle Maps
How The Platform Works

A two-sided marketplace across four areas

Customer app

  • 25 services in 9 categories
  • Location pin, photos and voice note
  • Choose from live provider offers
  • Shareable tracking link for family

Wein Partner app

  • Online and offline availability
  • Nearby requests and counter-offers
  • Job stages and earnings dashboard
  • Verification documents and plans

Dispatch & realtime

  • 10, 25 and 50 km broadcast tiers
  • Laravel Reverb WebSockets
  • Push notifications via FCM
  • Queued jobs with Horizon

Admin & localisation

  • Filament admin for services and providers
  • Subscriptions, banners and support tickets
  • Arabic, French and English with RTL
  • Background location with prominent disclosure

Inside the apps

Original store-presentation graphics supplied by the client. Prices, earnings, ratings and job counts are interface examples, not verified results; one screen shows a demonstration map location.

Wein customer app — for drivers who need help

Wein customer app home screen with available roadside services: tire service, mechanic, battery problems and towing
Wein customer app location capture screen over a demonstration map, with redacted address and a tire-replacement request
Wein customer app requests screen listing active and past roadside service requests
Wein customer app profile menu with vehicles, FAQ, support tickets and language settings
Wein customer app contact and support form with call, email and visit options
Wein customer app edit profile screen supporting English, French and Arabic

Wein Partner app — for towing companies, mechanics and providers

Wein Partner app dashboard with an online/offline toggle, rating, jobs done and cancelled counts
Wein Partner app requests screen with active, completed and cancelled job stages
Wein Partner app earnings screen with a weekly activity log chart
Wein Partner app offered services screen covering tire, mechanic, battery and towing categories
Wein Partner app subscription screen with an active annual plan and basic plan pricing
Wein Partner app business profile with verification status, services, vehicle and documents
From Breakdown To Assistance

One request lifecycle, shared by both apps

A driver identifies the problem, drops a pin and can attach photos and a voice note. Nearby providers receive the request and send prices; the driver picks an offer instead of receiving an unexplained assignment. From there, both apps follow the same job stages, with chat, ratings and reviews after the job.

Request
Offers
Accepted
On the way
Arrived
In service
Completed

Broadcast tiers: 10 km · 25 km · 50 km — configuration, not arrival-time guarantees.

Technology

The stack behind Wein

Flutter

Riverpod, GoRouter, Dio and EasyLocalization across both Android apps.

Laravel 11 & Filament

Backend services and the administration panel for services, providers and settings.

MySQL, Redis & Horizon

Data, caching and queued jobs for broadcasting and notifications.

Laravel Reverb

WebSockets over the Pusher protocol for live offers and tracking.

Google Maps & FCM

Location, tracking and push notifications to drivers and providers.

Railway & Play App Signing

EU-region backend hosting and secure Google Play releases.

From takeover to release

Closed testing is a controlled release stage, not a public production launch

2 Apps

In Closed Testing

Recovered

Laravel Backend

25 / 9

Services / Categories

3

Languages With RTL

The process

How the takeover unfolded

  1. 01

    Phase 01

    Takeover & audit

    Inherited Flutter apps, backend and reported issues reviewed and prioritised.

  2. 02

    Phase 02

    Stabilise the apps

    Customer and provider experiences fixed and made release-ready.

  3. 03

    Phase 03

    Recover the backend

    Laravel services relocated and restored on Railway in the EU.

  4. 04

    Phase 04

    Integrate realtime

    Requests, offers, tracking and notifications working end to end.

  5. 05

    Phase 05

    Release

    Both Android apps delivered to Google Play closed testing.

Stuck with an unfinished app?

Tell us where you want to go. We'll show you how to get there, and then build it with you.

More case studies