PodSearch

Under the Radar

264: Scaling Support

 

00:00:00 ◼   ► Welcome to Under the Radar, a show about independent iOS app development.

00:00:04 ◼   ► I'm Marco Arment.

00:00:05 ◼   ► And I'm David Smith.

00:00:06 ◼   ► Under the Radar is usually not longer than 30 minutes, so let's get started.

00:00:10 ◼   ► You've reached quite some impressive milestones recently.

00:00:13 ◼   ► So last episode we talked about your massive updates to Pedometer++, and then in the meantime

00:00:20 ◼   ► you announced that WidgetSmith has had 100 million downloads?

00:00:26 ◼   ► Yes.

00:00:27 ◼   ► So first of all, congratulations on a massive scale,

00:00:32 ◼   ► 'cause that's awesome.

00:00:35 ◼   ► - Thank you.

00:00:35 ◼   ► - And you have earned every bit of your success,

00:00:39 ◼   ► and I'm so happy for you.

00:00:41 ◼   ► And second of all, that is a scale

00:00:46 ◼   ► that I have never experienced, nothing even close to that.

00:00:50 ◼   ► And so I'm wondering how that feels,

00:00:55 ◼   ► how that affects some of the things you do,

00:00:58 ◼   ► and one of the things we wanted to talk about this week

00:01:00 ◼   ► is specifically how you deal with support email, feedback,

00:01:05 ◼   ► that kind of stuff,

00:01:07 ◼   ► like the various support and feedback channels.

00:01:10 ◼   ► When you have a scale that big,

00:01:11 ◼   ► I mean 100 million downloads,

00:01:14 ◼   ► that ends up being quite some number of active users,

00:01:17 ◼   ► quite some number of active installations,

00:01:19 ◼   ► quite some number of even just crash reports

00:01:21 ◼   ► that must be coming in,

00:01:22 ◼   ► all the different weird edge case situations

00:01:25 ◼   ► that you have to run in.

00:01:27 ◼   ► I might have one user of Overcast

00:01:29 ◼   ► in a particular odd combination of conditions

00:01:32 ◼   ► that the app is running in,

00:01:33 ◼   ► whereas you might have a thousand.

00:01:35 ◼   ► So I'm really curious to know,

00:01:37 ◼   ► how do all of your processes have to scale?

00:01:39 ◼   ► Because I would imagine there are not many

00:01:43 ◼   ► hundred million download apps that are run by one person.

00:01:47 ◼   ► I think that's gonna be a very, very small number.

00:01:50 ◼   ► (laughs)

00:01:52 ◼   ► And so this is a problem that most large apps

00:01:56 ◼   ► would have to handle differently

00:01:58 ◼   ► because they have larger staffs

00:01:59 ◼   ► and they might make different choices.

00:02:01 ◼   ► And most small developers wouldn't have this problem

00:02:05 ◼   ► necessarily at your scale.

00:02:07 ◼   ► But the reason I wanna ask is because

00:02:10 ◼   ► even though I think it's fairly unlikely

00:02:13 ◼   ► that I or any given listener out there

00:02:17 ◼   ► would ever have this problem,

00:02:19 ◼   ► there's a lot of value that we can get

00:02:21 ◼   ► from learning how you do things,

00:02:22 ◼   ► because if you get 100 emails on a topic,

00:02:25 ◼   ► and I get 10, well, I still would love to get none.

00:02:29 ◼   ► (laughs)

00:02:31 ◼   ► So even whatever strategies you're using

00:02:34 ◼   ► still apply even to much smaller apps.

00:02:37 ◼   ► And to some degree, you just have a larger testing pool,

00:02:39 ◼   ► and so you're just getting better input,

00:02:41 ◼   ► and better signal, and better data,

00:02:43 ◼   ► but we can still learn a lot of those lessons,

00:02:45 ◼   ► and apply them to our apps as well.

00:02:47 ◼   ► So first of all, again, congratulations,

00:02:50 ◼   ► that's awesome. And second of all, I don't know, where do you want to start here?

00:02:53 ◼   ► Sure. I mean, I think, yeah, I think it's probably the best place to start is to think

00:02:58 ◼   ► of—it's just like, thanks. And I think it's one of these things where it's a

00:03:01 ◼   ► number that I feel some responsibility for, but not total responsibility for. Like, Widget

00:03:07 ◼   ► Smith itself is a very specific situation that caught a particular moment, and while

00:03:13 ◼   ► this is two and a half years on, that it's not just—it is still doing well, but it's—and

00:03:18 ◼   ► feel like more responsible for the last two and a half years than I do for the first like

