Delivery apps

How to Build a Delivery App Like Foodpanda: Features, Tech Stack and What to Build First

A delivery app is three apps and an admin panel. Here are the features each one needs, the hard parts, the tech stack we used for GharTak, and what to leave out of version one.

By Abdul Rafay··7 min read

A delivery app looks like one app. It is at least three: one for customers, one for riders and one for shops, with an admin panel behind them. We built GharTak, a delivery marketplace for Pakistan, and this is the list we would have liked to have at the start.

The four parts

Customer app
Browse shops, place an order, track the rider and pay.
Rider app
Accept a job, navigate to the shop and the customer, update the status and see earnings.
Shop app
Receive an order, accept or reject it, and mark it ready for pickup.
Admin panel
Approve shops and riders, watch live orders, handle disputes and settle payouts.

The hard parts nobody mentions

Order states
An order moves through placed, accepted, picked up and delivered, and it can be cancelled or fail at each step. Define every state and who is allowed to change it before writing any code.
Real-time updates
All three apps have to show the same order status at the same moment. GharTak uses Socket.IO for this.
Addresses
In Pakistan a street address is often not enough to find a house. GharTak lets customers describe a landmark, including by voice.
Ordering without a catalogue
Many local shops have no product list. In GharTak a customer can send a voice note, a photo of a handwritten list (a parchi) or typed text, and the shop replies with a price.
Cash
Plan for cash on delivery from day one. It changes the design, because the system has to know how much cash each rider is holding.
Language
GharTak is built in both Urdu and English. Adding a second language later is much more work than planning for it at the start.

The tech stack we used

  • React Native with Expo, so iOS and Android share one codebase.
  • Redux Toolkit for app state.
  • Node.js and Firebase on the backend, with Socket.IO for real-time updates.
  • Google Maps Platform for maps, routes and live location.

What to build first

Do not start with every category in every city. Start with one area, one category and a few shops you know personally.

  • Assign riders by hand from the admin panel. Automate dispatch when the volume forces you to.
  • Launch with cash on delivery if it works for your customers, and add online payments next.
  • Leave out promotions, wallets and ratings until people are ordering every day.

How long does it take?

A first version for one area with manual dispatch is a realistic MVP. A full marketplace with many categories, automated dispatch, wallets and promotions is built in stages after that. The timeline depends on which of the parts above you include, which is why a written scope comes before any estimate.

Building something like this?

Book a 15-minute call. You will leave with a clearer scope, whether or not we work together.

Book a 15-min call