How to Build a Mobile App for Restaurant Ordering
Most restaurant bookings are still made over the phone but online and in-app reservations are rapidly increasing in popularity. This isn’t such a surprise since arranging a restaurant visit via a phone call can be a long and irritating process. In today’s prevailing culture of convenience, many people would prefer a bot assistant to make reservations for them. In addition, people generally tend to make fewer calls now than ever before.
The alternative to booking a table over the phone is reserving a spot online. Doing so allows diners a simpler and more efficient way to explore the available options. Many restaurants have adopted this feature, and, as a testament to client preferences, restaurant apps are experiencing growth in the number of downloads each year.
At MadAppGang, we worked on Tayble, an ambitious restaurant table reservation app for the Australian market. During this restaurant mobile app development, we explored the market in depth and can guide you through the essentials of the process. Tayble was the first attempt to build local restaurant booking software in Australia and it processed 500,000 orders from 500 Sydney venues in just one year.
Before we get into the nuts and bolts of creating a restaurant app, let’s review the market and a few of the big players.
Restaurant Ordering Apps: The Big Players
The most well-known restaurant booking system app is OpenTable. It was launched back in 1998 and now offers table reservations in over 48,000 restaurants across 20 countries. OpenTable has a website, a mobile app, and a bunch of software solutions for restaurants.
It’s still currently the most successful service but it is entirely possible that OpenTable’s competitors will outperform it. There are two major reasons why we can assume this. Firstly, the price restaurants must pay to use their software is unreasonably high. Secondly, they have too many options without a particular focus.
Since 2014, alternatives to the OpenTable restaurant-booking system have started to show impact in the market. Different startups began offering table reservation apps and management software for a lower price, which led to OpenTable to reducing their fees.
One of the most promising apps is Resy. They work with more than 1,000 restaurants across the US. Their main difference – which is hugely beneficial – is their specialization and personal touches. For example, the system offers only specially picked restaurants with a report section including a “why we like it” commentary.
Interestingly, both customers and restaurant administrators admit that the technology behind the app is weaker and less user friendly than OpenTable’s, but this doesn’t stop them from not only implementing the system but sometimes switching to Resy completely.
The so-called pay-to-play model which Resy uses means charging a customer to make a reservation. The practice of paying for just a booking is quite controversial – not every customer is okay with it.
What OpenTable does instead is to charge restaurants hefty fees – currently it’s $1 per diner! Add to that the software installation costs ($200-700) and the monthly subscription fee ($199 minimum) and you start to get the picture. Additionally, since OpenTable owns all the customer data, cancelling the subscription results in restaurant owners losing information about their clients. These obvious drawbacks pushed several high-end venues to switch to Resy.
Resy is pushing for market dominance by acquiring other startups. The app Reserve, which adopted an open data model to allow restaurants to see and analyze what customers are looking for, was acquired by Resy in 2018.
Another player is Yelp Reservations, which is linked to the famous review service which people use to search for nearby restaurants. Recently, Yelp bought NoWait, a service featuring venues that rely on waiting lists. NoWait allows customers to book a place in the queue online.
La Fourchette (The Fork) is another strong market player which functions primarily in Europe and in tandem with TripAdvisor. Despite its European roots, this booking app features over 4,500 Australian venues.
There are many other services in this niche which address slightly different goals:
- Spotluck features a random selection of discounts;
- Rezhound finds OpenTable reservations that have opened up and informs interested users about them;
- Tock sells experiences such as menu testing;
- TablesReady manages waiting lists for busy restaurants;
- EatClub offers last minute deals;
- Hey You and Skip serve for finding the best morning coffee based on your preferences;
- Menulog allows ordering restaurant food to pick up.
While it may seem like the market is already flooded with restaurant table booking apps, it’s important to remember that there are no universal solutions. And we would argue that many excellent specialized ideas are still waiting in the wings.
The Features Your App Will Need
Your own restaurant app project has to bring value to both restaurants and customers. Think about what problem or problems you want to solve and what niche you want to focus on. Once the key vision is in place, you can move onto the tech that drives it.
To create your own restaurant app, you will need to have a version for end users, a version for administrators, and a secure backend for storing information.
Any restaurant ordering system app requires large amount of data. To include all the restaurants, available tables, menus and options, geolocation information, and user data in a system that will securely store all of it, you’ll need a powerful backend solution.
For example, while working on the Tayble project, we used MongoDB replicas to create a scalable database. The prototype of the app, which was our starting point, was powered by Firebase which simply wasn’t capable of dealing with the numerous layers of different data and was impossible to scale horizontally and across different regions. By contrast, MongoDB allows load balancing and the creation of regional replicas. Communication was handled with serverless Lambda functions on top of AWS architecture. Written on Golang, and therefore being extremely lightweight, our Lambda functions meant we could make a scalable API at low cost.
Since how you store information defines how the system will work for end users, it’s essential to choose relevant technology which will be scalable enough to cover everything you want to include in your app. To guarantee smooth and fast operation, you should also make sure that the main server is located somewhere near your target area.
Another important consideration is the security of the data collected by the application. Notorious examples showcasing the vulnerability of data shared via apps include the Zomato database breach and the McDonald's hacks. Any app, or team of developers creating an app, which collects and retains user data must be extremely conscious of potential pitfalls and weak points. Once user trust is lost, it’s hard to gain it back.
Before anything else, ordering via your application should be easy for users! In fact, being user friendly is among the key features you want to aim for. You can provide the most attractive deals, or showcase the most desirable venues, but customers won’t engage until you offer a fun and straightforward process.
Above and beyond the above, you may want to consider the following features in your user app:
A user should have a profile which saves their order history and preferences. The tricky thing is which information to use and how. What makes the Starbucks app so successful is that it tracks every order and provides personalised rewards on birthdays or other special occasions.
Social Media Integration
Customers should be able to login via social networks or invite friends to share the booking. The possibilities for an app linked to social media are practically endless. For instance, in 2013 OpenTable enabled a feature whereby users could create a reservation on Facebook from the restaurant’s page and introduced a Messenger bot in 2017.
Search by Geolocation
If we’re not talking about a branded application, users discover places to visit by searching for them. You need to make this search on your app as highly functional as possible. There should be filters for dietary options, schedules, and prices. The geolocation functionality should be exemplary since most diners look for restaurants within walking distance.
Every featured restaurant should have its own section with a short description and the menu. Ratings and reviews will help users get an idea of what to expect.
The ability to add various menus, including changeable options and ingredient replacements is crucial. In Tayble, we opted for machine learning implementation instead of manual entries and built a self-learning menu mapping system. Flexibility is what customers appreciate nowadays and your app should update information as quickly and as seamlessly as possible.
Technological innovations and interactive elements also work well in digital menu representations. AR menus are becoming a trend, so too are light-hearted interactions such as this Smoothie Land animation, where adding ingredients looks and feels like playing a fruit-themed game.
Push notifications are a useful tool to promote certain deals or updates. The main consideration here is knowing the right time to send them. For example, it’s nice to be informed about a dinner offer in the morning.
Another useful tie-in here is geolocation: it’s entirely possible to send notifications to those users who pass near the place you want them to visit. Sometimes, brands even use this feature to entice customers away from other brands – Burger King cleverly sent promotional offers to users within 180 meters of a McDonald’s location.
Mobile payments via the app itself are not that common right now, but may dominate the market soon. What your app needs, in any case, is to provide a straightforward checkout and a wide choice of payment methods. The most popular ones are Stripe, ApplePay, Samsung Pay, and WePay.
Nothing makes people more interested and engaged than the ability to collect points and exchange them for in-house benefits. Free meals are a powerful tool when it comes to motivating customers to install and use your application. Partnering with restaurants, you can provide sneak previews of their new items or create other attractions that will connect customers with your service.
Offering customers venue highlights is advisable. Picking restaurants by their theme or design, telling users about exceptional dishes, or making lists of top options for a given occasion – like a bunch of food apps did when Women’s Day featured female-owned restaurants – can boost interest in your service.
Don’t get too attached to pre-existing schemes, though. You can set whichever features you want as long as you do it according to actual user stories – actions that every type of user will perform
When you have the concept and you’re ready to create a restaurant app, write down all user stories which are pertinent. To clarify which functions you need, you can conduct interviews with target users. Here’s a nice example of how researching target users and dividing them into groups according to their main goals works.
During the development process, engage end users to test every function. Doing so means you will stay in touch with what your users need and will know what values they expect to receive from the app.
The panel for restaurant administrators should include:
- A profile section with functions to edit information about the venue, manage the menu, and reply to reviews
- An order management section with real-time tracking
- A system which collates and displays sales reports
It’s important for the venues to have access to their own data so they can add new items or delete unavailable ones, and create promotional campaigns so users will have relevant information right on time.
While working on Tayble, we started from a one-venue prototype where all the data was entered manually by developers – this couldn't work well with many restaurants. But with the addition of a functional admin panel, restaurant administrators could manage their information.
Since you want people to order food via your app, you will need to take care of payments. The process should be straightforward and secure for both customers and restaurants.
OpenTable pioneered in-app payments in 2014 and gradually added new functions like check splitting. In 2016, they introduced a virtual tab allowing users to pay without even touching a phone. During the booking process, users agree to pay via this tab and then the system handles everything for them. To make this possible, the app should be integrated with every POS system installed in the featured restaurants.
One of the major challenges we faced with Tayble was POS integration. Owing to cooperation with Doshii, a service which combines different POS systems in a single API, we were able to integrate eight systems at once. We also came up with a solution to build a modular microservice POS with a unified API. This allowed for the smooth operation of any type of POS system. To be able to include smaller venues without POS devices, we created our own.
How Much Does It Cost to Create a Restaurant App?
The time and money needed for mobile app development vary from one case to another. If you have limitations, you should prioritise the features you want to include and find an experienced team of restaurant mobile app developers who will help you deliver the product you have in mind. The most important thing here is testing your app and collecting feedback at every stage of development.
The Tayble app took us almost a year to develop. This was an ongoing project with a big budget. We built iOS and Android apps, provided a backend solution, and created a custom POS system. To try out your idea, it’s recommended that you make an MVP first. This is an app with the minimal functionality needed to launch and put it to the market test. An MVP can take up to several months and generally costs between $15,000 and $75,000.
Use Your Competitor’s Flaws to Your Benefit
It may seem impossible to become noticeable among so many competitors with solid experience. A former OpenTable CEO even said that he didn’t see any business goal bigger than winning over top restaurants. If you dig into reviews a bit, you’ll see that there are lots of complaints about any existing table booking system for restaurants. Some are claimed to operate too slowly, others are accused of giving out points that can’t be redeemed.
Despite these negative reviews, the concept of booking a meal in just a few clicks continues to attract people which is why these apps are experiencing growth. It also means that developing similar apps is still an excellent idea.
If you want to design an online restaurant table booking system, and you have an idea that will stand out of the crowd, we say, go for it!
03 May 2019