00:03:22 ◼   ► 25 days where it was like, oh, yeah, this whole other thing. But I think what the lesson

00:03:29 ◼   ► that that has taught me that I think has been kind of more useful and more constructive

00:03:34 ◼   ► is the sense that, a, I think something that I think is really cool is I think when it

00:03:38 ◼   ► first happened when Widget Smith, you know, had its big, you know, moment when iOS 14

00:03:42 ◼   ► launched, and it was going places, I definitely set like had this place where I was like,

00:03:47 ◼   ► this something that an indie developer can still do? I had no reference frame for what

00:03:56 ◼   ► this would look like, for how this would go, for if this was even possible. I had no idea.

00:04:02 ◼   ► In the early days, when it was millions of downloads a day and you're starting to have

00:04:08 ◼   ► this, it just doesn't compute. I've never dealt with anything like this. And I'm just

00:04:13 ◼   ► know, a person had a couple people, you know, like, helping me with with Help Desk at that

00:04:16 ◼   ► point. But it was, you know, kind of this like, well, what do I even, you know, where

00:04:21 ◼   ► does this go? And I think I think the the broader lesson that I think I'm really sort

00:04:24 ◼   ► of pleased about is, you know, two and a half years on from that is I think it is very viable

00:04:31 ◼   ► to do, you know, like, sort of the indie app developer concept that, you know, we talked

00:04:37 ◼   ► about on the show that I think you and I are both very proud to kind of be like the label

00:04:41 ◼   ► that we apply to ourselves, that we're indie app developers, and in our case that means

00:04:45 ◼   ► we're one programmer working on an app. Can that scale to a big project in terms of user

00:04:53 ◼   ► base? And it's like, I have at least one bit of evidence to say yes, it does. That

00:04:59 ◼   ► this isn't the kind of thing that if you decide to go down the indie path, you're

00:05:05 ◼   ► cutting yourself off from broader popularity. Because in order to do that, you have to be

00:05:13 ◼   ► a big company with lots of people and lots of funding and infrastructure and a marketing

00:05:18 ◼   ► team and a support team and a QA team and teams all around. You don't. It's easier

00:05:26 ◼   ► in some ways maybe if you have those things, but that's not essential. That's a choice

00:05:31 ◼   ► you could choose to make. And if at this point, I had, you know, if two and a half years ago,

00:05:35 ◼   ► I had decided that I wanted to go down that road, I definitely could have, you know, I

00:05:38 ◼   ► could have hired a team of engineers, I could have hired a, you know, support staff in,

00:05:43 ◼   ► you know, operations, people, all kinds of things, marketing, like, I could have gone

00:05:46 ◼   ► down that road. But for me, I chose not to, and I chose not to, largely because I like

00:05:54 ◼   ► the indie lifestyle, I like that I'm in control of my time and my attention and where I want

00:05:59 ◼   ► to work and what I want to do, I have control over that. And even if I was the boss of a

00:06:04 ◼   ► bigger company, as soon as you're the boss of other people and you're responsible for

00:06:09 ◼   ► them, suddenly that choice becomes kind of lessened. And you have things that are other

00:06:14 ◼   ► constraints and other things that you have to optimize for, rather than, in some ways,

00:06:19 ◼   ► there's a certain selfishness about the indie developer lifestyle in a positive sense. That

00:06:23 ◼   ► it's the positive kind of selfishness that I'm responsible for myself and my family,

00:06:28 ◼   ► then I can make choices that are best for us rather than being best for a large group

00:06:34 ◼   ► of people. And so I think the first thing I think is just—and I struggled a little

00:06:39 ◼   ► bit with whether I should talk about Widget Smith reaching this milestone. And for a variety

00:06:45 ◼   ► of kind of, you know, sort of, I don't want to be boastful or kind of come across in that

00:06:49 ◼   ► way. That's not my style. But I think that the main thing that ultimately was I think

00:06:54 ◼   ► very grateful for it. And also, I think as a proud indie developer, I wanted to say,

00:07:00 ◼   ► this is possible. That if you as a developer who is trying to go down this road, I want you to have

00:07:08 ◼   ► in your mind that 100 million is kind of the outside of what this looks like, rather than it

00:07:14 ◼   ► being a million. Having a big, broad view on what is possible, I think is a helpful, motivating,

00:07:21 ◼   ► hopefully encouraging thing. And so that's why I wanted to put that out there. But I think it has

00:07:27 ◼   ► definitely been a journey in then understanding, "Well, okay, so the scale is something that is

00:07:34 ◼   ► sort of a reality, but what do I need to change about my workflow and mindset to make that viable?"

