A Spectre Retrospective — Part 1: Build a Feature or An App?

Ben Sandofsky
Apr 2, 2019
5 min read

This is the first in a three part series about launching Spectre.

In Part 1, we’ll debate adding a feature to an existing app vs an launching an entirely new one. In part 2, Sebastiaan will dive into the design process of the app. In part 3, I’ll discuss the technical challenges we faced building Spectre.

Early Origins

In May of 2017, we launched Halide, our camera app for advanced photographers. From the day we launched, we’d get requests for longer exposures.

Background for Non-Photographers: Normally you capture a photo in a fraction of a second. However, there are practical or artistic reasons to capture photos over seconds or even minutes. Long exposures can remove crowds from a busy location, make water look beautiful, and more.

The image on the right is impossible with iPhone hardware alone

Halide lets you to choose any exposure length your iPhone hardware supports. Most iPhones allow a maximum of one-third of a second, but the latest iPhones allow up to one second. That’s far from the several seconds required for the effect you see above.

We could get past this one second limit by combining multiple exposures in software, but we knew this was a non-trivial feature. We decided to put it on the back-burner and focus on more pressing requests. By mid-2018, we were ready to revisit it.

The Halide Prototype

We owe much of Halide’s success to generous free updates. In the last two years we’ve shipped a major redesign for the iPhone X, a totally re-engineered RAW capture for iPhone XS and XR, and much more. We think think users pay us back through positive word of mouth, which is the most powerful advertising in the world.

“If it isn’t broke, why fix it? Let’s add long exposures to Halide! When the user hits the hardware limits, we’ll switch to software.”

We tried it, and… it wasn’t very good.

People use Halide for manual control, but once the shutter switches from hardware to software, you lose that control. For example, RAW no longer works. (We’ll go into this and other issues in part 3 of this series).

Even if users would make those concessions, dialing in the right settings requires a lot of trial and error. We’d need a new mode with extra buttons and dials. We were on a path that would compromise Halide’s streamlined experience. There’s a fine line between generosity and bloat.

This got us thinking, “What if we build another app?”

The Risks of Another App

We had to answer some tough questions, or risk launching a Quickster.

Is There Enough Contrast?

To an engineer, Halide’s depth capture mode belongs in a separate app. For normal people, not so much. They want the best camera for iPhone, not “a powerful RAW camera” alongside “a powerful depth camera.” They want a bicycle, not two unicycles.

We had to be careful that we weren’t repeating ourselves and just building “Halide for Long Exposures.” No, our goal was to remove complexity. We kept repeating to ourselves, “This is an app for everyone.” Tap the button, get an awesome long exposure.

Ironically, once we thought outside the Halide box, we came up with powerful features that would make the advanced photographers envious.

“Nobody carries a tripod. What if we perform realtime stabilization?”

Suddenly, it clicked. Spectre could do stuff a $5,000 camera couldn’t. This was a great app on its own.

Like Halide, we plan to enhance Spectre over time. Rather than restrict ourselves to long exposures, our final log-line became, “Spectre is a computational shutter.” Use Halide for control, use Spectre for magic.

Are There Resources?

A second app means a second workload, but we’re a two person company. Do we have the bandwidth to give a new app the same love and attention as Halide?

Believe it or not, Halide was a side project until just recently. This year Sebastiaan and I dropped our other work obligations, and we’re now working on apps full time. In addition to more hours in the week, we expect greater productivity thanks to less context switching.

We’ve also decided to focus on problems adjacent to photography. Much of the first year of Halide was creating foundational design and code which lends itself to another photography app. As much we’d like to disrupt the world of calorie-counting, we’d rather not start over from scratch.

In Part 2 and 3, we’ll talk about things we will (and won’t) reuse in our apps.

What Is It Worth?

Before fully committing to a new app, do market research to see what what users might pay. We found the typical long exposure app goes for $3. Now consider that we charge $6 for Halide. That means Spectre has twice the hurdle to reach Halide revenue.

Let’s say we add long exposure feature into Halide. It adds to its momentum, and increases sales by 100 units per day. If we instead launch a separate app, we need to sell 200 units per day to compare. In our opinion, it’s much harder to make new app successful than increase the success of an existing app. You’re building momentum from a standstill.

But even if Spectre makes less money, it provides diversification. If you’ve ever worked with an investment advisor, you know not to put all your money in one stock; you’ll be in for a wild ride up and down. Halide was our one stock, and while it’s been doing amazing, sales can have drastic swings from month-to-month. A separate app can follow its own trends, smoothing out the curve.

That all said, market analysis and spreadsheets assume you’re replicating what’s already there. We weren’t building the typical long exposure app, we were building an app for everyone. If we succeed, we’ll cast a wider net— people who were not in the market for a long exposure app.

How Will Current Users Respond?

Whether you hide a new feature behind an In-App-Purchase or release an entirely new app, put yourself in the shoes of someone who already paid money. Would a reasonable person expect this feature in a free update?

We felt confident our users would understand because, believe or not, many have asked for a tip jar. That’s right, people are asking to give us more money.

Every time you do something right for the user, you put a deposit in the “goodwill” bank. Two years of free Halide updates make for an impressive balance. Rather than cash-in that good will via tip-jar, we thought we’d transfer the goodwill toward a new app. If they’re happy, we’ll make back the goodwill with interest.

So we said, “Let’s build another app.”

The Result

Six months later, we shipped 1.0. While we had a few questions as to why it was a new app instead of a new feature, the vast majority of the responses have been incredibly positive. We topped the App Store charts for almost a week straight! Based on Apple Analytics— and tagged photos— Spectre is building an excited user base that might rival Halide.

To Be Continued…

In our next part, Sebastiaan will explain the design process, and how we went from a laundry list of features to an intuitive UI.