Basics of building an on-demand service app

The chances are, you have at least a few on-demand apps on your phone right now, which should be an indicator that the demand is not only in the name of such apps. More and more businesses start offering on-demand services and disrupt the selected industry sector. We’ve seen this with Airbnb vs. hotels, Uber vs. taxis etc.


What’s an on-demand app

On-demand service application is a middle-man between the end user (i.e. a person looking for a ride using Uber or Lyft) and the service provider (a.k.a. the driver in the Uber’s case). The services provided are not limited to ordering a taxi or food. Renting a flat using Airbnb, renting an electric scooter using Bolt, seeing a doctor from the comfort of your home using Doctor on Demand — all of that and many more are the examples of an on-demand service.

One of the greatest benefits and advantages of an on-demand service is its versatility. Most of the applications are developed as mobile-first, hence boosting the user experience in comparison to its industry competitors. You do a few taps, you pay using your connected card, or even better via solutions like Google Pay or Apple Pay and voilà, the service you need is either being delivered the same minute or you’re given instant access to a physical item of some sort, like an on-demand rental car, for example.

And that’s the beauty of an on-demand service.

Popular on-demand apps examples

Now, let’s have a quick glance at the current state of an on-demand apps market.

As I’ve already mentioned, probably the majority of industries are affected by it, and although many old-school companies might not be very fond of their young agile competitors, it’s worth noting that the youth keeps disrupting and in some cases even conquering their respective industries. So, here’s a few examples:

  1. Taxi-on-demand apps examples
    1. Uber — operates in over 900 metropolitan areas worldwide, revenue as of 2019: 14.15 billion USD
    2. Lyft — operates in 644 cities in the US and 12 in Canada, revenue as of 2019: 3.6 billion USD
    3. FreeNow — operates in over 100 cities in Europe, revenue as of 2019: 2.6 billion USD
    4. Bolt — operates in over 150 cities in 35 countries, revenue as of 2019: 150 million USD


  • Driving-on-demand apps examples
    1. Sixt — operates in more than 2000 locations worldwide in over 105 countries, revenue as of 2019: 3.31 billion USD
    2. ShareNow — merged of car2go and DriverNow, operates in 18 cities across the Europe, revenue as of 2018: 69.25 million USD
    3. Zipcar — operates in multiple cities in 7 countries all over the world, estimated revenue as of 2019: 278.8 million USD
  • Food-on-demand apps examples
    1. Uber Eats — operates in over 6000 cities in 45 countries, revenue as of 2019: 2.51 billion USD
    2. DoorDash — operates in more than 4000 cities across the US, Canada and Australia, revenue as of 2019: 900 million USD
    3. Glovo — operates in more than 20 countries globally, revenue as of 2019: 216 million USD
    4. Grubhub — operates in more than 3200 cities across the US, revenue as of 2019: 1.31 billion USD
  • Video-on-demand apps examples
    1. Netflix — operates worldwide except China, Syria, North Korea and Crimea, revenue as of 2019: 20.2 billion USD
    2. HBO Go — operates nearly in every country worldwide, revenue as of 2019: 5.81 billion USD
    3. Amazon Prime Video — operates worldwide expect Mainland China, Cuba, Iran, North Korea and Syria, revenue in the US alone as of 2019: 2.7 billion USD 
    4. Disney+ — operates in various countries worldwide, considering it launched in November 2019, the revenue won’t show the full potential of the platform, but it’s worth mentioning the service had 73.7 million active subscribers as of September 30, 2020.
    5. Hulu — operates only in the US and Japan, the revenue as of 2017: 2.4 billion USD
  • Music-on-demand apps
    1. Spotify — operates in most of Europe, the Americas, Oceania and parts of Asia and Africa, revenue as of 2019: 6.76 billion USD
    2. YouTube Music — operates in 100 countries worldwide, considering its deep integration with YouTube, it’s hard to provide an accurate revenue generated by the YouTube Music alone.
    3. Apple Music — operates in over 200 countries, when it comes to the revenue, the situation is the same as with YouTube.
    4. Tidal — operates in 56 countries, revenue as of 2018: 148 million USD
  • Healthcare-on-demand apps examples
    1. Doctor on Demand — available only to the US residents, estimated revenue as of 2019: 194.9 million USD
    2. HelloMD — operates in the US only, revenue as of 2018: 1.41 million USD
    3. Epocrates — operates in a few countries worldwide, revenue estimated revenue: 111 million USD
  • Gaming-on-demand apps examples
    1. Google Stadia — operates in 14 countries, accurate revenue it not yet available due to its release late 2019.
    2. XBOX Game Pass — operates in 41 countries worldwide, estimated revenue as of 2019: 1.8 billion USD
    3. GeForce Now — operates in North America and Europe, accurate revenue information is not available.
  •  

    How to build a successful on-demand app

    As you can see, many of the on-demand apps are doing quite alright. Motivated by their success, you might want to develop one yourself. Or, maybe you had an idea to further expand your business and see a great potential in offering on-demand services. No matter the case, I’d like to present you a step-by-step guide to developing such an application in hope that you’ll find it useful. Let’s begin.


    Step 1: Research

    Kicking-off your development process with research is the wisest approach. Let’s assume you already know what kind of services you’ll be offering. Time to find out a bit more about your potential customers and plan the general direction for the entire development process.

    It’s not an easy step as it requires time and knowledge about user personas definition, user scenarios and flows, Business Model Canvas, Value Proposition Canvas and such. Even though you might find it a waste of time, our experience shows that those clients who decide to opt-in for our product workshops (which in essence is a combination of the tools I’ve mentioned before) had overall better understanding of the business and the steps required to successfully complete the project.

    Another important part of the research is called user stories, which is basically a bit more in-depth description of all the features that you plan to have in your application. It’s not a must-have part, as you can simply go with a list of features, but not skipping this step might help you in the future, when estimating time and cost of development, for instance.


     

    Step 2: MVP

    Once the research is done, it’s time to prepare for the development. Obviously, you don’t want to develop a full-scaled enterprise application from the get-go. You want to start developing incrementally, building an MVP should be enough to deliver a working product to the market without spending too much time and money.

     

    Step 2.1: Pick features

    To start the development of the MVP — you need to decide what is the core feature of your on-demand service app and then add secondary features that will be complementary to the core and deliver your first users a complete experience. To do so, we use prioritization based on a few factors:

    • Complexity of the feature
    • Its relevance to the core feature
    • Whether it’s best to implement it in the begging, to not complicate the next stages of development, or not
    • How expensive is the development of said feature

    What’s important to remember, on-demand platforms require a set of applications: one for the end-user and the other for the service provider, plus an admin panel for you and your employees.

     

    Step 2.1.1: Customer app

    If I had to pick one, the customer app, in my opinion, would be a crucial piece for the success of the whole endeavour. Everything that happens in the backstage can be not so beautiful design wise, a bit clunky during the MVP stage, but the customer app has to shine.

    Starting from the UX/UI, following to the performance and crash-free behaviour, ending with a well-thought set of core functionalities.

    Amongst the most important features I’d like to mention:

    • Simple registration process — could be as simple a phone number-based one.
    • Service purchase — the purchase process should be easy and intuitive if you want to retain users.


    • Service cancellation — cancelling an order should be as easy as it was buying it. You can add a simple feedback field, so you can gather the reason why the users decide to cancel.
    • Payments — lack of digital payments might be about illogical as it could be. One of the reasons on-demand apps are such a hit is because it’s simple. Dealing with cash is painful.
    • Basic support — many things will go the wrong way once you launch your MVP. You need to be prepared to handle people looking for help with your application, if you want them to stay, that is.
    • Basic account setting — the user should be able to change their password, email or phone number.

    And maybe a few more app-specific features depending on what you’re building. I wrote an article about a year ago on how to build an Uber-like app, you can have a look there for a couple examples of app-specific functionalities.

     

    Step 2.1.2: Service provider app

    Now let’s talk about a service provider app, in Uber’s case that would be a driver’s app, you need to think first about how the service provider will be using an application. When we were building a set of application for bussr — a bus hailing app from Indonesia, we were designing the application with bussr drivers in mind, not going for some fancy-design ideas.

    As a driver, you don’t want to spend a lot of time in your phone app, because you need to focus on the road ahead of you. In this case, the screens have to be minimal and present a very clear indication of what’s the driver’s objective in each particular situation.

    When they’re driving we show the navigation screen and the information about their route and upcoming stops. When they were selling and validating the tickets, the screen was showing only the relevant information and was specifically designed to be fail-proof. For example, if the driver validated the wrong person, a simple swipe could undo that action but, at the same time, the swipe should be long enough to avoid miss-swipes.

    When it comes to the features, let’s point out a few general ones:

    • A simple ID card-based registration process — useful if you want to be able to easily recruit service providers without going into too much bureaucracy, at least as the very first stage of the application process.
    • The schedule, in case it's going to be assigned to them by one of your employees or an option to accept the requested services, like with Uber, for instance.
    • Basic settings — allows service providers to change basic personal information, password, email, phone number etc.
    • Service delivery process — the app should allow service providers to be able to deliver their services, confirm the successful delivery or, in case of an unsuccessful one, process the cancellation of some sort.

    The rest will be pretty much defined by the specific example of what you’re trying to offer as an on-demand service business.

     

    Step 2.1.3: Admin app

    To connect everything, you’ll need an admin app. The one your employees will use to manage users, manage user providers, monitor the BI et cetera. The admin panel you’ll choose will depend on the technology stack, about which we’ll talk in a second. In the bussr’s case, everything was developed using JavaScript and therefore we used our own admin solution — AdminBro. In short, it’s an auto-generated admin panel for Node.js.


    Since the whole bussr backend was written in Node.js (many well-known apps use Node.js on their backend), it was a no-brainer to go with a highly customizable solution, that allowed to integrate with all the required external services, like Google Asset Tracking, for instance. bussr employees could define bus routes by simply using Google Maps integrated into the admin panel, therefore skipping the need to use altitude and longitude, making it less likely that an error will occur in the process.

    If your tech stack is not JavaScript, but PHP or Python, for instance, make sure you pick a reliable solution for your admin panel that will give you enough customization space as well as provide your developers with tools to develop additional modules on their own. Out-of-the-box solutions are easier and cheaper to use, but the chances that the features set they offer will fit 100% of your business are rather slim. And you don’t want to change the panel when your on-demand services app goes live.

     

    Step 2.2: Pick technology stack

    Now, let’s talk about the technology itself. When it comes to making a decision, there’s a lot of variables that might influence the eventual outcome.

    You could have a CTO that knows a specific technology and therefore it will be picked for your technology stack, you might need to use a specific technology to develop a specific feature, you might get advised by an external software development agency to use the technology of their expertise. There’s no particularly wrong choice if you have an experienced developer, although each and every technology has its pros and cons.

    Here at Software Brothers, we specialize in JavaScript for a few reasons: it’s an advanced technology that makes it possible to develop nearly every type of software, especially when it comes to on-demand apps; it’s a single language for both web and mobile, frontend and backend development, meaning a single developer can do it all.

    Of course, I’m oversimplifying a little, but if you have a team and your backend developer leaves and you need to do a quick fix, your frontend will be able to understand what’s there to be fixed within a much shorter time than it would take them to understand Ruby, for instance.

    bussr is based on JavaScript only, and we managed to develop a working MVP Android applications for both users and drivers within a month. It took only a few weeks  to deliver the iOS application — the amazing benefits of developing a React Native app instead of a native one.

    Most on-demand apps are not rocket science and therefore it doesn’t seem to use like it makes any sense to spend double the money to develop native. Chris, a colleague of mine, wrote about 5 popular apps that use React Native in one of his articles here.

     

    Step 2.3: Pick a development and design team

    Okay, the technology is decided on, time to start the development. You can follow a few routes:

    In-house development — this is a simple one, you recruit your own team of developers, project managers, testers, designers, and start the development team. This approach has a lot of pros, but it’s much more time-consuming and costly. If the recruited developer doesn’t turn out to be a good one, you can’t swap them as easily as, for example, when working with a nearshore development company.

    Freelance development — probably the cheapest option, but also the riskiest one. You don’t have much control over your development process and that’s not something you’d want. It could be useful if you’re very low on budget and want to develop at least something tangible to show to the investors before you can go hard on the development.


    Nearshore / Offshore development — last but not least, you can outsource your development cycle to an experienced team of developers. It has much less risk than the freelance option due to the fact that it’s a registered company that you’re dealing with, they have lots of people on board, they’re not the cheapest workforce and therefore it doesn’t make sense for them to, let’s say, scam you. After all, their reputation is on the line. Also, they have tons of expertise and tens if not hundreds of completed projects in their portfolio, and if one of the developers you’ll get doesn’t perform as expected, swapping it with another experienced developer is most likely a matter of days or weeks, not months.

    Which option to go for depends on you, your budget, your investors’ expectations  etc.


    Step 2.4: Deliver MVP

    Once everything is set and ready to go, you need to brace yourself for the upcoming 6-12 weeks that it will take to develop a functional MVP. Please make sure you’re certain about the set of features you’ve selected for the MVP stage, as changing them mid-cycle will only postpone the delivery and frustrate your team.

    Since you’re not going to be involved in the development itself, you should focus on sales and marketing in the upcoming weeks. You don’t to develop an app that will drown in the ocean of various applications, which will inevitably make your business flop.


    Step 3: Marketing and user acquisition

    Marketing. Although marketing itself deserved a separate article, I’m going to mention a few marketing strategies that are specifically useful for an on-demand app promotion.


    Vouchers

    If you have been a witness to launch campaigns on Uber, Uber Eats, Bolt ad the like, you know that the first few months, sometimes longer, most people use an on-demand app only on a voucher-basis. 50% discount code is a regular in your inbox. It’s a costly strategy and the companies usually pay full salary to their service providers, while earning on 50% from each order. This requires a lot of capital, but it works.

    After the promotional period ends, you’ll face a decrease in the number of order, as those who are not willing to pay the full price will stop using your services, but you also should have lots of users who were convinced by your services and due to using them for quite some time — will stay with you, forming your core user base.


    Situational awareness

    This one is also related to the vouchers to some extent, as you will most likely be giving out discount codes. The reasons will be slightly different, though. Situational awareness will be used to build your brand and make your brand voice recognizable on the market. Some campaigns will be targeted at the users, some at your service providers.

    For example, here’s an email DoorDash sent to their delivery personnel before the Valentine’s Day:


    Another example could be, once again, Uber. Here where I live, Wrocław, Poland, we don’t have Uber Copter nor it’s easy to rent a heli flight, but a few years ago Uber ran a time-limited promo that you could get a couple of minutes of heli flight. Only a few people managed to get the flight before the promo ended, but the scale of social media reach they got was through the roof.

    The opportunities are countless and if you come up with a creative idea, media outlets will be quick to pick up the news, they do need exciting material to operate after all.


    Step 4: Further development and growth

    Once you’ve successfully developed your MVP and acquired your first customers, it’s not the time to stop and celebrate with a bottle of Crystal somewhere in the Maldives, but it’s time to push forward, essentially repeating the cycle starting from Step 1.

    The way we usually do it with our clients, for example, is we organize an MVP stage retrospective meeting, during which we write down all the good and bad decisions that were made in the process, in order to be even more effective from now on. After the retro, we organize another product workshop, and start piling up ideas for further development. Then we prioritize and the cycle goes on.

    Abiding this approach, we make sure we stay agile while being focused on a concrete set of goals that we want to achieve using short incremental periods.


    Epilogue

    As you can see, building an on-demand services app is quite an endeavour, but if you structure it the right way, it becomes a simple process that you need to follow and not disrupt during each cycle.

    I sure hope that this guide is useful for everyone who’s willing to dedicate their time, effort and money to enhance whatever industry you pick with an on-demand application. Personally, I’m a huge fan of this kind of apps and will be happy to see more.

    If you need any help or would like to use our extensive experience with building scalable and user-friendly software, feel free to reach out to me at ross@softwarebrothers.co. We’ve built quite a few on-demand applications for various industries and markets, just a couple examples: 7araka, BetterTaxi, EasyTranslate or elGrocer

    Till the next one. Cheers!