00:07:42 ◼   ► Because yes, the way that I ran my business three years ago before this happened wouldn't have

00:07:48 ◼   ► have really scaled to the kind of widgetsmith level that I'm working at now because the

00:07:54 ◼   ► stakes were so much lower, the volume was so much lower. Any kind of in you, because

00:07:58 ◼   ► I think what happens with this kind of volume is any inefficiency or kind of issue with

00:08:06 ◼   ► your workflow or system kind of just gets magnified. Like, you know, if the good things

00:08:10 ◼   ► get magnified, the bad things get magnified. And you kind of have to then realize, "Okay,

00:08:15 ◼   ► this is not going to scale. I need to do something different. I can't expect to respond to every

00:08:19 ◼   ► person who emails me and do a couple back and forth with them. That's just not going to work.

00:08:24 ◼   ► The volume of time in a day that that would take would be astronomical.

00:08:31 ◼   ► And I'm not even sure productive, but I think what you end up with is a lot of these situations where

00:08:38 ◼   ► anything that was kind of a one-to-one or that kind of a scenario very quickly becomes,

00:08:44 ◼   ► it has to be a many-to-one. It has to be kind of find ways to apply leverage into whatever

00:08:51 ◼   ► you're doing so that it can scale, so that it isn't going to take a lot of time, so that it is,

00:08:56 ◼   ► you can do small bits of work that can kind of multiply up. And I think I can talk through a

00:09:02 ◼   ► variety of those, but I think at its fundamental part, it's that sense that if you are planning

00:09:07 ◼   ► for scale in that way, everything you do has to be efficient, and you have to let go of

00:09:13 ◼   ► some amount of control and high touch that you may be able to do in a sustainable way

00:09:21 ◼   ► at a lower scale.

00:09:23 ◼   ► Yeah, that's really interesting. If you think of almost every part of the process,

00:09:31 ◼   ► you'd have to consider that. When I look at stuff, I think of, first of all, the product

00:09:37 ◼   ► That alone, it's like, if I had that large of a user base

00:09:41 ◼   ► and I was by myself, I would be a lot more hesitant

00:09:44 ◼   ► to touch anything.

00:09:46 ◼   ► I would be so scared to change any of the code,

00:09:50 ◼   ► to do anything server-side.

00:09:52 ◼   ► And fortunately, so your setup is,

00:09:56 ◼   ► I think parameter plus plus is also pretty big,

00:10:01 ◼   ► and of course, WidgetSmith is the biggest,

00:10:02 ◼   ► and neither of these really have meaningful

00:10:06 ◼   ► server-side components, right?

00:10:08 ◼   ► - Yes, and I think that is definitely helpful

00:10:10 ◼   ► in that regard, that like, at this kind of scale,

00:10:14 ◼   ► I intentionally don't do any feature that would require

00:10:18 ◼   ► a meaningful server component, because scaling that,

00:10:23 ◼   ► I'm benefiting from the fact that any new user

00:10:27 ◼   ► brings with them the hardware necessary

00:10:30 ◼   ► to support their use.

00:10:31 ◼   ► - Yeah.

00:10:33 ◼   ► - It scales linearly with the number of users,

00:10:36 ◼   ► because, "Oh, new user, well I have a new iPhone."

00:10:39 ◼   ► And it's almost like I had this data center

00:10:41 ◼   ► that every time someone logs in,

00:10:42 ◼   ► a new computer gets plugged in.

00:10:43 ◼   ► And so I don't have to worry about that kind of scaling

00:10:47 ◼   ► and dealing with that in a way

00:10:49 ◼   ► that as soon as you start to centralize anything,

00:10:52 ◼   ► it suddenly becomes a giant problem.

00:10:55 ◼   ► And the only server-side component that I have

00:10:57 ◼   ► is some very basic analytics stuff that I keep,

00:11:00 ◼   ► just to have a sense of what's going on inside the apps.

00:11:02 ◼   ► even with those, I even just made the decision early on that I only have the app report analytics

00:11:10 ◼   ► to the app or to the server. I have a little random number generator and it only reports

00:11:16 ◼   ► the analytics at 1% of the time because 1% of a large number is just as representative

00:11:21 ◼   ► as long as it's a random sample. Even there, I'm running it on this tiny little server

00:11:28 ◼   ► that doesn't even matter because I just scaled that. If that became too much for that

00:11:32 ◼   ► server, I would just change it to like 1,000th of the users or whatever. Because in all these

00:11:39 ◼   ► ways, I can just scale things down. But yeah, it's like the number one rule if you want

