Skip to main content
Carriage: languages, approach, the home map, chat, filters

Carriage - Traveler Help App Delivered Over 18 Months

Upwork brand logoUpworkApp DevelopmentDec 01, 2022 - Jun 30, 20241 year 7 months

Land somewhere you do not speak the language and help is all around you, unreachable. Carriage makes it reachable: turn on your dots and see people nearby who share a language and are willing to help, approach one, and once they accept you can message, call or meet face to face. Built as sole developer across a React Native app and a NestJS GraphQL backend, delivered milestone by milestone from an empty navigation shell through social login, profiles, radius discovery, the approach flow and messaging. Eleven milestones were accepted across a year and a half on one continuous engagement, closing at version 1.8.0.

React NativeNestJSGraphQLMongoDBTypeScriptNode.jsExpoSocket.IO
Md Moniruzzaman Image

Md Moniruzzaman

The Full Story

A traveler's worst moment, a stranger who can help, and a product built one accepted milestone at a time.

The moment nobody understands you

Every traveler knows the moment: a station, a pharmacy or a police desk where nobody speaks your language and you urgently need to be understood. Translation apps help with a sentence, not with a situation. What you want is a person nearby who speaks your language and is willing to help.

Carriage was built for exactly that moment, and for the many people who would gladly help a stranger if they only knew one was nearby.

Languages first, then who may find you

Every profile starts with the languages a person speaks and how well, from a few words to fluent, then their interests and a clear choice of who may see them: an age range, genders and profile types. That one setup decides who can find whom, so a traveler is matched on the language that matters and nobody is shown to people they did not choose.

Brand colour backdrop
Adding a language with a level of expertise, from basic words and phrases to fluent
Choosing six interests from a searchable list
Choosing who can see the profile: age range, genders, profile types and interests

Dots on the map, people willing to help

Turn your dot on and the map shows people within your radius who share a language and are available, ten miles of Los Angeles in one glance. Tap a dot to see who it is, how old they are, the languages they speak and a short bio, then approach them or move on. Nothing more is shared until the helper accepts, and then the two can message, call by audio or video, and meet in person if the situation needs it.

It feels less like a directory and more like catching the eye of the right person in a crowd.

Brand colour backdrop
The finalized Discover home screen: the dot on, a ten mile radius over Los Angeles and nearby helpers inside it
A helper tapped on the finalized home screen: age, languages, interests, a short bio, and Approach or Cancel

Visible only when you choose

Being findable is a choice, not a default. A helper's dot stays off until they turn it on, filters limit who appears and how many dots show at once, and home and work can be excluded so the dot switches itself off there. For helpers that is the difference between offering a few minutes of kindness and being on call all day, and it is why people are willing to join.

Brand colour backdrop
Discover with the Carriage dot switched off and the prompt to tap it on
The finalized Edit Filters page: excluded home and work locations, how many dots to show, age range, genders and profile types

From a dot to a conversation

Approaching a stranger is a small ask, and Carriage keeps it that way. Once a helper accepts, the two land in a private chat where the traveler can explain the situation in their own language and the helper can answer with directions, a name to look for or a place to wait. Every earlier conversation stays in the inbox, so the helpers a traveler has already met are one tap away the next time they land.

For the founder this is the moment the product stops being a map and becomes a relationship, which is what makes people open the app again.

Brand colour backdrop
The Messages inbox in the final theme with the real tab bar: recent helpers, conversations with unread counts, re-themed from the Figma design
A chat with a helper in the final theme, audio and video call buttons in the header, re-themed from the Figma design

When typing is too slow

Some situations cannot wait for a reply. A pharmacist is asking questions, a train is about to leave, an officer wants an answer now. From the chat header the traveler can call the helper by audio, or switch to video and point the camera at the sign, the form or the counter so the helper can read the situation and speak for them. Calls run over Twilio through the same NestJS backend as the chat, so the two talk inside the app without swapping phone numbers, and the helper decides how far the help goes.

Brand colour backdrop
An audio call with a helper in the final theme: languages shared, mute, speaker, video and end call
A video call in the final theme, the traveller showing the street to the helper, with a self view and call controls

