Skip to main content
Mind4Solutions
Start a project
React NativeFastifyAdminJSPostgresDocker

Cross-border e-commerce app — France ↔ Madagascar

Importing from Europe to Madagascar, without the logistics anxiety. A mobile app that turns a parcel journey into an experience you can follow live.

Home screen of the MVA Global Fret mobile app

The challenge

MVA Global Fret runs a cross-border import flow between France and Madagascar. The client base splits in two: Malagasy families living in Europe who regularly ship parcels to relatives back home, and Malagasy businesses importing equipment, spare parts or finished goods from European e-commerce platforms.

The friction points are familiar to anyone who has tried it: no visibility on a parcel once it leaves the European warehouse, awkward international payments, no way to trigger a purchase from Madagascar on a platform that only delivers to Europe. On the operations side, tracking was done on paper and over WhatsApp — workable at small scale, impossible to consolidate at month-end.

The product needed to serve three audiences with one tool: the end customer who wants to watch their parcel move in real time, the operator who sorts, scans and ships, and management that tracks volumes, statuses and accounting exports.

Our approach

Observation before design

We started by spending time with Melissa, the operations lead, watching the flow in practice: order intake, parcel sorting at the warehouse, customer follow-ups, monthly exports. Only then did we draw the interface — not the other way round. Every screen answers a gesture we saw someone actually perform, not a wireframe lifted from another app.

Technical choices

React Native + Expo for the mobile app: a single codebase for Android and iOS, releases handled through EAS, fast build cycles in development. The ecosystem is mature, and staffing a team later remains possible without locking into a proprietary stack.

Fastify in TypeScript for the backend, rather than a full Next.js API: the product isn't a website, it's a dedicated domain API with a separate admin panel. Fastify gives us a clean API surface, native typing, and a solid plugin ecosystem (auth, validation, rate limiting). Postgres runs in a container, migrations are versioned.

AdminJS for the operator panel: instead of building an admin front from scratch, we generate a tailored CRUD interface on top of the Postgres schema. Melissa's operators use the tool directly in production — forms, filters, CSV exports, bulk actions. Time saved on the admin side is redirected to the customer-facing screens, where the craft really matters.

Design system

Nancia built a proper design system: palette, typography, reusable components, iconography. Every screen breathes the same visual language, and future work lives inside the same system. The UI code follows the same logic — atomic components first, then composed.

What we shipped

A product in three pieces that talk to each other:

  • React Native mobile app — product catalogue, order creation from European e-commerce platforms, live parcel tracking, account area, push notifications, payment integration.
  • Fastify + Postgres backend — typed REST API, JWT auth, payment webhooks, parcel status management, notification engine, secured admin endpoints.
  • AdminJS operator panel — warehouse sorting and scanning, status management, customer follow-ups, monthly accounting exports, user and role management.

The whole thing is packaged as Docker Compose, deployed on a VPS with Caddy as a reverse proxy for automatic TLS. Mobile releases ship through EAS; the backend redeploys on push via a simple deploy.sh that runs git pull and docker compose up -d --build.

Stack shipped

React Native + ExpoFastify (TypeScript)PostgreSQLAdminJSDocker ComposeCaddy

Results

The product is live, used daily by the MVA team to handle the France ↔ Madagascar import flow. Operators run sorting and follow-ups from the admin panel; end customers track their parcels without going through WhatsApp.

The project keeps evolving: new features on a regular cadence, gradual expansion of the customer base, iteration on the most-used screens. We stay on as long-term technical partners — not a ship it and vanish.

Detailed figures (parcel volume, active users, intermediated revenue) available on request.

A project in the same spirit?

Mobile app, domain backend, admin panel — or all three. Let's talk before pricing.