00:11:42 ◼   ► an app that is going to scale from a kind of a broad perspective. It's like, don't

00:11:46 ◼   ► anything that touches a server is a bad idea because it's just going to sort of be—that

00:11:52 ◼   ► doesn't scale cheaply. It is possible to scale.

00:11:55 ◼   ► - Sure doesn't.

00:11:56 ◼   ► - It's like Amazon Web Services would love

00:11:58 ◼   ► to take all your money, but as soon as you have

00:12:02 ◼   ► this per user cost, then that scales literally.

00:12:06 ◼   ► That's something that I avoid wherever I possibly can,

00:12:11 ◼   ► and intentionally, anytime I have a feature

00:12:13 ◼   ► that could have a server component,

00:12:16 ◼   ► it's like, you know, maybe not.

00:12:18 ◼   ► Maybe I'll just skip that feature

00:12:19 ◼   ► and do everything I can to do it locally on the device.

00:12:22 ◼   ► And if I can do it locally on the device, great.

00:12:24 ◼   ► If not, I just move on and leave it as an opportunity for someone else.

00:12:29 ◼   ► That is so, so wise.

00:12:31 ◼   ► Painfully, painfully wise.

00:12:37 ◼   ► We are brought to you this episode by Indeed.

00:12:40 ◼   ► If you don't want to be a one-person shop anymore, well, what's better than finding

00:12:43 ◼   ► quality job candidates?

00:12:45 ◼   ► Finding them instantly.

00:12:46 ◼   ► For a powerful hiring partner, you need Indeed.

00:12:49 ◼   ► Indeed is the hiring platform where you can attract, interview, and hire all in one place.

00:12:54 ◼   ► so you don't have to spend hours on multiple job sites

00:12:56 ◼   ► looking for people with just the right skills

00:12:58 ◼   ► when you can do it all with Indeed.

00:13:00 ◼   ► Find top talent fast with Indeed's suite

00:13:03 ◼   ► of powerful hiring tools like Indeed Instant Match,

00:13:05 ◼   ► Assessments, and Virtual Interviews.

00:13:07 ◼   ► And if you hate waiting, Indeed's US data

00:13:09 ◼   ► shows over 80% of Indeed employers find quality candidates

00:13:13 ◼   ► whose resume on Indeed matches their job description

00:13:15 ◼   ► the moment they sponsor a job.

00:13:17 ◼   ► Instant Match really is incredible.

00:13:20 ◼   ► So sponsor a job and boom, Instant Match shows you candidates

00:13:23 ◼   ► whose resumes on Indeed fit your description immediately after you post.

00:13:27 ◼   ► Join more than 3 million businesses worldwide using Indeed to hire great talent fast.

00:13:33 ◼   ► Indeed knows that when you're doing everything for your company, you can't afford to overspend

00:13:39 ◼   ► on hiring.

00:13:40 ◼   ► Visit Indeed.com/undertheradar to start hiring now.

00:13:45 ◼   ► That's Indeed.

00:13:47 ◼   ► ed.com/undertheradar, indeed.com/undertheradar.

00:13:52 ◼   ► Terms and conditions apply.

00:13:54 ◼   ► Cost per application pricing not available for everyone.

00:13:57 ◼   ► Need to hire?

00:13:58 ◼   ► You need Indeed.

00:13:59 ◼   ► Our thanks to Indeed for the support of this show

00:14:01 ◼   ► and all of Relay FM.

00:14:04 ◼   ► - So I think too, the reality of this kind of approach

00:14:08 ◼   ► is then to start to think of other areas

00:14:11 ◼   ► where you could introduce efficiency

00:14:13 ◼   ► or you could kind of create these sort of multiplying

00:14:16 ◼   ► leverage effects. And I think one that I found very helpful with the last pedometer update,

00:14:24 ◼   ► kind of like changing from Widgetsmith into that, which is a lesson I learned from Widgetsmith,

00:14:30 ◼   ► but it's something that I've been in this pedometer++ version 5 update, I've sort of

00:14:34 ◼   ► applied and sort of reaped the benefits of it. And I think that's kind of the broader

00:14:38 ◼   ► lesson why this potentially is hopefully a helpful topic for a broader audience, is like

00:14:42 ◼   ► don't have to be at WidgetSmith scale for that to be something that's useful is I

00:14:47 ◼   ► change the way that I do support to have this funnel shape to it. And this is something

00:14:54 ◼   ► I learned from WidgetSmith was that I want to reduce the number of people who email me

00:15:01 ◼   ► as much as I can because that's the highest cost, that's the least scalable part of

