What are Shopify Apps?
Shopify Apps allow Shopify merchants to add more functionality to their Shopify online shop. There are thousands of apps, each one providing features to different parts of a web shop. This includes design elements for the front-end side or automation tasks and integrations with other software on the back-end side.
We have extensive experience in developing Shopify apps – both through our own apps in the Shopify App Store and through projects with our customers. In this blog post, we will share our vast experiences and deal with what it means to develop a Shopify app. We also want to make a conscise effort to include the costs and how the process will look when you start an app development journey.
App VS Plugin
For other shop systems, the term “plugin” is more common than the term “app”. Shopify apps don't just differ from plugins in their names. Unlike plugins, Shopify apps are not permanently installed in a single web shop. Instead, the app serves as an external cloud service that communicates with Shopify via an application programming interface (API).
This sounds very similar to a plugin at first, but has a significant impact on the basic functionality of an app in practice. In contrast to a plugin, an app is hosted by the app provider and the same (cloud) server usually serves all users of the app. One benefit of this approach is that troubles because of CMS updates usually can't come up.
Shopify Apps can only be offered through the Shopify App Store, there are no alternative distribution options. A review by Shopify is required for admission to the App Store. During the review, the app is tested from the user's point of view. The only exception to this rule are custom apps, which only get access to a single Shopify store. But wait, we are getting ahead of ourselves, there will be more on that below.
Responsibility as an app provider
An app must be constantly maintained by the app provider. This means that they will need to react to the regular updates of the Shopify platform with their own app updates. In addition, the app provider must ensure that its app can cope with very high peak loading periods in its users' shops.
If an app provider shuts down operations or fails to implement changes, the app suddenly becomes unavailable to all customers. There is no alternatives for this scenario, such as continuing to use an old version, as it is often the case with plugins.
App providers process their customers' data and also have very security-critical information, such as tokens, with which a shop can be remotely controlled to a certain extent. Since app providers usually store the tokens of all their customers centrally, appropriate security measures and ongoing updates are essential in this regard.
The fact that the development of a Shopify app is never really finished and that constant work and maintenance is required forces app providers to choose monthly subscriptions instead of individual purchases as a form of distribution. This is the only way they can – going on the premise that there is a correspondingly large customer base – finance the ongoing expenses of the app
Custom App VS Public App
Shopify provides two modes of operation for creating an app: Custom Apps and Public Apps. Only public apps can be offered in the Shopify App Store.
Custom apps are designed to work with a single Shopify online store. Typically, these are custom features created by an agency or a Shopify freelancer. Often there are individual interfaces to ERP (Enterprise Resource Planning) systems or other data points that do not provide a Shopify app for the app store. Individual development projects such as a complex bundle builder or a detailed dashboard for customers are also common examples of a custom app.
Technically, custom apps work in a similar way to public apps. They can optionally authenticate to the web shop and the Shopify platform using a fairly complex oAuth process and save and process a lot of complex data.
But Custom Apps can also bypass the oAuth process by working with a one-time generated token. This allows to reduce the work for implementing an authentication process by a lot.
Since custom apps only work for one shop, they can not be offered in the Shopify App Store .
Note: Until January 2022, in addition to “Custom Apps”, there were also a third app type: “Private Apps”. Private Apps were able to implement authentication without oAuth. Shopify no longer allows the development of new private apps since February 2022, but custom apps can now also operate without oAuth.
Public apps work in the same way as custom apps, but may have access to any number of Shopify online shops. This leads to development efforts that are significantly higher for public apps than for custom apps.
Public apps may have to provide technical support to thousands of Shopify merchants around the clock, which places much higher demands on scalability, accuracy and security. In comparison, custom apps with just one retailer only have to meet a fraction of these requirements.
However, public apps are the only app type that can be offered in the Shopify App Store. Before submission, they must go through a Shopify review process and are tested by Shopify from a user perspective.
Shopify Apps development process
In most cases, developing an app for Shopify is much more complex than developing a plugin for other shop systems.
That's because Shopify Apps are cloud-based SaaS applications that require regular maintenance and are available 24/7 to thousands of merchants.
The authentication process for Shopify and the integration of databases for various purposes, such as storing security-critical data, are also extremely rare in this form for plugins for other shop systems.
The development processes also differ significantly for a custom app and for a private app.
Let's delve into what we do here at Especial when it comes to developing apps, shall we? Of course, we will also put highlight the additional costs for public apps.
Step 1: Planning & UX Design
From experience we have learnt that both custom apps and public apps require a corresponding planning phase. This is the part where requirements are recorded and converted into a corresponding solution. This is also the part where the UX design usually takes place. During this phase, our designers use wireframes to outline the future user interface and the processes within the app.
Additional effort for public apps: Public apps generate significantly more effort during planning. In addition to the functional requirements, public apps also have to consider issues related to the multi-user system. This includes, for example, login (start screen), registration and payment processing.
The support of different themes and the interactions with other apps must also be taken into account, since public apps can be installed by any Shopify merchant.
Therefore, in contrast to the custom app, the future application environment is not clearly defined.
Step 2: Visual Design
In the visual design process step, the wireframes from the planning are translated into complete design files and prototypes for desktop, tablet and smartphone.
Additional effort for public apps: Since public apps are listed in the App Store, additional assets such as an app icon and advertising graphics are required. Also, an app needs stronger branding if it is going to stand out in the App Store. In the design process, more emphasis must be placed on a uniform and aesthetic design. This is the opposite of custom apps, as these usually get by with a very functional design without any branding.
Step 3: Coding
After the planning and design phases have been completed, the coding of the Shopify app can begin. The amount of effort pumped in here depends very much on the individual app and its range of functions. However, certain functionalities such as registration and authentication, which are always necessary for Shopify apps, always arise and depend on the degree of complexity and the catalog of requirements of the app.
As a result, the portion of the effort for very simple apps is often mainly in the mandatory technology for Shopify apps. For complex apps, on the other hand, the core functionality represents the largest part of the work.
Additional effort for public apps: There is a lot of additional effort in programming for public apps. For example, core functions must be structured in such a way that they work with as many Shopify shops as possible. These include the various themes and compatibility with other apps.
The software architecture also has to be thought of differently for public apps: data storage and complex, automated registration, payment and authentication procedures must also be implemented for a larger user base. In the case of a custom app, these can be very simple in comparison, since they only have to work for one user/store. Additionally, custom apps can opt in for a token based authentication which is much simpler to implement.
The embedding of different payment models is also reserved for public apps and can require a relatively large amount of work.
Step 4: Testing & QA (Quality Assurance)
Testing & QA mostly takes place during coding. What is really important to us is to shine a spotlight on the differences between a custom and a public app in a separate section for testing & QA.
In Testing & QA, automated and manual tests of the app are carried out to uncover any problems before they occur in live operation. Usually, test scenarios are created for the most important functions of an app and then the functionality is checked by QA engineers and automated tests for different application scenarios.
Testing & QA are a very broad field within software development. It is possible to invest huge amounts of resources into testing even the smallest apps. It is therefore important to find the right balance in the project – this is often referred to as "test coverage", which is given as a percentage.
Additional effort for public apps: Apps for the Shopify App Store have to be tested much more than custom apps. Not do significantly more test scenarios due to different configurations of the different Shopify stores exist. There are also significantly more interactions with different themes and apps that need to be considered.
In addition, with an app published in the Shopify App Store, you can simply afford fewer mistakes because there is no direct, two-way communication channel with users. Looking across all shops, an app may have to handle very high peak loads of tens of thousands to millions of simultaneous shop visitors. This requires a correspondingly sophisticated infrastructure.
All this leads to significantly longer and more intensive tests & QA processes.
Step 5: Shopify Listing & Review Process (Public Apps Only)
After work is completed on the first version of the app, in the case of a custom app, it can be installed directly in a single Shopify store.
In the case of Public Apps to be offered on the Shopify App Marketplace, the process is different:
Listing: First, a listing with images, screenshots and advertising texts must be created for the App Store – maybe even in different languages. It is also wise to create a manual and a support center for future users. App providers also often offer promotional videos of their Shopify app.
Review: If the listing is ready for use, the public app must be sent over to Shopify for a review. A Shopify employee tests the app from the perspective of a user. This means that the reviewer at Shopify will not check the code and security systems, but will only evaluate the app like a regular app user would do.
Feature requests: This means that app reviewers often have suggestions for improvements to the app and insist on implementing these suggestions before the app is released on the App Store.
This leads to a change requests and new designs that have to be created. The coding and testing process has to be run again, to account for the new features.
In our experience, the app reviewers' feature requests can often be quite extensive. For example, we have already been asked to integrate a complete analytics & reporting component including CSV export of data into the app, although we never planned this feature.
Step 6: Support & Maintenance
Once the app is in operation, the permanent maintenance and support phase begins. In the case of custom apps, it's mostly just code changes as Shopify makes changes to their platform and APIs. This happens very often, and Shopify typically gives developers 12 months to implement new requirements.
Depending on the technical structure of the app, these technical changes to the Shopify app can be completed within a few hours. It may also take several days or even weeks of development effort, it really just depends.
Additional effort for public apps: In the case of public apps, technical updates have to be made, which are often much more complex to implement in the case of public apps. Public apps require constant support from the app provider because despite intensive testing, it is very common for an app to have problems or functional limitations in certain Shopify shops.
This is mostly due to the individual setup of a Shopify merchant. For example, they may have countless other apps installed that have a negative impact, for example by overwriting certain app functions. Or they use a very exotic theme for which the app has to be adapted accordingly.
However, there are also regular support requests from users who only suspect a malfunction of the app, but in practice other factors such as incorrect operation or incorrect shop settings cause the problem. In this case, there is still support effort to clarify the problem.
As you can see, in addition to the core functionality, the cost of an app depends primarily on whether it is a custom app for a Shopify user or a public app for the App Store.
To give you a rough idea of the cost difference between public and custom app, we have prepared an example here.
The app in this example has a relatively simple core function. For example, displaying a dynamic pop-up in the app user's shop.
In total, our example takes about 10 days of work for a custom app, while the public app means about 6 weeks of work for the same core functionality. At an hourly rate of €100, this results in costs of about €8,000 for the custom app and about €24,000 for the public app .
In addition, the support and maintenance for the custom app on an annual basis is 12 days, significantly less than 60 days for the public app. The support & maintenance values are based on our own experience of apps with several hundred users in the Shopify App Store. Many hours are spent on support work, which is usually not taken on by developers but by support staff at a significantly lower hourly rate.
Developing a Shopify app is not a simple undertaking. You should always be aware that you are developing SaaS software which, in the case of Shopify, must also be able to scale very well. This means that the development process should be done very professionally to get meaningful results.
The decision as to whether you need a custom app or a public app is based on the question of whether the app should be available to all Shopify users or just a single one. The costs also result from this decision.
- Plan with a beta period to test and improve the app in live conditions. In the case of Shopify Apps, you can make your listing “invisible”. This means that the app can only be installed by people who receive the link from you.
- It is often a good approach to first test a new concept as a custom app and then convert it to a public app if successful. All in all, this results in a slightly higher effort than if you develop a public app directly, but you can validate your app idea first
- Don't rush the planning and design phase. Omitting or greatly shortening certain process steps may initially create a subjectively good feeling, since subjectively progress is made quickly. In fact, you're building up technical debt that will cost you significantly more time and money to resolve later.
- The competition on the Shopify App Store is now very tough. Also think about any marketing opportunities and engage in App Store SEO to increase their visibility. Your app should also have clear USPs if you want to compete with big apps.
Found this helpful? Share this post with your colleagues and friends
Daniel KolbProduct Development @ Especial
Would you like to know more?
Let us help you!