Sometimes, you may wonder, what’s on the other side of the curtain? If you’re a developer contemplating snaps, you surely want to know the range of tools and options available in the developer account dashboard in the Snap Store. But some of the features may not necessarily be immediately visible or relevant until you’ve uploaded a snap. To that end, we wanted to give you an overview of the Snap Store, and show you the different capabilities you will have as a snap developer.
Create an account & register your first snap
The very first step is to create an account. Once you complete this step, you will find yourself in the main (dashboard) view of your account page.
After you log into your account, your next step will be to register a snap name. It needs to be unique, and ideally, it will match the name of the software you are publishing. There’s a limitation on what names you can use – some existing high-profile software names are protected, and may only be manually granted to individual developers by the Snap Store team with an adequate justification. Furthermore, someone may have speculatively pre-registered a name that you want to use. We have a robust name dispute process in place that can help quickly resolve these issues, if they arise.
When you register the snap, you can also decide its visibility status. You can make it public, or if you’re still not quite ready, you can keep it private until you’ve completed all the bits and pieces in the store, and you’re happy with the results.
If you already have one or more snaps registered, in the dashboard view, at the top, there will be a 30-day graph showing you the number of active devices for all your registered snaps – this also includes any snaps where other people have added you as a collaborator.
Once your snap name is registered, you can fill in all the other useful information you need to make your snap page distinct, informative and appealing. If you have already uploaded a snap, some of the fields may already be complete, as the Snap Store will use data contained inside your snapcraft.yaml file.
Here, the Snap Store includes its own interactive tour, which will guide you through the basic options and highlight their use and importance. For instance, the interactive tour will explain why you should have compelling images and rich description, build and release features, and more.
On the first tab (Listing details), you need to provide all the public-facing information for your snap. This includes the icon, any images and videos, banner, summary and description, the most appropriate categories (like development, gaming, productivity, etc) as well as licensing and contact information. Notably:
- High-quality images can help drive usage adoption. Similarly, a video demo and a banner image can help you promote your software, and make it more appealing to your users. Conversely, if your snap has no icon, nor any screenshots, it may not really be enticing to end users.
- You can use markdown syntax in the description. You can also add links to bug trackers, documentation, or any other resources related to the application development or its community.
- Licensing information can help your users decide when and how they can use your software.
- Contact information is essential for users to be able to provide feedback, as well as submit any bug reports or enhancements requests for your application(s).
These tips, plus several others, are outlined in our guide on how to make your snap store page pop. If you want your tools and applications to stand out, you should invest time in populating all the necessary fields, and provide the most compelling visual elements.
On the second tab, you will find the Snapcraft Build Service, which is available for free to snapcraft developers. It works by integrating your GitHub account with snapcraft.io, and then, you can trigger automatic and manual builds for any public repository that contains a valid snapcraft.yaml file.
The elegance of the build service is that it allows you to generate snaps for six architecture platforms, so if you only have limited hardware at home (say just amd64), you can build for targets like s390x, i386, armhf, and others. Furthermore, the build service will trigger rebuilds when it detects changes in the repositories, once a day. You can still manually build and upload your snaps, but this is a highly useful feature for people and organizations with a large number of projects and a busy build pipeline. Please note this is not meant to replace your existing CI/CD systems but rather complement them. The build service can also be used as an interim solution where the developer or a company have not yet deployed their own CI/CD tools.
On the releases tab, you will be able to govern the release of your snap – and make it available to your users. The Snap Store features a multi-dimensional release matrix, offering developers a great deal of flexibility in how they publish their applications.
Typically, if you’ve just created and uploaded the snap, you will most likely want to place it in the edge channel. This will tell your users that the software is new and requires testing, and that there might be bugs or instabilities. Once you’re confident your application is robust enough, you can promote it to less-risky channels, all the way up to the stable channel.
You also have the option to use different versions and revisions of your application in different channels and, based on your usage needs, you can also close channels (for instance, a special edge build used for limited purposes).
If you’re using the build service, automatically rebuilt versions of your snaps will show here, and you will be able to publish and promote them to different channels. If you encounter issues, or your users report problems, you can revert to older releases.
As a developer, you will most likely want to know how your snap is performing over time. The metrics page lets you see the weekly active devices count for each of your snaps. You can fine-tune the graph by version, operating system and channel, and change the view from default 30 days to as far back as the past five years. You can then correlate the behavior and adoption of your snaps to different events – like major releases, promotional activities, etc.
Sometimes, we feature different applications in the Snap Store and in the Snapcraft social media. We often see a healthy intake of new users closely associated with these activities, so this could be a rather useful decision-making vector for developers, especially early on in the snap’s lifecycle, while they may be trying to build the audience. Another advantage of the metrics page is that it allows developers to see how their software is behaving on all the supported distributions (currently 40+), without having to rely on any individual Linux distribution data.
To help you gain an audience and drive your metrics up, the Snap Store has a plethora of tools available. These include buttons, embeddable cards, and GitHub badges. You can use these in different languages, too – we currently offer these in fourteen languages. Once again, similar to the smart use of compelling icons and screenshots, we see a correlation between the use of buttons and cards and snap usage popularity.
Finally, you can tweak the visibility and availability of your snap in the store. You have the option to add collaborators to your project, make the snap available worldwide or only in selected territories, and lastly, set the snap status.
There are three options:
- Public – the snap is searchable in the store and on the command line on any distribution that supports and runs snapd, and can be installed without restrictions.
- Private – the snap will only be accessible to the publisher and any collaborator.
- Unlisted – the snap is available for installation by name, but it will not show in the search results. This can be useful if you’re running a limited testing period with a number of users who are not necessarily project collaborators.
And this brings us to the end of this tour. The Snap Store offers a wide range of options to the users, and if you’re only starting, the variety may seem complex or even overwhelming. This guide should clarify some of the questions, and will help you take the right choices, so your snaps shine.
If you don’t have a snap ready just yet, or your project isn’t at the publication stage, worry not! There’s a solution to that, too. A quick way around this is to use the First Snap Flow (FSF) language guides to create your first snap project, and use it to set up our account and snap listing. Hopefully, you will soon join a rapidly growing pool of developers who use and enjoy the Snap Store!
If you have any feedback on this article, please join our forum for a discussion.