00:15:06 ◼   ► what I do. And so instead, I want to find ways to answer people's questions or deal

00:15:10 ◼   ► with their problems before they get to sending me an email, especially because if you've

00:15:14 ◼   ► done any amount of customer support via email, it's very often very repetitive and very

00:15:20 ◼   ► like there's only a few actual things that people run into that are just the realities

00:15:25 ◼   ► of your app. And so if you can answer those questions, you can hopefully avoid them getting

00:15:31 ◼   ► an email, which is both good for me in terms of it's not an email that I have to respond

00:15:34 ◼   ► to. But I think it's also better for the user because they get an instantaneous answer

00:15:39 ◼   ► to their problem. And so the first thing I did was I started doing dynamic frequently

00:15:47 ◼   ► asked questions inside the apps. And this is just as simple as you can imagine. For

00:15:52 ◼   ► me, I just do it as a website that's just a simple basic HTML page that I put on a web

00:15:58 ◼   ► server and anytime a question is asked more than two or three times, I'll put the answer

00:16:03 ◼   ► to it in the FAQs and I sort it from most frequently asked to least frequently asked

00:16:08 ◼   ► on there in the hopes that when people open this page, that's where they'll see the answer,

00:16:15 ◼   ► they'll get their answer, and they'll be able to move on. And I don't hide the "email

00:16:20 ◼   ► me" link necessarily, but I would say I often put it at the bottom of that list. And

00:16:24 ◼   ► so you have to have looked through the list, at least sort of notionally, in order for

00:16:31 ◼   ► you to get to the place that you could email me, the place that I will expose the email

00:16:35 ◼   ► address. Because I think previously I would have the frequently asked questions link,

00:16:38 ◼   ► right below it in the settings area would be the "email me" link. And people just click the "email

00:16:42 ◼   ► me" link because, sure, why not? That was just not the reality. So putting it behind the frequently

00:16:48 ◼   ► asked questions made a big difference in terms of scale, too, because it meant that way more people

00:16:55 ◼   ► would actually read it or actually find their answer in that. And I think I collected the data

00:17:01 ◼   ► for my pedometer version 5 update. And it was like in the first six days of the launch,

00:17:07 ◼   ► I received 259 emails, but I have some very basic analytics in the frequently asked questions,

00:17:13 ◼   ► and 4,214 people got an answer from the FAQs. I don't know necessarily if it solved their problem,

00:17:20 ◼   ► but that's the kind of order of magnitude we're talking about, which is almost like a 20 times

00:17:26 ◼   ► multiplier there. So 20 times the number of people that got an answer from the FAQs then had to email

00:17:34 ◼   ► me. So that was a huge win and definitely a great place to start in terms of whatever

00:17:39 ◼   ► your current support load is, if you put it behind a frequently asked questions, maybe

00:17:42 ◼   ► you could reduce your load by 20x, which is amazing.

00:17:46 ◼   ► Yeah, that would be game-changing for almost anybody. I mean, even my support load is,

00:17:55 ◼   ► I'm not getting hundreds of emails a day, or even necessarily tens of emails a day,

00:18:02 ◼   ► but to have 20 times fewer of them would be significant.

00:18:07 ◼   ► (laughs)

00:18:08 ◼   ► I might actually respond to more of them

00:18:10 ◼   ► if there were fewer of them, you know?

00:18:13 ◼   ► And this is something like,

00:18:14 ◼   ► and I have a little bit of this in Overcast.

00:18:17 ◼   ► I have the feedback page,

00:18:19 ◼   ► and that is a dynamically loaded HTML thing

00:18:21 ◼   ► shown on a web view, so I can change that server side.

00:18:24 ◼   ► But in practice, I don't put much there,

00:18:27 ◼   ► and I almost never change it after a version's release.

00:18:30 ◼   ► I basically just say, you know, what's new in this version?

00:18:32 ◼   ► And that's it, and I almost never touch them after that.

00:18:35 ◼   ► So I think maybe you are inspiring me to do more

00:18:39 ◼   ► with that kind of thing in the app.

00:18:40 ◼   ► Maybe do some rearrangements too,

00:18:42 ◼   ► of like what I show there and when,

00:18:45 ◼   ► and how I phrase certain things.

00:18:48 ◼   ► 'Cause I would love to, you know,

00:18:49 ◼   ► 'cause it isn't just about minimizing email to you,

00:18:54 ◼   ► it's also about serving your customers better.

00:18:56 ◼   ► You know, 'cause like your customers

00:18:57 ◼   ► don't like having to email you.

00:18:59 ◼   ► I mean some do, some of them get pleasure out of that,

