20 votes

Start with a website, not a mobile app

45 comments

  1. [14]
    kavi Link
    A not-so-quick TL;DR. This is a very brief TL;DR. The article goes into a lot more detail, taking time to explain their arguments for starting with a web presence over a native one. Below is a...

    A not-so-quick TL;DR.

    Back in 2012, everyone was building apps. There was a "mobile fever" of sorts, as the world was moving towards mobile only software. Now the obsession has calmed down.

    People spend most of their time on mobile apps rather than website. Apps account for up to 90% of time spent on a phone and 77% of the time spent on a tablet.

    However, time spent on the web is more evenly distributed across providers and publishers. People visit new websites from search engines, and explore without needing to install an app.

    This means an unknown startup gets more reach via a web presence vs a native presence.

    This is a very brief TL;DR. The article goes into a lot more detail, taking time to explain their arguments for starting with a web presence over a native one. Below is a very, very brief showcase of the arguments.


    Arguments for building a website instead of a mobile app

    • It's cheaper to deploy.
    • Deployment is instant, compared to waiting for a review for each update.
    • Easier to launch.
    • Easier to distribute and expand.
    • Acquisition cost is lower.
    • Works on all devices.
    • Adaptable.
    • Easy to internationalize (automatic translation.)
    • Easier to profit

    Arguments for building an app over a website

    • If it requires location, it needs to be baked into the OS to get access to sensors and location data (e.g Uber.)
    • Tightly integrated with native components.
    • Microtransactions.
    15 votes
    1. [7]
      meghan Link Parent
      Unless you're interfacing with custom hardware you made, or you need your app to have fine grained control over all the bits that come in and out of the network stack, then you should make a...

      Unless you're interfacing with custom hardware you made, or you need your app to have fine grained control over all the bits that come in and out of the network stack, then you should make a website. All of the things you listed as "app over website" arguments can be done on the Web

      6 votes
      1. [5]
        kavi Link Parent
        You're not wrong, but frequent microtransactions (e.g buying food through Just Eat) are a lot more convenient in an app. Tight integration with native components allow for a more... fluid...

        You're not wrong, but frequent microtransactions (e.g buying food through Just Eat) are a lot more convenient in an app.

        Tight integration with native components allow for a more... fluid experience. An example is Apollo for iOS. It feels native and is just... nicer than a website that hasn't got a native UI. Here's a pretty good read on what I mean - however this time talking about a desktop OS rather than a mobile one. With Android, native interfaces also exist through Material design. An example is Revolution IRC. It's pretty gorgeous, fits in snugly with the Android UI and integrates well with notifications. It does some stuff a web based client like Mibbit can't - like staying connected when not on the browser. Something that is rather important.

        While location is pretty precise in a web browser, it might be irritating for an end user to constantly give access every time they need a taxi. It's just more convenient to use an app (most of the time.)

        6 votes
        1. [4]
          meghan Link Parent
          someone beat me to it this is probably possible with service workers, though directly interfacing with IRC may in fact invalidate the website argument here for this case very possible for...

          frequent microtransactions

          someone beat me to it

          like staying connected when not on the browser

          this is probably possible with service workers, though directly interfacing with IRC may in fact invalidate the website argument here for this case

          integrates well with notifications

          very possible for websites, but requires permission

          irritating for an end user to constantly give access every time

          permissions on the web are the same as on an app. one time accept, can be revoked at any time

          2 votes
          1. [3]
            kavi Link Parent
            Didn't know permissions stick, I tend to browse in incognito all the time so I guess the options don't stick.

            Didn't know permissions stick, I tend to browse in incognito all the time so I guess the options don't stick.

            3 votes
            1. [2]
              meghan Link Parent
              Haha same, but if you happen to add a site to your homescreen then it will remember as well 👍

              Haha same, but if you happen to add a site to your homescreen then it will remember as well 👍

              4 votes
      2. Octofox Link Parent
        I really wanted to go for a web app for my app but I really need to be able to record gps while the screen is off and websites simply can not do that.

        I really wanted to go for a web app for my app but I really need to be able to record gps while the screen is off and websites simply can not do that.

        1 vote
    2. [6]
      Jedi Link Parent
      Google Pay has a web API that works really well even for mobile. There are downsides to this however: You'll have to take care of verifying the user has paid for it if it's a permanent add-on....

      Arguments for building an app over a website

      • Microtransactions

      Google Pay has a web API that works really well even for mobile.

      There are downsides to this however:

      • You'll have to take care of verifying the user has paid for it if it's a permanent add-on.
      • You'll have to set up an account system.
        (An app does not need an account to work with transactions, and sync.)
      • Your users can't use Play Store credit.
      5 votes
      1. [3]
        kavi Link Parent
        Wow, I never knew about this. How does this work with Apple devices though (don't know if they support Google pay)? If it doesn't, that's just under half the potential purchasers shaved off.

        Wow, I never knew about this. How does this work with Apple devices though (don't know if they support Google pay)? If it doesn't, that's just under half the potential purchasers shaved off.

        2 votes
        1. [2]
          Jedi Link Parent
          It works the same, though it's less likely the user would have their payment methods saved to it.

          It works the same, though it's less likely the user would have their payment methods saved to it.

          1 vote
          1. kavi Link Parent
            Huh, TIL. I'm keeping the TL;DR as is because it's the authors views, not mine :) Thanks!!

            Huh, TIL. I'm keeping the TL;DR as is because it's the authors views, not mine :)

            Thanks!!

            1 vote
      2. [2]
        Octofox Link Parent
        There is also a upcoming standard for a payment api the depends on no payment provider in particular https://wiki.mozilla.org/WebAPI/WebPayment. Its essentially a much better credit card autofill.

        There is also a upcoming standard for a payment api the depends on no payment provider in particular https://wiki.mozilla.org/WebAPI/WebPayment. Its essentially a much better credit card autofill.

        2 votes
        1. Jedi Link Parent
          That looks really nice. It's got quite a bit of stable support on desktop too, but unfortunately only two mobile browsers support it at the moment. Thank you for introducing this to me.

          That looks really nice. It's got quite a bit of stable support on desktop too, but unfortunately only two mobile browsers support it at the moment.

          Thank you for introducing this to me.

          1 vote
  2. [16]
    Emerald_Knight Link
    They're forgetting an important bit of app functionality: push notifications. That's easily one of the strongest arguments for developing an app, both from a user convenience perspective and from...

    They're forgetting an important bit of app functionality: push notifications. That's easily one of the strongest arguments for developing an app, both from a user convenience perspective and from a customer engagement perspective. You can also more easily bake analytics into your app, making it more difficult to circumvent common analytics bypassing strategies e.g. using noscript or adblockers in the browser. You also lighten your server load by avoiding the need to serve HTML, CSS, JS, or images, instead having all of the interface perpetually stored on the user's device via the app.

    Granted, I don't want to install tons of apps. I don't want to have websites constantly nagging me to install their apps (looking at you, reddit). But they're a very big data mining tool and therefore a huge potential source of revenue, they can ease server loads, and they can more easily drive customer engagement. They're fantastic tools from a business perspective.

    9 votes
    1. [13]
      piedpiper Link Parent
      I thought push notifications were possible now on the web?

      I thought push notifications were possible now on the web?

      3 votes
      1. [12]
        Emerald_Knight (edited ) Link Parent
        There's a very big difference. If you close out of your browser on mobile, or even just out of the tab for the website, you won't be getting those notifications. The whole point of mobile push...

        There's a very big difference. If you close out of your browser on mobile, or even just out of the tab for the website, you won't be getting those notifications. The whole point of mobile push notifications is that you still receive them even when the app is closed out. You don't need to keep the app open to know that e.g. someone just sent you a message.


        Edit

        Apparently I'm partly wrong here. You actually don't need to keep the website open in the browser tab in order to receive push notifications. You do still need to have the browser open, however.

        4 votes
        1. [6]
          Jedi Link Parent
          PWAs can send notifications even if the "app" is not opened.

          PWAs can send notifications even if the "app" is not opened.

          10 votes
          1. [5]
            Emerald_Knight Link Parent
            Ah, neat! So I'm only half right there. Still requires you to have the browser open to actually receive them, but doesn't require having the tab open. Thanks for bringing my attention to that, it...

            Ah, neat! So I'm only half right there. Still requires you to have the browser open to actually receive them, but doesn't require having the tab open. Thanks for bringing my attention to that, it seems things have changed quite a bit since I last looked into this subject :)

            2 votes
            1. [4]
              bee Link Parent
              I'm not sure what you really mean by: Most PWAs function as "apps" that are standalone from the browser, you can actually set this with the display property in the site's manifest.json. More Info

              I'm not sure what you really mean by:

              Still requires you to have the browser open to actually receive them, but doesn't require having the tab open.

              Most PWAs function as "apps" that are standalone from the browser, you can actually set this with the display property in the site's manifest.json.

              More Info

              3 votes
              1. [3]
                Emerald_Knight Link Parent
                Wait, wtf, installing apps on your phone's home screen? When the hell did this become a thing? Jesus Christ I'm getting old, and I'm not even in my 30s yet.

                Wait, wtf, installing apps on your phone's home screen? When the hell did this become a thing?

                Jesus Christ I'm getting old, and I'm not even in my 30s yet.

                2 votes
                1. bee Link Parent
                  Since iOS 11.3 (I think) and earlier on Android.

                  Since iOS 11.3 (I think) and earlier on Android.

                  2 votes
                2. JustABanana Link Parent
                  Even tildes supports this feature. I'm using it right now with firefox on android, it's pretty cool. Duolingo and twitter also support it. Check out pwa.rocks for more apps that use it

                  Even tildes supports this feature. I'm using it right now with firefox on android, it's pretty cool. Duolingo and twitter also support it. Check out pwa.rocks for more apps that use it

        2. [5]
          Avizini Link Parent
          IIRC browsers sometimes ask me if I want to receive notification from some 'xyz website' & if you chose yes then you'll receive a notification everytime the website owner sends one.

          IIRC browsers sometimes ask me if I want to receive notification from some 'xyz website' & if you chose yes then you'll receive a notification everytime the website owner sends one.

          3 votes
          1. [4]
            Emerald_Knight Link Parent
            Yeah, it seems as though you can create a service worker to allow for handling push notifications even if the website isn't open in a tab. The browser still needs to be open, though.

            Yeah, it seems as though you can create a service worker to allow for handling push notifications even if the website isn't open in a tab. The browser still needs to be open, though.

            2 votes
            1. [3]
              Avizini Link Parent
              I used to get them even when I was not using it, I think that was a background process and most browsers would keep it running if notifications are enabled.

              The browser still needs to be open

              I used to get them even when I was not using it, I think that was a background process and most browsers would keep it running if notifications are enabled.

              4 votes
              1. [2]
                Emerald_Knight Link Parent
                I never even realized that you could install websites on your phone. Web development has gotten crazy. I give up trying to keep up with everything.

                I never even realized that you could install websites on your phone. Web development has gotten crazy. I give up trying to keep up with everything.

                2 votes
                1. Avizini Link Parent
                  not exactly installing but yes you can add a shortcut to that on home screen, also gnome does this with their default browser (epiphany ..? probably). you can add a web page to app drawer and it...

                  not exactly installing but yes you can add a shortcut to that on home screen, also gnome does this with their default browser (epiphany ..? probably). you can add a web page to app drawer and it would launch like a web app.

                  and many still install an electron app (!)

                  2 votes
    2. [2]
      agentseven Link Parent
      Think of all the advantages you want, an "app" that's delivered through the browser doesn't rely on users to update it. In fact, it never requires updating. It doesn't require being installed. I...

      Think of all the advantages you want, an "app" that's delivered through the browser doesn't rely on users to update it. In fact, it never requires updating. It doesn't require being installed. I despise "apps." "Apps" are a moneymaking construct, little more. The only legitimate reason to develop an "app" is because you get functionality beyond what HTML has traditionally offered. So OpenGL games and shit, yeah, you weren't able previously to deliver that through HTML, fine, make an app. Even that is changing. The case for "apps" gets thinner and thinner every year.

      2 votes
      1. Emerald_Knight Link Parent
        Yeah, most benefits of apps are definitely on the business end. There are still benefits for users, e.g. guaranteed offline functionality (if the app doesn't rely on a web server), the...

        Yeah, most benefits of apps are definitely on the business end. There are still benefits for users, e.g. guaranteed offline functionality (if the app doesn't rely on a web server), the aforementioned push notifications, potentially faster load times, and a number of convenience features like biometric authentication, but really whether or not you benefit from those advantages is going to depend on the individual (especially if you're concerned about privacy).

        99% of the time I prefer using my browser, but I do have apps I prefer over using a web interface. For example, I have the Discord app because I like having those push notifications available to me and I don't want to have to constantly go into my password manager to snag my password to log in any time I visit the web version. It's more convenient for me. The same goes for Slack because it makes communicating with my team at work way easier when I'm not sitting down with my laptop in front of me.

        Different tools for different needs, and apps have tools available that browsers don't. Love them or despise them, apps serve an important role by filling in that gap.

        3 votes
  3. [5]
    kavi Link
    Here are some of my thoughts. These are separate from the article. A TL;DR of the article is available here. Overall, I agree with almost wholly with this article. There are, however, a few...

    Here are some of my thoughts. These are separate from the article. A TL;DR of the article is available here.


    Overall, I agree with almost wholly with this article. There are, however, a few benefits to apps not mentioned in the article, such as better potential performance.

    I think that a lot of apps create a lot of bloat, and just end up making a cumbersome experience. For example, say a user visits a website to get a small bit of information. The website redirects them to the Play Store or the App Store (got apps, but not websites), preventing the user from accessing the website. The user is more likely to go onto another site to get said information, rather than using the app (for solely convenience.) This alienates mobile users, reducing revenue from ads/whatever.

    A middle ground is having both. This, however, suffers from drastically increased development costs, as they have to maintain both at once. It might also alienate users because having a fat banner that says "This loads 50% faster in our app! Please install for a 'superior' experience." probably alienates a fair few people too. I think the way to approach it would be to not push the app too much, while having it there as an option (like Wikipedia.) Yet this suffers from increased development costs with little payoff. If there was a way to embed a mobile-friendly site into an app, while allowing tight integration (for notifications and microtransactions), then it could be a lot easier.

    3 votes
    1. [4]
      loto Link Parent
      I think that should be possible - I know android and iOS both have web rendering engines built-in (android has Chromium (I think this can be substituted with gecko/firefox?) while iOS has...

      I think that should be possible - I know android and iOS both have web rendering engines built-in (android has Chromium (I think this can be substituted with gecko/firefox?) while iOS has Safari/webkit) which are available to apps as well, which could work for your suggestion

      2 votes
      1. [3]
        kavi Link Parent
        AFAIK neither allow for background app refresh or notifications. I'll try looking into those though, thanks :)

        AFAIK neither allow for background app refresh or notifications. I'll try looking into those though, thanks :)

        1 vote
        1. [2]
          Diff Link Parent
          I'm pretty sure you can register some service that can chill in the background. For a good little while Facebook was adamant about installing one in my browser. Maybe this is a direction to look into?

          I'm pretty sure you can register some service that can chill in the background. For a good little while Facebook was adamant about installing one in my browser. Maybe this is a direction to look into?

          1 vote
  4. [3]
    Akir Link
    I am of the opinion that for mobile users, SPAs are probably the best way to do things. That being said, most complex SPAs are bloated messes that perform badly. Even for the better examples,...

    I am of the opinion that for mobile users, SPAs are probably the best way to do things. That being said, most complex SPAs are bloated messes that perform badly.

    Even for the better examples, there is a "last mile" problem with mobile phone operating systems that make SPAs second citizens. For example, there is no obvious way to "install" a web app, they usually seem to have lower priority levels than native apps, and of course there is no way to control the native hardware except in specific limited ways (you can't use NFC with a web app, for example).

    3 votes
    1. [2]
      kavi Link Parent
      SPA?

      SPA?

      2 votes
      1. Emerald_Knight Link Parent
        Single Page Application. Basically a bunch of bloated JavaScript which is basically the entirety of the website functionality loaded all at once and you do stuff like load data using Ajax requests...

        Single Page Application. Basically a bunch of bloated JavaScript which is basically the entirety of the website functionality loaded all at once and you do stuff like load data using Ajax requests to update what gets displayed.

        2 votes
  5. [7]
    rickdg Link
    Start where the money is, which is iOS, which doesn't support new web technologies, which means you're forced to make an app. Basically, if you want to push for the open web, talk to Apple and the...

    Start where the money is, which is iOS, which doesn't support new web technologies, which means you're forced to make an app. Basically, if you want to push for the open web, talk to Apple and the people who buy their stuff, not to startups trying to survive.

    2 votes
    1. [6]
      bee Link Parent
      iOS supports PWAs as of iOS 11

      iOS supports PWAs as of iOS 11

      3 votes
      1. [5]
        rickdg Link Parent
        What do they actually support? Basic service workers, right? No push notifications and no reliable local storage.

        What do they actually support? Basic service workers, right? No push notifications and no reliable local storage.

        1 vote
        1. [4]
          bee (edited ) Link Parent
          Push notifications work, I'm not sure about local storage though. Edit: See below

          Push notifications work, I'm not sure about local storage though.

          Edit: See below

          2 votes
          1. [3]
            rickdg Link Parent
            Push notifications are not available for websites in iOS.

            Push notifications are not available for websites in iOS.

            2 votes
            1. [2]
              bee Link Parent
              Thanks for the clarification, for some reason I had thought this was possible.

              Thanks for the clarification, for some reason I had thought this was possible.

              2 votes
              1. rickdg Link Parent
                Yeah, you have to search specifically for iOS Safari aka the new IE.

                Yeah, you have to search specifically for iOS Safari aka the new IE.