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.