00:19:01 ◼   ► but some of them just want to vent.

00:19:03 ◼   ► But for the most part, if you can solve somebody's problem

00:19:06 ◼   ► in eight seconds via looking at an FAQ page,

00:19:09 ◼   ► instead of having them have to take a couple of minutes

00:19:11 ◼   ► out of their day to try to email you

00:19:13 ◼   ► and then hope for a response and then get all mad

00:19:15 ◼   ► when you don't respond, I have some experience in this area.

00:19:17 ◼   ► You're serving them better if they could just solve

00:19:22 ◼   ► their own problem without emailing you at all.

00:19:24 ◼   ► It's better for everyone, it's better for them,

00:19:25 ◼   ► and it's better for you.

00:19:26 ◼   ► So ideally, step one is ideally the app doesn't need support.

00:19:30 ◼   ► Ideally you build and design things in such a way that people don't have questions,

00:19:35 ◼   ► they can just figure it out.

00:19:37 ◼   ► Next best from that is they can figure it out somehow else in the app like a help or

00:19:42 ◼   ► a FAQ thing without having to email you.

00:19:46 ◼   ► And then the worst step of this is they have to email you.

00:19:50 ◼   ► That's because for all the people who email you, there are multiples of more of them that

00:19:56 ◼   ► that said, "Ah, forget it," and just never solved the problem

00:19:59 ◼   ► because they didn't want to email you,

00:20:01 ◼   ► so they just dropped it on the floor and walked away,

00:20:04 ◼   ► and that makes your numbers worse of your retention metrics.

00:20:07 ◼   ► So ideally, you make ways for people to solve this themselves

00:20:11 ◼   ► in the app because emailing you is a step

00:20:15 ◼   ► that most of your customers don't want to take

00:20:17 ◼   ► and you don't want them taking it.

00:20:19 ◼   ► - Yeah, I think, too, it's that sense of,

00:20:21 ◼   ► I think there was definitely something helpful

00:20:23 ◼   ► in my mindset when I was thinking this through,

00:20:25 ◼   ► it's like, rather than—my goal becomes, how can I help most people in the best way?

00:20:33 ◼   ► I want to get you this answer. And some of these things are—no matter how well you

00:20:38 ◼   ► design an app, there are going to be things that come up because your app has a certain

00:20:43 ◼   ► amount of opinion to it. You're making assumptions or making defaults or structuring things in

00:20:49 ◼   ► a particular way. As soon as you have a user base of any kind of size, you're going to

00:20:54 ◼   ► people with different needs or different preferences or different backgrounds, other apps that

00:20:59 ◼   ► they—what was the last app they used before yours that did something similar? And they're

00:21:03 ◼   ► going to have a mental model that is based on those choices and how that was structured.

00:21:09 ◼   ► That's just the reality. And so it's like the other thing that I think I found recently

00:21:13 ◼   ► is I've been amazed by how many more people are able to get that answer, like to be communicated

00:21:21 ◼   ► to them from video compared to text. For me, I think I come from a—the way my mind works,

00:21:30 ◼   ► I very often prefer to be told rather than shown. I would rather read the manual than

00:21:37 ◼   ► watch a video about how to do something. But the reality—and this is just proved in the same way

00:21:43 ◼   ► in my data—is I see that so many more people are willing to click on a video that's a 60-second

00:21:50 ◼   ► how to do something to answer a question, then would go through the FAQs and try and

00:21:57 ◼   ► read it and find it in there. This is something I started doing in Widgetsmith and now did

00:22:02 ◼   ► in Podometer where I have a bunch of these videos that are just very basic. These aren't

00:22:07 ◼   ► high production. I think initially when I think of video, I think of, "Oh, that's

00:22:11 ◼   ► going to take a long time and be something that's really intense and going to take

00:22:15 ◼   ► this whole process." And it's like, "It really doesn't have to. It could. I could

00:22:18 ◼   ► make these super glossy and fancy, but I have a bunch of videos that are basically, I do

00:22:23 ◼   ► a screen recording in the simulator, and then I do a quick voiceover and kind of some very

00:22:28 ◼   ► basic editing to just kind of tighten up or sometimes I'll make sure that things are aligned

00:22:34 ◼   ► correctly and editing mistakes or issues I have in the demo. But maybe I can do one of

00:22:40 ◼   ► these videos that's a two minute video that it takes me four or five hours to make. It's

00:22:45 ◼   ► not something where there's this massive investment in time necessarily. And these

00:22:50 ◼   ► are kind of almost another 20 times multiplier in terms of people's engagement with them

