From the desk of CabelPortland, Oregon 97205

January 5th, 2015

For the last year or so, Panic was typically heads-down quiet. But as 2014 drew to a close, our furious typing came to fruition and a whole lot of magic happened. It felt great.

If you’ll indulge me, I’d like to write a little more about our business than we normally do. Why not?

Successes

So many wonderful things shipped in 2014:

Transmit iOS (1.0, 1.0.1, 1.0.2, 1.1, 1.1.1, and 1.1.2)Yes, a brand new iOS app from Panic! This extremely capable iOS file transfer client is an idea we’d considered in the past but didn’t green-light until Sharing Extensions were formally announced at WWDC — bringing file transfer to other iOS apps made this idea sing. It helps that our engine had already been ported (thanks to Diet Coda), but one interesting note: from start to finish this was a three-month project. I think that’s a tremendous accomplishment given its meaty features and beautiful fit and finish. Feedback has been spectacular — from MacStories to MacUser, people love it.

Prompt 2 (2.0, 2.0.1, 2.0.2, and 2.0.3)A very welcome update to our popular SSH client for iOS at last went out the door. With a new engineer focused on this project full-time, we updated the UI, added some much-requested new features, and brought Prompt into the modern era. Plus, it was the perfect candidate to help test and implement Panic Sync.

Coda 2.5 (2.5 and 2.5.1)A monumental — and free — update to our already-monumental OS X web coding app. It took too long to get out the door — I’ll say it’s no fault of the team, but rather a series of difficult decisions (that I’ll detail below) that meant a lot of wasted time followed by writing our own sync server. But we added huge features (local indexer! indentation guides! plugin improvements!) and cleaned up the UI and I think we ultimately delivered on the original promise of Coda 2.0 in a way I think our Coda customers have deeply appreciated.

Panic SyncAfter lots of discussion, we decided the only way to provide a truly great sync experience for our customers was to control both sides of the equation — the server and the client. So, after a ton of research into what was available, we wrote our own. After successfully launching Panic Sync service, and its web interface, we’ve been adding it to all of our apps, with more to come. At last count, there were over 400,000 sites being synced with Panic Sync — and nearly zero downtime. I’m especially proud of the transparency on our Panic Sync webpage — no solution can be perfect or fully secure, so we thought it was best to put all of our cards on the table.

MiscEach of the app launches has meant we’ve also been continuously updating our webpages and UI to our latest style and palette, and that always feels good. We also created PunchClock, our cool open-source iBeacon project. We discontinued Unisonto free up resources for the future, a difficult decision but one that most people seemed to understand. And 2014 was also the year that our video game project, Firewatch, funded by us and built by a great team in San Francisco, started full-scale production. We are extremely excited about this.

Challenges

Not everything was super easy, of course. Here are some standout difficulties.

iOS Upgrades

We decided to make Prompt 2 a brand-new app. Amazingly, customer reaction was surprisingly neutral or positive — I was prepared for a 6-foot shitstorm and there was none. Why did we charge? The market for Prompt is small, and its revenue would not wholly cover the cost of infinite future development. The only way we could afford to do a 2.0 was to charge for it. The first problem: we have no idea who bought the app, so how do we let them know? Fortunately, we planned ahead, and added our home-grown Soapbox code to all of our apps, including Prompt 1. It allows us to push out a custom web page, one time, to customers on launch, based on a variety of criteria. So we were able to alert Prompt 1 owners that Prompt 2 exists. But still, we’re sure many people dismissed it immediately, and those people will never know they’re stuck with a version of Prompt that will never be updated. There’s also the matter of when it’s too soon to charge for a new version — as we prepare some new iOS updates, we’re still debating if we want to charge for those as well. My gut says no, that full price every single time is rough, but then we’re setting the precedent that maybe not all of our major upgrades are paid upgrades, which we’ve been pretty consistent about in the past. If we could offer traditional discounted upgrades via the App Store, this paragraph wouldn’t exist. This is one area where the App Store feels like one of those novelty peanut cans with the snake inside.

Leaving the Mac App Store