Growth and revenue built into the product

A consumer app needs users and a way to pay for itself. Every member gets a referral code and a QR code that shares the app link, with rewards when friends join through it, so the network grows through the people already in it. Carriage Pro unlocks more dots, analytics, a Pro badge and an ad-free app after a free trial, giving the founder a revenue line from the users who get the most out of it.

Brand colour backdrop
A referral code and a QR code that shares the app link
Upgrade to Carriage Pro: more dots, analytics, a Pro badge and no ads, with a free trial

Eighteen months, eleven accepted milestones

The founder needed a partner who would still be delivering a year and a half later. Carriage was built by one developer across the React Native app and the NestJS, GraphQL and MongoDB backend, in eleven milestones, each one planned in writing, handed over with screenshots and a walkthrough video, and accepted with a settlement document the client kept.

Brand colour backdrop
One engagement in five eras: foundation, identity, dots, approach, handover

A boring foundation, on purpose

The first milestone was deliberately unglamorous: the app's navigation and structure with blank screens, no demo features. Everything after it built on that foundation instead of patching around a rushed start, and scope changes were negotiated in the open rather than absorbed silently.

For the founder it meant a product that grew for eighteen months without a rewrite, a budget that stayed visible, and a record of every decision. For travelers it meant an app that worked at the moment they needed it most.

What they said

Dominique Kimbrough

Founder of Carriage

1 year 7 months

I loved working with Monir! He is extremely flexible and listens and adjusts amazingly! I will definitely hire Monir in the future if anything comes up!

Jun 16, 2024

(5.0)

Dominique Kimbrough

Founder of Carriage

1 year 7 months

Amazing , Spectacular, Honest, Forthright, Hardworking person to work with. I have loved working with him daily and will do again anytime in the future. Takes everything in stride and adamantly works with my daily changing timeline. Has unlimited potential , will be a UpWork Super Star in the future if I don't hire him first!

Apr 07, 2023

(5.0)

You May Also Like

fully booked brand logo
Fully Booked Booking Software
App Development
2 years 3 months
fully booked brand logo

Fully Booked - All-in-One Smart Booking Solution

Fully Booked is a booking platform for UK minibus and coach hire and the job-sharing network of operators behind it. A customer describes a trip once on the customer website and receives offers from the operators who can serve it, ranked with reviews and vehicle photos, then books with a small protected deposit. An operator who cannot take a job refers the customer from the app, and earns a share when another firm in the network carries it. Around that loop sit quotations, cancellations, Get Covered, partner contacts, stored bookings, a wallet, business pages and the Prebooked widget, all on one backend and run from an admin control room.

Md Moniruzzaman Image

Md Moniruzzaman

Jun 24, 2025

+1
Dominic Dormer
Coverfanz Logo

CoverFanz - Fan Engagement and Artist Booking Platform

CoverFanz puts performers, venues and fans on one app: venues book performers on written terms, and fans find the next show on a map. A booking carries the event, the times and the fee, the performer attaches their own terms before it goes live, a confirmed event can carry a promotion, and reviews build each performer's record. The backend, the iPhone and Android app and the admin dashboard shipped inside one month in 2022, and both stores approved it on the first attempt.

Md Moniruzzaman Image

Md Moniruzzaman

Apr 29, 2022

Amr Mashrah
Sportpal Logo

SportPal - Connect and Play with Local Sports Enthusiasts

SportPal shows players the pickup games happening near them tonight and helps organisers fill their games, shipped as a full product in six weeks. Players browse as a guest, verify a phone only when they want to join, and RSVP to public games or accept invitations to private ones; organisers set who can join and how many players they need. React Native and Expo on iPhone and Android, with a NestJS, GraphQL and MongoDB backend and Twilio verification.

Md Moniruzzaman Image

Md Moniruzzaman

Oct 08, 2022

Default avatar
Read the Md Moniruzzaman blog

The blog is field notes from production: architecture decisions, AI systems that survived contact with real users, and infrastructure that pays for itself. Written from the work, not about it.