00:22:57 ◼   ► and interest in viewing them. So in the same numbers that I was saying for Perometer, where

00:23:03 ◼   ► I had 4,000 people read the FAQs, I had 80,000 people watch a video. And now I'm set this

00:23:13 ◼   ► place where it's like 20 times 20, now I'm 400 times multiplier from my email volume

00:23:18 ◼   ► in terms of people I'm able to reach to help to be able to work with. And it was

00:23:24 ◼   ► something that I didn't really think about this—video didn't cross my mind until

00:23:28 ◼   ► it became an issue in Widgetsmith where I just needed ways to communicate better. And

00:23:33 ◼   ► it turns out video is amazing for this, that I can do these quick videos. And it's like

00:23:36 ◼   ► in the same way that I have for doing a dynamically updating FAQ page, I have it set up that I

00:23:43 ◼   ► dynamically add videos to Widgetsmith or Pedometer. It's a little bit more complicated than

00:23:48 ◼   ► just a basic HTML page. It could be a basic HTML page, but I wrap it up a little bit nicer

00:23:53 ◼   ► inside the app just because video playback, I want to give them a nice experience, but

00:23:59 ◼   ► it's just a JSON file that I am hosting on a web server that happens to be driving

00:24:03 ◼   ► the video player. That's been so well received and has such a—the benefit I get from that

00:24:12 ◼   ► is so dramatic that I would highly recommend, you know, it's like, add a basic web page

00:24:17 ◼   ► with FAQs in it. I think it's a great idea. Do a couple of videos for kind of just basic

00:24:21 ◼   ► high-level walkthrough of your apps, and you'd be amazed at how many people will, you know,

00:24:26 ◼   ► go through it, will watch it, and then be happier as a result, you know. So even, like,

00:24:31 ◼   ► I think some of my most popular videos are things that are just like, you know, like

00:24:34 ◼   ► WidgetSmith overview or Pedometer++ overview, and it's just like, in two minutes, let me

00:24:39 ◼   ► just show you at a high level how it works. And it seems to clear up a lot of misconceptions,

00:24:46 ◼   ► exposes people to different features that may be hard for them to discover or know what

00:24:50 ◼   ► to do with otherwise, and it's just been super helpful. And these are super easy to

00:24:54 ◼   ► host now. It's not like it's this big expensive thing that I'm dealing with, even

00:24:57 ◼   ► at scale. There's lots of easy ways to host video that aren't crushingly expensive

00:25:04 ◼   ► in a way that maybe ten years ago hosting video would have been a very complicated,

00:25:09 ◼   ► expensive process. So that's the other thing I would say, highly recommend. It's another

00:25:12 ◼   ► 20 times scaling that you can do for your reducing your support and providing immediate

00:25:17 ◼   ► education to your users.

00:25:19 ◼   ► That's a really great, like I never, I have such like an old school mindset with app development.

00:25:24 ◼   ► Like, yeah, you know, you have built in help, and it's all text. And, you know, maybe,

00:25:28 ◼   ► maybe you have an FAQ, and I think that's it. I would never even thought to do video.

00:25:32 ◼   ► But that like, you know, it's the kind of thing like, you don't think of but then

00:25:36 ◼   ► when somebody like you does it, you're like, "Oh, oh, why didn't I think of that?"

00:25:40 ◼   ► And it makes so much sense, and it's really good to hear that it's that effective, you

00:25:45 ◼   ► know, like I am – and that it's now pretty cheap to host yourself. You don't have to

00:25:49 ◼   ► like embed a YouTube thing or anything. You could put it behind, you know, Cloudflare

00:25:52 ◼   ► or something, or you could just host the file yourself and it's not going to be that expensive,

00:25:55 ◼   ► you know. But, you know, it's like a long time ago on core intuition, Daniel Jockett

00:26:01 ◼   ► said something along the lines of that he does his own support in part because when

00:26:07 ◼   ► all the email and stuff comes to him for his apps over at Red Sweater Software, he sees

00:26:12 ◼   ► that as like a metric to be optimized. And so he feels the pain of answering all those

00:26:17 ◼   ► emails rather than like, you know, shuttling it off to some support answering service.

00:26:21 ◼   ► He feels that pain himself, so that encourages him to design the app in such a way to need

00:26:27 ◼   ► need less support.

00:26:29 ◼   ► And that stuck with me.

00:26:31 ◼   ► He probably said that like eight or 10 years ago.

00:26:34 ◼   ► But it stuck with me, and that's kinda how I've been

00:26:35 ◼   ► doing Overcast this whole time.

00:26:38 ◼   ► You know, 'cause I tried different things with Instapaper.

