Halide: One Year Later

Ben Sandofsky
May 30, 2018
12 min read

Leading up to Halide’s launch one year ago, Sebastiaan and I had no idea what to expect. We’d spent ten months of nights and weekends on this thing, and you still couldn’t take a photo with the volume buttons— table stakes for a camera app. But we’d set a deadline for ourselves. It was time to ship and test our theories. Eek.

We set out to build Halide after trying every major camera app and being left unsatisfied. We wanted an app for thoughtful, deliberate photography, not selfies. We wanted a tactile experience that felt like a high-end physical camera. We wanted the professional tools you’d find on a DSLR.

We hoped others shared our experience. We hoped critics understood what we were going for, and would forgive a few missing features. We hoped the app economy wasn’t dead, and you could still make a few bucks.

At the same time, we were launching another camera app in a crowded market. We were asking for an up-front payment when freemium is the norm. This wasn’t the App Store of 2008, so we were prepared for the worst.

One year later we can say Halide has exceeded our wildest expectations. Let’s dive into what we released this year, and their effects on sales.

I. The Timeline

Version 1.0

We launched, exactly one year ago today. Our launch was covered on tech sites like 9to5MacDaring FireballTechCrunch, and Mashable.

Then things went viral. We made it to design sites like Uncrate and HypeBeast. Then we found ourselves in mainstream media like CNBCForbes, and even television.

KTLA featured Halide in a news segment on hot new apps

That week our App Store page received over 350 million impressions. We peaked at #3 in Top Paid Apps.

That’s good company. And this was before the App and Games chart were separate!

Suddenly we had to had to act like a real business, as hundreds of support emails arrived in those first few days. Some were feature requests, some were bug reports, and a fair share were questions about how to use the app.

Version 1.1: Snow Halide

We listened. We spent the next few months on Halide 1.1, full of fixes and design changes. 1.0 we had a stability rate of 96.6%; if 1,000 people used Halide, 34 people experience a crash. By 1.1, we reached 99.4% stability.

Many users complained about features being unavailable on their older iPhone. We overhauled Focus Peaking to work on older phones. We added MAX mode for devices that don’t support RAW. We sped things up across the board.

And finally, we shipped volume button capture.

Version 1.2 and a huge overhaul for iOS 11 and iPhone X

By the end of summer, Apple leaks gave us a good idea about the iPhone X form factor. We wanted to rethink everything from the ground up, and build a new design optimized for the iPhone X that would be out in time for the launch of the redesigned device. We set out on two releases in parallel.

In October we launched Halide 1.2, a basic release to support iOS 11. It added HEIC support and very basic depth-capture. To be honest, it was pretty small. We spent most of our time on the X redesign.

Version 1.5

In November, right in time for the iPhone X launch, we released Halide 1.5, our major redesign. Because the iPhone X was so much taller, we ensured all controls were usable with one hand, and we still took advantage of every pixel of the screen by having controls in the corners of the screen. (You can read Sebastiaan’s in-depth design retrospective here)

Our bet paid off, and it was praised for “embracing the notch.”

Version 1.6: The Cure for Blurry Photos

A month later, we launched Halide 1.6, another release focused on user requests. We made capture 4x faster, added 3D touch shortcuts, and added advanced file options like lossless TIFF support. We also found a solution to our biggest source of negative reviews, “My photos are blurry.”

We’ve written about this problem at length, but in an nutshell, most apps don’t know how to read RAW files. This includes Instagram and even the built-in photos app. If you make the mistake of loading a RAW in an unsupported app, it doesn’t display any sort of warning— it just shows a very low resolution version.

Left: Apple Photos trying to load a RAW. Right: The full resolution image.

We finally solved this in 1.6, but in retrospect it was a mistake to let it go on for so long. I had unconsciously written it off as user error. We wasted too many hours on support tickets explaining what was going on, instead of prioritizing a workaround for the surprising iOS behavior.

It’s an important reminder that when enough people run into a problem, it doesn’t matter who’s at fault. It’s ultimately your problem.

The Editing Conundrum

As we entered 2018, many users were asking about editing. We knew it was very important to keep this out. We want Halide focused on shooting. There are thousands of editors in the App Store, and they’re better than whatever we’d throw together in a few months.

