Halide: Year Two

Ben Sandofsky
May 30, 2019
9 min read

Time flies: today marks the two year anniversary of Halide.

It’s kind of wild to think that just two years ago, we were sitting behind our laptops ready to launch our camera app without knowing if it would be well-received. We knew that it was something that worked well for us, and if others found it pleasant to use, we’d consider it a success.

Now, Halide is by far one of the most popular camera apps for iPhone. Tons of people use it to take photos every day. It has a sister app: Spectre. And we are now lucky enough to work on Halide and Spectre full-time and have huge plans for their future.

So here we are, two years later! We did an update a year ago — so we thought we’d give a update on our last year.

The Timeline

We’re less than a week away from WWDC, and last year was no different. After the announcement of iOS 12, we spent Summer of 2018 working hard to prepare for the new OS. We released four small updates focused on fixing bugs and cleaning up code. We also started work on our second app, Spectre.

We’re a two-person company, and we were both very busy in our personal lives. We both moved, I got married, and Sebastiaan was preparing to Ride The Earth.

It’s a good thing we had that low-pressure period, because fall was crazy.

September, Version 1.9: The iOS 12 Release

In September, we released a huge update that leveraged new features in iOS 12. This was a huge update, which included support for the latest iPhones, reading out hardware details, Siri Shortcuts and Portrait Effects Matte, which gave crisp, detailed mattes for portraits.

To compliment it, we launched our own custom bokeh blur that recreates the look of photos taken with a great lens on a proper camera. Other iOS 12 features included Siri Shortcuts, a voice trigger, and our technical readout.

October, Version 1.10: Smart RAW

Sebastiaan and I don’t like to trickle out small, frequent app updates. We like big updates that make a splash. Launching a major update one month later was unusually short for us.

The catalyst was the launch of the iPhone XS. After Sebastiaan’s deep dive into the new sensor, we built a special mode exclusively for the new phone which we call “Smart RAW.” It’s an auto-exposure algorithm to improve the noise and dynamic range of your RAWs.

Version 1.11: The iPhone XR

Our third fall-launch came with the iPhone XR. It had a slightly different screen, but it was trivial to update the UI. The real value-add was around single-camera depth.

The single-camera on the XR has limited depth sensing capability, with lower resolution and accuracy than a dual-camera iPhone like the XS.

In the first-party camera app, you can only take portrait photos of people; Apple improves the low quality data with its Portrait Effect Matte API. It uses machine learning, but it’s only been trained on humans. Halide 1.11 removed this limit, allowing you to take portrait photos of pets and inanimate objects.

A Return to Normal After an Intense Three Months

We pulled long hours over three months to get those updates out as soon as possible. The peak was Halide 1.11, when I received our iPhone XR on a Friday and launched an update by Monday. It took a few 16-hour days, but there’s not much we could do as we didn’t have advanced access to the hardware.

If we had employees, we wouldn’t let them do these long hours even if they wanted to. It’s unsustainable to burn the candle at both ends. So after Halide 1.11, we shifted focus on Spectre, which we knew would take several months to wrap up. It was time for us to switch from a sprint to a marathon.

We originally planned to launch Spectre in early January. When we released a friends-and-family alpha test, the reception was overwhelmingly positive but uncovered a few weak spots. For example, non-photographers didn’t understand the real world uses for long exposures; this lead to us adding three tutorials within the app. This pushed our launch out another month.

Early February, Halide 1.12: RGB Histogram and Smarter Smart RAW

While developing Spectre, we built a machine learning model that helped with dynamic range detection. It could also make Smart RAW smarter, which we launched in Halide 1.12.

We also included a color histogram. It was a feature we had in our backlog for some time, and since the UI change was trivial, it wasn’t a big distraction while we wrapped up Spectre.

Late February: Spectre 1.0

On February 28th, we launched Spectre to an amazing response. We were featured in the App Store as an Editor’s Choice from the moment we launched:

We held the #1 spot for top paid apps for almost an entire week.

March, Spectre 1.1: Stabilization for All

We launched Spectre only supporting stabilization on iPhone 8 and later. Rather than focus on new features, we found a way to support older devices. Spectre 1.1 added support all the way back to iPhone 6S. It sacrifices a little quality, it’s still revolutionary compared to unstabilized handheld shots, and users were amazed that we put effort into ensuring the app worked even better on older devices rather than focusing only on the latest, shiny phones.

That paid off: Today, the average new US rating is 4.5. Unfortunately, our overall average US rating lags behind at 4.0, since people don’t go back and update reviews.

(If you love Spectre, do leave us a review! It helps a lot!)