00:26:40 ◼   ► I had some support services, I didn't really have

00:26:42 ◼   ► great experiences with any of them, frankly.

00:26:45 ◼   ► And so now I'm just like, I just want this app

00:26:48 ◼   ► to not need support.

00:26:50 ◼   ► And I've designed the app as much as I can to do that.

00:26:52 ◼   ► And it sounds like, you know, these strategies you're using

00:26:54 ◼   ► are really taking that into the next level.

00:26:57 ◼   ► Like, you know, just really very well designing an app

00:27:01 ◼   ► to not need support and doing a better and better job

00:27:05 ◼   ► over time because this isn't something that you can

00:27:08 ◼   ► just shuttle off to some answering service

00:27:10 ◼   ► and have good outcomes because again,

00:27:12 ◼   ► like if you shut a little off to some answering service,

00:27:14 ◼   ► then, you know, every one of those support things that,

00:27:17 ◼   ► first of all, you aren't even seeing it anymore,

00:27:19 ◼   ► so you lose some degree of knowledge of what the problems

00:27:22 ◼   ► than your app are, and then all those people

00:27:25 ◼   ► who are not emailing support, they're just having

00:27:27 ◼   ► failures of usage and they're dropping off and everything.

00:27:30 ◼   ► And so it's better for everyone, as I said earlier,

00:27:33 ◼   ► it's better for them and better for you

00:27:36 ◼   ► if your app is designed in such a way

00:27:38 ◼   ► to let people help themselves.

00:27:40 ◼   ► And so I love that you've plowed forward in this area

00:27:44 ◼   ► and broken new ground that a lot of indies like me

00:27:47 ◼   ► who are a little old school in our thinking process

00:27:49 ◼   ► would not have thought of.

00:27:51 ◼   ► And so that's really cool.

00:27:53 ◼   ► And I like, especially I think it's worth calling out

00:27:56 ◼   ► what you said about the video not having to be

00:27:57 ◼   ► really perfect or very high production value

00:27:59 ◼   ► because video is such an endless pit of possible

00:28:04 ◼   ► production value that you could do to make it nicer

00:28:07 ◼   ► and it just gets so complicated and time consuming

00:28:10 ◼   ► and expensive and it's diminishing returns.

00:28:13 ◼   ► And so it helps to know, you know what,

00:28:15 ◼   ► that really doesn't matter that much.

00:28:16 ◼   ► If you just make a screen recording with a quick voiceover,

00:28:18 ◼   ► that's enough and people are being helped

00:28:21 ◼   ► and you're keeping them in your app

00:28:22 ◼   ► and they're doing what they wanna do

00:28:25 ◼   ► and they're not emailing you and they're not falling off.

00:28:26 ◼   ► So that's a success.

00:28:29 ◼   ► - Yeah, and I think the other thing too

00:28:31 ◼   ► probably worth a place to close is the understanding

00:28:33 ◼   ► that I think there is some value

00:28:35 ◼   ► in what Daniel was saying there

00:28:36 ◼   ► about kind of support-driven development

00:28:39 ◼   ► that in terms of optimizing that as a value.

00:28:41 ◼   ► But I think the danger in that,

00:28:42 ◼   ► and this is the thing that I fell into myself often,

00:28:45 ◼   ► is the proportion of people who will email you

00:28:48 ◼   ► is relatively low compared to your actual user base. In my case, I do the math for Perimeter++,

00:28:55 ◼   ► and it's like the number of people who email me is 0.5% of active users. That is not representative

00:29:02 ◼   ► necessarily of the broader use case. Typically, it's going to either end of the spectrum. It's

00:29:07 ◼   ► the people who are very happy or the people who are very unhappy are going to email.

00:29:12 ◼   ► instead of optimizing for that 0.05%,

00:29:17 ◼   ► focus on optimizing for the 99.95%

00:29:20 ◼   ► in the main middle part of the app.

00:29:23 ◼   ► It's like finding places and ways

00:29:25 ◼   ► that we can make their life better

00:29:28 ◼   ► with things like help videos, FAQs,

00:29:30 ◼   ► being thoughtful in our design.

00:29:32 ◼   ► That's where we get the real impact

00:29:34 ◼   ► and the broader thing.

00:29:35 ◼   ► It's like, optimize for that,

00:29:37 ◼   ► and I think you're in a much, much better

00:29:38 ◼   ► and more sustainable place at any scale.

00:29:39 ◼   ► Thanks for listening everybody, and we'll talk to you in two weeks.

00:29:41 ◼   ► Bye.

00:29:42 ◼   ► [ Silence ]