Wavebox is an app that brings together most of the tools you’ll need on an everyday basis, like Gmail, Outlook, Office 365, Slack and more, and is now available as a snap! We had a chat with Thomas Beverley, Co-founder & Software Engineer at Wavebox, to understand how was their experience with snapping their application.
Can you tell us about Wavebox?
Wavebox is a productivity and communications tool for your desktop. It brings all your favourite cloud accounts together in one place, so you can manage your workflow more efficiently. It replaces multiple open browser tabs and constant logging in and out with one single window on your desktop. It not only provides one-click access to email services like Gmail, Google Inbox and Outlook, but also productivity tools like Office 365, Trello and Slack. Users can also add links other sites such as a company website, intranet, Facebook and other social media accounts. It’s like a central hub for all your productivity and communications needs!
We started Wavebox as a scratch-your-own itch project. We love the cloud interfaces of Gmail and Google Inbox, but missed the desktop integration offered by traditional clients. So we tried all sorts of different setups and configurations to find a solution for us, but it always felt like something was missing. Finally we quickly threw something together that worked best for us, and a few thousand hours later here we are!
Wavebox started as macOS only, but as our user base quickly grew it became increasingly obvious that users from all over the world would love the product. So we soon added support for Linux and Windows. Our user base is now spread pretty evenly across all platforms, and we strive to ensure that the Wavebox experience is great no matter what platform is being used.
How did you find out about snaps? What was the appeal of snaps that made you decide to invest in them?
When we launched Wavebox for Linux we were only offering a tar version, but we knew it was a bit cumbersome having to re-download it for every update. It had always been our plan to offer an easier download-and-update experience but we weren’t sure where to start.
Then we found out about snap packages through our users – a few of them opened issues on Github requesting a snap version. So we decided it would be a good choice for us to give it a try. Our aims were to make new releases of Wavebox both easy to update for users, and easy to distribute for us. Snap packages gave us something we could package once and run on different environments, without the hassle of checking which dependencies are and are not installed.
How does building snaps compare to other forms of packaging you produce? How easy was it to integrate with your existing infrastructure and process?
Before packaging our snap version of Wavebox, we placed huge emphasis on automating our build and distribution process as much as possible. It is important to us that a new release can happen quickly and often, without too much effort. To implement this we already had automated builds running on Ubuntu, macOS and Windows, so it was just a case of figuring out what had to be done and updating our build process to also generate a snap package.
As it turns out it was pretty easy! It took a little while to figure out which dependencies and plugs were needed, but after that it was just a case of generating the snapcraft.yaml file and pointing snapcraft at it.
Do you currently use the snap store as a way of distributing your software? How do you see the store changing the way users find and install your software?
Discoverability and ease of install is half of the battle when writing apps, and anything that makes this process easier is a high priority for us. So we do make use of the snap store. In terms of discoverability I can’t imagine many users type type “new app” into Google when looking for something new to try, but they’d definitely browse the snap store to see what’s there. We love it as developers and I think users love it too!
What are your expectations on savings by using snaps instead of having to package for other distros?
As well as our snap package, we also distribute Wavebox as a tarball, deb package and apt repository, with plans for a few more methods. So no matter what platform or distribution people are using, there’s always an easy version Wavebox available for them.
As snap becomes more prominent across the Ubuntu ecosystem, and similarly with other distributions, we can focus more time and energy on snap as a one-stop-shop method to push our app out. We love the way we can bundle all the dependencies in with the app, so everything is setup and on a known version. We spend a lot of time triaging bugs triggered by users’ different configurations, but snap just removes that problem. Our hope is that one day we can distribute one version to everyone in the same way we distribute a single version on other platforms.
What release channels (edge/beta/candidate/stable) in the store are you using or plan to use, if any?
We test the latest and greatest version of our app everyday, but sometimes we struggle to find the balance between adding new features and releasing too many updates. We love that the store has the option to publish different release channels so we can keep the majority of our users on the stable release and release more frequently to other channels as features are tested and finished off. This gives everyone a choice about how often they want to see updates and how bleeding-edge they want to be!
At the moment we push releases out to the beta quite frequently and then to the stable channel once we’re happy everything is polished and works. As Wavebox evolves we do have plans to make use of the edge channel – we have lots of users who like to stay at the forefront of what we’re doing.
How do ￼you think packaging Wavebox as a snap helps your users? Did you get any feedback from them?
It makes life easier for them. They can use a one-click install to get started, then after that they’ve got a unified way to update all their apps.
Since we first released our snap we’ve seen a drop in some support issues from the Linux community as the snap ships with all the required dependencies. We no longer need to check which version of library A they have and how they’ve configured setting B as it’s set automatically when they download the snap.
How would you improve the snap system?
Overall we’ve found our experience with snaps very smooth, but there are still a few rough edges we wrestle with every now and again.
For example, the way the security sandbox is setup means we have trouble doing some things on behalf of our users, such as opening links and files. At the moment they have to install a separate library to make this work which can trip them up. We’ve also found the look and feel of snap apps tends to differ from those running outside of a snap package, which causes some confusion and support our end, but the snap community seems to be working hard to resolve these.
That said, we are very excited to see how snaps are improving, and how they give users easier ways to install and get started with apps.
sudo snap install wavebox
Learn how the Ubuntu desktop operating system powers millions of PCs and laptops around the world.