Hi! I'm Belle. I'm an iOS developer and co-founder of an indie software company called Hello Code. We're based in Melbourne, Australia, and it's just me and my co-founder, Josh. Our main app is called Exist, and it's a SaaS product with web, iOS, and Android apps.
Exist is a personal analytics service that combines data from all the services you already use (think Fitbit, Apple Watch, Todoist, GitHub, Twitter, etc.), and finds trends and correlations in that data that you might not have uncovered yourself.
We're currently making around $14,000 per month, which pays both our full-time salaries.
We started working on Exist not long after the Moves app first became popular for tracking your steps using the built-in accelerometer in your phone. I got interested in using Moves (which is now defunct) for a while, but the novelty of working to increase my number of steps wore off pretty quickly. This was before the Apple Watch and Android Wear, before Apple Health and Google Fit, and before the iPhone even had a specific processor built-in for detecting motion. Fitbit and Jawbone were just starting to get people interested in fitness trackers, and we were curious about where all this fitness tracking might lead.
The problem as we saw it was that people were trying out Moves or buying a Fitbit only to give up on tracking their activity soon after, when the novelty wore off and "number fatigue" set in. We wanted to find a way to turn those numbers into easily-understandable insights and knowledge that could help people understand their behaviour.
We realised there was a lot of context missing around why you did or didn't walk a lot each particular day, and a lot of that was context you wouldn't catch on your own, so we set out to connect data from multiple sources and uncover correlations and trends in our users' behaviour.
When we started working on Exist, Josh was working as a freelance web developer and I had a full-time content marketing role at Buffer. Exist started as a side project, with Josh building the MVP in his spare time, and me working on marketing in our build up to launching into beta.
We started working on Exist in June 2013, and by November we had our first beta testers. During this early period we had a landing page set up with a mailing list people could join to find out when we launched. This helped a lot, both to keep us motivated (because we knew people were interested), and to give us a starting point for finding our first customers once the product was ready to launch.
By the start of 2014 we were frustrated at how slow our pace was ,since we had to fit Exist in around our full-time jobs. So in February 2014 we ran a crowdfunding campaign to fund our development and get our first paying users. Supporters could pre-purchase an annual subscription at a reduced rate compared to what we would later launch with, and we hoped to raise enough to support the two of us working on Exist full time for six months. We didn't get anywhere close to that, but we did get enough to heavily validate the idea, and boost our confidence to keep going.
In April 2014 we opened up our beta to those early supporters who helped us shape it as we got ready for a public launch. This was the first time we made any money from Exist, which up until then had been a labour of love. It was a huge boost for us to finally be earning some revenue and having real users try the product and offer feedback.
As I said before, when we started working on Exist, I was working remotely as a content marketer for other tech companies while Josh was a freelance web developer. We started out with a responsive web app, and no concrete plans to create mobile apps. Once Exist was up and running, though, I started tinkering with iOS development and found I really enjoyed it. The first app I built after working through some tutorials was a tiny, one-feature iOS app built on the Exist API.
From there, I kept learning iOS development, and kept adding to my first app until it became a fully-fledged iOS client for Exist. Josh had some experience with Android already, so he created an Android client. Over time we found the mobile apps became more of a focus, and lots of our users spend more time daily with our mobile apps that our web app.
Apple Health has also become a big focus for us, as it's added support for more data over time, and lots of third-party developers sync data into it, so it's a great way for our iOS users to get lots of data into Exist. Between building as much of the web app's content into our mobile apps and supporting Apple Health, the iOS app has grown to become my full-time job. Though I should definitely spend more time on marketing, I like development much more, so it takes the bulk of my time these days.
One of the best things we did with Exist was to push hard on marketing before we launched. We made a landing page where people could sign up for a mailing list to be notified when we went live, and we were lucky enough to get some press around the product in the pre-release phase, which helped our mailing list grow.
We also happened to be in the right place at the right time, when the Quantified Self movement was starting to garner more interest, and we were able to ride that wave as self-tracking became more common. Getting involved then helped us get more interest and press than we would have otherwise, as lots of magazines and websites were looking for Quantified Self-related stories to write.
We always knew we wanted Exist to be a paid product with no free tier, because it relies on storing a lot of data per user, which makes each user add heavily to our server load. Plus, we wanted a sustainable business and weren't keen on going for a freemium model, where we'd have to spend lots of time and effort supporting and trying to convert free users.
Since I was working in content marketing, we focused on that and started a blog with regular posts about the Quantified Self movement, self-tracking, and related topics like exercise and building good habits. We reached out to sites like Lifehacker and Zapier and were able to get some guest posts on other sites as well as having some of our blog posts republished. At the time, big content sites like Lifehacker and Fast Company were keen to republish posts from other sites, since they needed to publish a huge volume of content every day. Republished articles always included a link back to the original, as well as an author bio, so it was a helpful way to build our audience and name recognition.
Our blog grew to hit 33,000 uniques in our best months, and was a big driver of inbound traffic. From working at Buffer, and later Ghost, as well as working with companies like Campaign Monitor and Zapier, I was publishing writing online a lot outside our own blog, too. I had a link to Exist in my bio whenever possible, which helped us grow.
One other thing that worked well, but very intermittently, was getting an organic mention from someone with a big audience. Merlin Mann mentioned Exist a couple of times on his podcasts, and we got a big influx of signups from that. We also got a mention in a blog post more recently from Wil Wheaton, which also got us sign ups. We never reach out to influencers (except to say thanks afterwards), so it's always a nice surprise when something like this happens. They tend to sign up and use Exist for months without us realising, and then make the effort to tell their audience about it, which helps us a lot.
The one thing that never worked for us was reaching out to press directly. We've been lucky to have a few journalists reach out over the years, particularly early on, and we've done some interviews on radio and for online articles, and even had a tiny mention in GQ magazine. But anytime we reach out directly to the press it's failed, so we've stopped wasting our time with that approach.
Although we flirted with the idea of getting venture capital funding early on, we soon realised that wasn't the path for us. We want to keep Exist small and grow slowly and deliberately, because we're not looking for an exit; we want this to be a sustainable business that we can work on for years to come. We're fans of seeing more sustainable indie software businesses pop up, and not feeling pressured to quickly grow your business into an empire. We just want to make something people like enough to pay for, that we can keep improving over time.
Exist has been a SaaS product from the beginning with monthly and annual subscription options. We don't have tiered pricing, so it's very simple: after your free trial, you either pay for it or you delete your account. Our paid plan is $6 USD per month, and the annual plan is $57 USD per year, so you save two and a half months worth if you pay annually, but the features you get are the same. This approach makes things simple for us and simple for users. There's never any question about having access to certain features or hitting limits or anything like that.
We use Stripe to process our credit card transactions, and we also let Stripe handle our free trials, which means users have to enter a credit card to create an account. This definitely makes the barrier to trying the product higher, but it also means people are more likely to convert to paying users. It's a trade-off that means fewer sign-ups, but higher-quality sign-ups, and so far we're happy with that compromise.
When we first started working on Exist, I was working at Buffer. It was a much smaller company then, and I was able to watch as Buffer's leaders explored openness and transparency in a variety of ways. One of the strongest impressions I have of how transparency worked at Buffer was the day we were hacked. All around the world, everyone in Buffer's remote team took turns jumping in to help with technical efforts to overcome the hack and shore up our security, fielding customer support, and discussing where we'd gone wrong to allow such an attack to happen.
I was on the marketing team at Buffer and one of the things we did was publish a blog post explaining to our customers what had happened. Buffer's leaders were open about the hack, explaining what customer information was exposed, how the attack had happened, and what we planned to change moving forward, to ensure it couldn't happen again.
The response to that blog post and the open messaging from the Buffer team on other platforms was overwhelmingly positive. I expected it to be negative, or neutral at best, but the fact that the team was so open about what happened made lots of our customers like Buffer even more. That experience left a strong impression on me and made me realise how rare transparency is in business, and how much customers appreciate it.
These days we keep a public stats page detailing our revenue over time. We also maintain a public roadmap for Exist where users can vote for their favourite suggestions and help us prioritise what we work on. The roadmap helps us find out what our users are interested in, but also helps us communicate our plans and what we're working on right now. We're open about the fact that it's just the two of us, and try to communicate in a personal way rather than pretending to be a big company. Every email we send, including receipt emails, comes from one of our personal email addresses so users can always reply to us directly if they need help.
To get more insight into how our users use Exist and how they'd like it to improve in future, we also send out a survey every year to all of our current users. Then we write up the results on our blog, including our plans for the year ahead, which are influenced by the survey results. Here's the blog post detailing our 2018 survey results.
We also try to write up a review of each year on our blog, discussing how much of our plans for the year we completed, and any other major events that happened. Here's 2018 in review, for example. And finally, we occasionally record a podcast with a behind-the-scenes look at running our company, including decisions we're making, struggles we're working through, and what we've been spending our time on.
We've built a business that relies on other companies, which can be really tough. We've had integrations come and go because companies die (e.g. Jawbone), or they change who's allowed to access their APIs and how (e.g. Instagram is moving towards only allowing businesses to use their API very soon). We've also found the quality of APIs, documentation, and the data itself varies between services, so the same data in Exist can be more or less problematic depending on where you're syncing it from.
All of this has made our work frustrating at times, because in a lot of ways we've ended up doing customer support for these other companies, as our users struggle to get their accounts and devices set up in the way they want, and come to us when the data in Exist reflects an issue in the original service.
We also have an ever-growing list of integration requests from our users for services that don't make their users' data available via an API. We spend a lot of time explaining to our users that if the developers of another device or app don't make it available to us (and to the user), there's nothing we can do. Some apps only allow whitelisted parties to access their API, and we've had applications for access ignored over and over with no explanation. This sort of thing can be tough, but we try not to let it take up too much of our time, and instead focus on the integrations that are possible, as well as encouraging other developers to create APIs and other ways for users to own their data. We believe it's good practice, and beneficial to everyone.
Our best defense against this has been to spread the load, so we're not putting all our eggs in one basket. When Jawbone died and we had to remove the integration, we already had several other integrations that provided activity and sleep data, so there wasn't a gaping hole. That's harder to do with industries like social media, where certain services like Instagram and Gmail have cornered the market, but where possible we try to spread our dependency across more than one service to ease the pressure of relying on other companies for our product's value.
There are several different things we found particularly helpful for our business.
First of all, we were lucky that the Quantified Self movement kept growing after we jumped onto it. We found the early interest in self-tracking interesting, and it helped us come up with the idea of Exist, but it was pure luck that we got our timing just right so we could ride that wave.
The next was that being open about being an indie company run by just two people has helped us build stronger relationships and trust with our users
Something else that helped us out was having an API from an early stage, particularly for developers or users who like to tinker with their data. We have a small community of users who are creating their own integrations, setting up experiments or analysis of their data, and sharing tools created with our API among our userbase.
Next, having a simple business model without a free plan helped us build trust with our users. We were always clear that we're against selling our users' data or bringing on investors who might affect our decisions. Our users have been our top priority because they pay for our product, and that's made us stand out from some other products in the same space.
Finally, our product is built on integrations, and we were surprised to find out they can be a good way to get new signups, as our integrations tend to be with products with a similar audience who can help us reach a bigger audience.
Start marketing your product before you launch. This will help you validate the market, boost your confidence while you're working on your first version, and will be a great help when you're ready to launch.
If you find a marketing channel that works well, stick with it. It can be really difficult (and a big time- and money-waster) to figure out which marketing channels or approaches will work for your business, so don't squander the ones that do seem to work.
We've also found dogfooding (i.e. using our product ourselves) has been really important. It not only helps us catch bugs and improve the user experience, but it helps a lot with developing our vision for the product, and having the confidence to turn down feature requests that aren't in line with what we have in mind. Making something we get value out of helps guide us so we don't fall into the trap of adding every little feature one of our users suggests, but make more considered decisions about how new features fit into the product overall.
You can find out more about Exist here, or sign up for a free trial using my referral code to get 60 days free (instead of the normal 30). And you can find out more about our company on the Hello Code website.
Of course, if you have any specific questions, feel free to ask me in the comments below, or find me on Twitter at @bellebcooper.
Congrats, I've got some amazing insights from your post! I love the way you respect your customer and put them in the first place!
For those who prefer audio interviews, I've run the above through Amazon Polly:
https://polly-files.s3-eu-west-1.amazonaws.com/indie-hackers/interviews/belle-cooper-exist.bf72dddb-2499-4b1b-995e-98c74acc3b2a.mp3
Hopefully that's fine with Courtland
Good stuff! Always great to hear about entrepreneurs from Melbs.
Awesome. Very insightful and thanks for being so open about your company and progress.
Thanks, happy to be open if it helps others!