So we partnered with the highly acclaimed editor, Darkroom. We made it easy to send photos to Darkroom, and they made it easy to jump over to Halide to capture a new photo. It’s been an amazing partnership that delights users.

Version 1.7: Our Experiment with Portrait Mode

The next top request was for a built-in portrait mode. While we supported Depth Capture since Halide 1.2, it just embedded depth data in the file. You had to apply the blur in the iOS Photos app. We did this mostly due to time constraints— we were focused on iPhone X— but we also had reservations.

If we say yes to everything the scope creep will turn Halide to a jumbled mess. Before you know it we’ll have a Sparkles button. So we filter every feature request through, “This is an app for deliberate photography.” If we add Portrait Mode, there’s got to be a good reason.

The iOS Camera app is designed for non photographers. They coach you through portrait mode with, “Stand further away,” and “More light needed,” to make it impossible to take a bad portrait. What if we just exposed the depth data, gave you the tools to analyze it, and let you make the choice? What if we built a portrait mode for advanced photographers?

In March we launched our huge Halide 1.7 with advanced depth map visualizations, a depth map export, and a cool AR viewer for reviewing the data. Oh yeah, and built-in portrait mode. By not coaching you, you can take portraits faster than the built-in camera app.

Version 1.8: Closing out a Year

With a month before our anniversary, we decided to do a focused update focused on the most common feature requests. In Halide 1.8, we added a companion Apple Watch app, a self timer, and redesigned our photo reviewer to be much more intuitive. We also improved accessibility throughout, like adding support for Dynamic Type and Bold Text and more.

Every release received critical acclaim. Even if we didn’t make a penny from sales, this was worth a year of nights-and-weekends.

II. Sales

For indie developers, a healthy way to look at profits is opportunity cost. If you took the hours spent on your own app and applied those toward freelancing, would you make more money?

We’re lucky to have no such dilema. Our launch immediately recouped the year of development costs. Our monthly revenue absolutely beats freelancing, and justifies ongoing development. Halide has a bright future ahead.

Sales Spikes

For many apps, profits resemble a summer blockbuster. You see a tidal wave of sales at launch, which fade away in a matter of weeks. We’re no different.

We’ll get back to that. Let’s start a month after launch, to focus on day-to-day sales.

December was busy:

That huge spike is on Christmas Eve. We’re surprised it wasn’t Christmas Day. Maybe a lot of people open stocking stuffers on Christmas Eve, and iTunes Gift Cards make great stocking stuffers?

It’s obvious, but big updates with clear messaging result in big sales spikes. We spent three months on 1.7, a huge update with the message: “Halide is now the best depth camera.” Constrast that with the more humble 1.8, which took half the time, had a little less focus, and yielded half the sales. Halide 1.1 and 1.2 lacked any real tentpole features, and made virtually no impact.

But wait! Shouldn’t our iPhone X redesign have been the biggest sales day of the year? It was such a huge effort we briefly considered calling it Halide 2.0!

We think the redesign had a “slow boil” effect on sales. Early adopters buy an iPhone on launch day. We suspect a significant chunk of Christmas Day sales came from new iPhone X owners. And six months later, we still sales bumps from articles like this one from The Verge:

We prefer slower, consistent sales over major spikes that quickly fade away. It eases our nerves during sales lulls.

Sales Lulls

For a while, we wondered if our launch was a fluke, and we’d be another app that just fades away. Consider cumulative profit over time.

Y Axis is total revenue

The flatline was when we focused on fixing things rather than shipping new features. These were small updates without much fanfare. I still remember an App Store review accusing us of abandoned the app.

Truth be told, profit-motivated people would abandon things at that low point. We kept grinding because we love what we do. Then two things happened.

When the new App Store launched with iOS 11, sales jumped 50%. We no longer had to compete with games on the charts, and there was an abundance of new space to be featured.

In our opinion, the iOS 11 App Store is amazing for indie developers.

The inflection point is when the New App Store launched

Then, in November, we resumed major updates.

Speed bumps correlate with major updates.

Every update has had a positive, lasting impact on sales lulls. Compared to August of 2017, we now see 4x the revenue on slow-days.

They say you make all of your revenue at launch. Well, to date, our launch has only accounted for 27% of all profits. Even if we see no more sales spikes, and sales hold steady, we’ll be quite alright.