We’ve well-documented our struggles with Coda 2.5, Sandboxing, and the Mac App Store — first a warning in 2012, then this year when 2.5 shipped. Apple tried their best but realistically speaking we simply would have had to cut numerous Coda features, like the Terminal, MySQL local access, editing files as root, and more. To be honest, I was pretty nervous to be pulling Coda from the Mac App Store. But when we finally did it, I felt an incredible, almost indescribable sense of relief — mostly because as we began to wrap up bug fix releases, we were able to immediately post them to our customers within minutes of qualifying them. My god. That’s how it should be. There’s just no other way to put it — that’s how you treat your customers well, by reacting quickly and having total control over your destiny. To not be beholden to someone else to do our job feels just fantastic. (Also to not pay someone 30% in exchange for frequent stress is a fine deal.)

So, how’d it go? After running the numbers, it looks like Coda’s sales have not suffered significantly since leaving the Mac App Store.

Coda was removed from the Mac App Store in mid-October, at the same time version 2.5 was released. Since new releases always generate a short-term sales spike and we wanted the numbers to be fairly representative of “typical sales”, we looked at one month on either side — September and November.

The results were interesting. We sold a couple hundred fewer units of Coda post-App Store removal, but revenue from it went up by about 44%.

Now, two explanations for that: in addition to keeping the 30% that would have normally gone to Apple, we also returned Coda from its sale price ($79) to its regular price ($99) alongside the release of 2.5. Even if those factors hadn’t been in play, though, I don’t think the decline in Coda revenue would have been as dramatic as we originally feared it might be.

Of course we have it easy — it’s an established app with a dedicated customer base. If Coda did not already exist or Panic was not well-known, ignoring the Mac App Store would’ve been a much harder decision with possibly larger ramifications.

App Review

The last couple of months of 2014 got classically “exciting” as Transmit iOS was suddenly flagged by the App Review team for a violation — a well-documented situation, both on our blog, and sites like Daring Fireball and MacStories. Thanks almost exclusively to these articles, we very quickly got a very nice call from a contact at Apple, and the situation reversed almost immediately. Everything ended up just fine.

But I can’t comfortably say “the system worked”. It’s still an awful and nerve-wracking feeling to know that, at any minute, we could get thrown into a quagmire of e-mails, phone calls, code removal, and sadness, just by trying to ship something cool.

There’s a little more history here than I’m letting on. We had a very long, very torturous situation with Status Board almost being pulled that we’ve never written up out of sensitivity to our relationship with Apple. I only mention it here because it proves that it is possible to fix these awkward rejection situations without Apple suffering negative PR in the public eye — we did that “offline”. But it took an absolutely massive amount of mental energy and time to work through — positively Sisyphean. I would never want to do it again — I’ve run out of patience, I guess. I can say for certain that the “bad PR” version of the app dispute process is monumentally more effective. Which is a shame.

The ultimate irony, though, is that the press, and the pulling, totally temporarily bolstered Transmit iOS’s sales. It probably introduced the app to a lot of people for the first time. Here’s our sales chart… guess where the news hit?

When these things happen, the hardest part for me is knowing that Apple has a whole lot of good people we admire doing great work that we are inspired by, and that they are often overshadowed by teams and forces beyond their control. It must be infuriating.

Low iOS Revenue

This is the biggest problem we’ve been grappling with all year: we simply don’t make enough money from our iOS apps. We’re building apps that are, if I may say so, world-class and desktop-quality. They are packed with features, they look stunning, we offer excellent support for them, and development is constant. I’m deeply proud of our iOS apps. But… they’re hard to justify working on.

Here’s a way to visualize the situation. First up is a sample look at Units Sold for the month of November 2014:

Wow! 51% of our unit sales came from iOS apps! That’s great!

But now look at this revenue chart for the same month…

Despite selling more than half of our total units, iOS represents just 17% of our total revenue.

There are a few things at work here:

1. We’re not charging enough for our iOS apps. Or Mac users are simply willing to pay more for apps. Or both.
2. We’re not getting the word out well enough about our iOS apps.
3. The type of software we make just isn’t as compelling to iOS users as it is to Mac users. Our professional tools are geared for a type of user that simply might not exist on the iPad — admins and coders. We might have misjudged that market.

It’s really hard to say for sure. One thing is for certain: we are more likely to increase the price of our iOS software over time in an effort to make it make sense. And we’re less likely to tackle any huge new iOS projects until we get this figured out.

Next