That being said, we have a big Spectre update in the works, so we think positive ratings will accelerate. We’d love to tell you what we have planned, but for now we’ll have to keep you in the dark.

March through May: Housekeeping

In the last few months we’ve focused on bug fixes and small improvements to Halide and Spectre. In April, we added a few new Siri and 3D Touch Shortcuts, fixed bugs in our Apple Watch companion app, and by moving to Swift 5, we cut our download sizes by up to 50%.

We spent two weeks unifying our Photo Library viewer, so we can share code and reduce duplicated effort. We detailed this in our Spectre Engineering Retrospective.

We also dealt with boring business stuff. For example, Japan withholds 20% of your Japanese revenue for taxes, until you prove you’re not a Japanese company. That involves a fair bit of paperwork.

It’s easy to romanticize running your own business, that you can work on whatever you want whenever you want. A tradeoff is having to deal with the business side of things that’s managed for you as an employee. An hour of business-stuff can be more exhaustive than eight hours of deep code.

That brings us to the health of the business over the last year.

Revenue

Past performance is not an indicator of future results. Apple’s huge focus on the camera last year surely helped with our three major releases, and we also released an entirely new app. We consider this year exceptional.

This is daily revenue over the last 365 days, including both Halide and Specte:

That spike on February 28th was the launch of Spectre. Let’s separate Halide sales for now.

Being featured is awesome, and absolutely contributes to awareness, but sales return to normal within day. Features only added 3.6% to Halide’s bottom line, with most revenue coming from boring day-to-day sales.

The Effects of Spectre

Before Spectre, Halide revenue was on track for significant year-over-year growth. With Halide and Spectre combined, our revenue has grown 50%. We’re using the combined total because the per-app breakdown is a bit complicated. Spectre’s launch had a halo effect on Halide sales, and last month we launched an app bundle that combines both Halide and Spectre.

Pricing, Promotions and Charity

There’s no telling what tomorrow will bring, but we’re still quite happy with the pay up-front, pay-once business model.

We continue to sell Halide at $5.99. We held one sale last year as part of our charity event, and donated $10,000 in proceeds to The American Red Cross, App Camp for Girls, and the EFF.

We launched Spectre at $1.99, and currently charge $2.99. We expect to raise its price as we add features, similar to how we raised Halide’s price.

What About The Charts?

We don’t build our products with the goal of climbing the charts. There’s a saying, “When a measure becomes a target, it ceases to be a good measure.”

Some apps manipulate the charts by pouring lots of money into advertisements in a short burst. Just put $2 of advertising into every $1 of sales. That isn’t a joke. It’s a reasonable strategy for venture capital backed companies who need to juice “active user” numbers to raise more venture capital.

The charts aren’t a contest. We’re happy with a lower position if it means more sustainable revenue. Revenue keeps the lights on, not vanity metrics.

In our first year, Halide’s averaged #52 in top paid photo and video apps. The median was #29, with a standard deviation of 72. In our second year, Halide averaged #22, its median was #17, and the standard deviation was 11. Not only did it chart higher, but it charted more predictably.

Spectre is in its infancy, so there’s still volatility. This week it swang between #36 and #71, which is much better than Halide at this point in its life.

Conclusions

Sales Resilience

If you recall from our first year recap, sales lulls are unsettling.

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.

As we entered our months-long sprint to finish Spectre, we worried that that taking a break from feature-packed updates would hurt sales. In year one, a few months without big updates ground sales to a hault. The following year, there was much less of an impact.

That doesn’t mean we’re going to rest on our laurels. Quite the opposite. We now have confidence to make bigger bets that may take a little longer to ship.

Spinoff Apps Work

We’ve talked at great length on the debate between spin off another app or doubling-down on Halide features in our Spectre Retrospective. Conventional wisdom says it’s hard to convert a user from one app to another. Somehow we managed to do it, and now we can release certain features that would otherwise bloat Halide.

What’s next?

Maybe our customers are smarter than your average user, but converting users to our second app was surprisingly straightforward. We don’t even mention Spectre within Halide! We share Spectre shots on the HalideInstagram. People say Spectre is, “From the Makers of Halide.”

Legally, our company is Chroma Noir, but that was just a cool sounding name I made up years ago when I needed an LLC for consulting. It was never meant to be the public face of a consumer app. Stay tuned: soon, we’ll unveil our new company name and website. It’ll be just one of several big things we’re releasing this year.

Thanks to your enthusiasm, the last year was absolutely fantastic. We’re immensely grateful for your continued support, your photos and your feedback — and we can’t wait to share all the cool things we’ve been working on with you in the third year of Halide.