We don’t regret taking time after launch to listen to users. It set us up to ship big features months later. If there’s a lesson to be learned: don’t see your first plateau and jump to doom-and-gloom. Stay focused. Think long term. Keep shipping.

What about advertising?

In our experiments, advertising on social media has been a waste of time and money. Maybe it’s because mass-market users are so used to freemium. Maybe our target demographic doesn’t respond to ads.

It seems many people still don’t realize how powerful RAW on iPhone is. Sebastiaan’s articles proved super popular.

Our most successful “ad” was Sebastiaan’s articles on using RAW on the iPhone. He wrote it because it provided value to users, and it was fun to write. It wasn’t even unique to Halide— you could use any RAW camera app.

Our advertising strategy moving forward is to provide useful content, and trust we’ll be paid back in karma.

What about price?

Before launch, we explored a freemium model. When we ran our ideas by friends in our target audience, they all just preferred the upfront payment. Freemium can be a great model, but we couldn’t find a strategy that felt right; we’d have to make a crippled version of Halide, and that just didn’t mesh with our vision for the app.

We launched at $2.99, and later bumped the price to $4.99. Last month, we increased the price to $5.99, which is in-line with other camera apps. Price changes have had no significant impact on profit. Like an economics textbook, as we increase price, demand goes down.

We’ve decided to stick with a higher price, and we may raise it higher. Believe it or not, it isn’t about money. Again, our profit remains the same no matter what price we set. We think a higher price is better for customers, long-term.

When a user buys Halide, they pay once and get all future updates. We can never recapture that purchase. As we saturate our market— when every user interested in a manual camera app has bought a copy— sales will dry up. At that point we’d release a paid update and hope everyone buys a new copy.

We think it’s better to charge users $5.99 every two years, rather than $2.99 once a year.

It’s an uphill battle to convince existing users to buy a new copy of your app when their existing copy works perfectly well. Rather than save-up features for a gigantic upgrade, and spend time and resources on a marketing push, we’d rather be heads-down delivering new features.

Users tell us they tried every camera app in the App Store before settling on Halide. That’s great. That means there’s no switching cost. If a user balks at our price, we’re happy if they try other apps. If they’re like us, the others won’t scratch their itch.

Finally, a higher price acts as a filter. When priced too low, we see an increase of support emails and negative reviews from users who made an impulse buy without understanding what we’re going for. They demand features we never promised and will never build.

III. Our Users

We built Halide with a specific user in mind: advanced photographers who want a DSLR quality experience on a phone. We don’t think we can target the mass market without diluting our vision, and we’re fine with that.

We encourage people to tag photos #ShotWithHalide, and every day we’re blown away by what people make. We regularly repost them on our Instagram account, which has over 3,600 followers.

If you’re a Silicon Valley type, your next question is, “How many users?” We never optimize for vanity metrics. Despite our best efforts, Halide recently crossed 100,000 monthly active users. Whether it’s 100,000 or 100, we’re happy to have such a passionate, enthusiastic audience. It’s the most rewarding part of our job.


So when can we look forward to Halide 2.0? We’re excited to announce you’re using it.

Compare Halide today to a year ago. There were so many changes that we could easily justify a paid upgrade. Instead of saving them up and launching a year later, we delivered Halide 2 episodically.

We have to say, with sales tied to new features it’s hard to justify going back and fixing things. We get why so many developers wish subscriptions were the norm. With predictable revenue, you feel confident pausing new features to focus on maintenance. (Don’t worry, we don’t have any plans to move to a subscription model.)

Sebastiaan and I know boring, maintenance updates are the cost of doing business. We’d rather miss out on revenue than let the app decay to the point where we have to start over. We think the passive income Halide generates gives us a buffer to mix “Snow” releases among the blockbusters.

Our biggest fear is that we’ll ship too much. Someday Halide will do everything we want it to do, and we hope we’ll be content to say, “It’s done,” rather than pile on more features for the sake of marketing.

Fortunately, we won’t have to face that for some time. We have a lot of work ahead — in fact, plenty to deliver an even more impressive true version 2.0 we could’ve ever envisioned a year ago.

Thank you for joining us on the adventure.

Charts were generated with AppFigures, which uses iTunes Connect sales reports. We care about your privacy, and never use third-party analytics services.