We generally don’t like to talk about future plans because it almost inevitably comes back to haunt us in some way. But I can confirm at least two things that will happen in 2015: a significant update to Diet Coda that will overhaul the UI, and the brand new Status Board 2 which adds fantastic features and is already entering beta. Also, Panic Sync will be added to Transmit for Mac in some form. Beyond that, we’ll have to see…

Process

A handful of changes:

We formally moved onto Slack for team communication. We had nothing like this before, just e-mail. It’s been a huge boost for us, mostly because it keeps everybody on the same page a lot more efficiently, and it’s really good at searching. It can be overwhelming to keep on top of, but the good far outweighs the bad. I basically don’t get much e-mail anymore.

We migrated our website into Git, using Vagrant and VirtualBox to allow each web developer here to run a virtualized version of the site on their desktop machine. It’s been great.

All of our other code projects began migrating into Git and GitLab. This was hard — it’s a lot of change and years of habits — but we’re hoping it will be worth it down the road.

QA has become a lot more formalized thanks to some heroic efforts.

We also started to establish the idea that there are two tracks of Panic Projects: evergreens and seedlings. We want to give constant attention to the apps that people love — and the apps that bring in good money. At the same time we want to continuously experiment with new ideas, some that might succeed and some that may never see the light of day. So far, this is actually working, and it’s exciting. (The only challenge with this system is giving a chance for the evergreen engineers to work on seedling projects — their extensive knowledge of critical apps makes it hard to ‘remove’ them. We’ve gotta work on that for 2015.)

Business

Panic is a multi-million dollar business that has turned a profit for 17 years straight.

It just hit me, typing those words, that that’s a pretty insane thing to be able to say. (And, sure, we barely qualify). Believe me, I know it won’t last forever — but wow, what a kind of crazy deal.

If you’re curious about some business stuff, our setup couldn’t be more cut-and-dry. We still have no investors or debt. The overwhelming majority of our revenue goes to employee salaries and benefits, which is just the way we want it. Then there’s our rent, our internet, some donuts and chips, etc. Anything left over goes into the magical Panic Savings Account for future projects or emergencies — we’ve always felt it was important to have some wiggle room for who-knows-what. (In the past we’ve actually reduced that warchest by simply distributing it to employees as a bonus.) We also continue to operate on standard office hours, avoiding weekends and crunchtimes with ferocious overprotectiveness, for better or worse. Maybe the most controversial thing we have is an open office, but since we have no sales or marketing teams things are usually library-quiet.

Onward

It’s been a long time since Steve and I started writing apps in our apartment — fifty lifetimes in computer years.

But the story of Panic is not about Steve and I anymore. These days, while both of us constantly dig in all sorts of trenches, more often we’re just the loud (well, I’m loud) backseat drivers — backseat drivers that often unfairly get all the glory. Let me be clear: Panic’s true asset, the thing I’m most proud of building, is the incredible team of 20 people who truly make everything happen, people who design and create these great things as a team, people who aren’t comfortable creating anything less than excellence, people I actually like.

Stepping back, of course, we’d have zero employees if it wasn’t for you — the person who buys our software and supports our work. When I’d play NES games as a kid I always thought it was corny when, at the end of the credits, the game would say “Special thanks to: you!!“. But now I get it. This is not a joke: without you we don’t exist.

From the desk of CabelPortland, Oregon 97205

December 8th, 2014

UPDATE 12/11/14:After a considerate conversation with Apple, Transmit iOS 1.1.2 has been released with restored “Send To” functionality.

While the process feels less-than-perfect, this resolution is a nice reminder that, just as we thought, there are good people at Apple who will push hard to do the right thing. We hope you enjoy Transmit iOS 1.1.2.

Also, at Apple’s request, we had to remove the ability to “Send” files to other services, including iCloud Drive.

In short, we’re told that while Transmit iOS can download content from iCloud Drive, we cannot upload content to iCloud Drive unless the content was created in the app itself. Apple says this use would violate 2.23 — “Apps must follow the iOS Data Storage Guidelines or they will be rejected” — but oddly that page says nothing about iCloud Drive or appropriate uses for iCloud Drive.

If the issue is just iCloud Drive, why did we remove the other destinations? We had no choice. iCloud Drive exists in this sheet:

The above sheet is 100% controlled by iOS — we can’t touch it. Since we can’t touch the sheet, we can’t remove just iCloud Drive from the sheet, so we have to remove the whole sheet.

Our seriously sincere apologies to everyone who used or purchased Transmit iOS with this feature.

There are good people working at Apple who will read this, be frustrated, and hopefully try to fix the situation. Hopefully, we can return this functionality to Transmit iOS in some form, someday. We’ll let you know.

UPDATE 12/11/14:After a considerate conversation with Apple, Transmit iOS 1.1.2 has been released with restored “Send To” functionality.

From the desk of CabelPortland, Oregon 97205

November 6th, 2014

Unison — our excellent OS X app for accessing Usenet Newsgroups and the many wonders and mysteries contained within — has reached the end of its road after years of faithful service.

First, a brand-new Unison 2.2.

Unison’s end is bittersweet. The market for a Usenet client in 2014 isn’t exactly huge. But if you know Panic, you know we do our very best to never drop things awkwardly — we like to leave our apps in a good place for our (very) valued users.

So we’re excited to release a nice, final update to Unison.

Unison 2.2 adds the #1 feature request for Unison: multi-connection downloads for much faster transfers. It also adds a lot more Retina assets for more beautiful browsing on newer machines, and fixes many little bugs and quirks.

It’s a great update for all Unison fans.

Now free, and unsupported.

While we can no longer work on Unison or offer support for it, the good news is it’s also free. This version of the app will be automatically unlocked for all users, no serial needed.

What about Unison Access?

For now, Unison Access will continue to work just as it does today for all current subscribers. That said, we’re no longer accepting new signups. We figure we’ll migrate people to another service at some point in the future. If that happens, we’ll contact you by e-mail.

Thank you sincerely.

Our deepest thanks to each and every one of you who used, bought, or enjoyed Unison. We really enjoyed making this app and providing it to you. We hope it serves you well into the future!

LINE is an amazingly successful, and free, instant messages + voice + video calls service in Japan and Asia in recent years. You can attach some stamps called LINE Stickers to your chats. It’s a really fun and cute feature. LINEは日本で爆発的に普及しているインスタントメッセージや音声通話、ビデオ通話をスマートフォンや携帯電話、タブレットやパーソナルコンピュータで利用可能にする無料のサービスです。メッセージにスタンプと呼ばれるイラスト画像を貼り付けて送ることができるのが特長です。

Cabel always asks for me — what’s new in Japan? So, I told Japan’s latest news, serveces, persons, fashions, snacks and etc etc. Recently, I had told about LINE, and in June, I introduced the LINE Creators Market — where people can make and sell own stickers — had just started. Also, I introduced popular stickers like Sushiyuki — Sushi motif stickers. Cabel and Steven are surprised, laugh (for a while), and are very much pleased. Cabelはいつもこう尋ねます — いま何が日本で流行ってるの？なので私はその時に流行っていることや面白い人、ニュースなどについて伝えます。ここ最近は日本でのLINE人気について伝えていましたが、今年6月に会ったとき、私はちょうど始まったばかりのLINE Creators Marketについて紹介しました。その中でもお寿司のキャラクター「寿司ゆき」にCabelとStevenは食いつき、しばらく笑い続け、とても気に入ったようでした。

Then Kenichi made a fateful joke — let’s make Panic combination stickers, you guys are the characters!同席していたケンイチがPanicでもスタンプを作ることを提案し、CabelとStevenの創業者コンビをキャラクターにしようと言い出しました。

We offered design of our founder’s stickers to Awayuki-san. She consented to our offer readily! We were super lucky!! Then, the Panic founder’s stickers were completed. 帰国後、私はあわゆきさんに連絡し、CabelとStevenをキャラクターとしたLINEスタンプ製作のお願いをしました。幸運なことに快諾いただき、あわゆきさんテイスト溢れるクールなスタンプができました！

Probably, the characters of this stickers are strange, and confusing, for many people! But they are Panic founders! Our software product icons are also included. Let’s use our stickers for your LINE message with your friends! CabelとSteven、多くの人にとって誰？というのが正直な感想と思いますが、彼らがPanicの創始者 — パニック・ファウンダーズです！所々にPanic製品のアイコンが散りばめられたパニック・ファウンダーズのLINEスタンプで、あなたの気持ちを伝えてみませんか？