We all know that when someone submits a support request,we should get back to them as soon as possible, but what about the support requests that take more than a few minutes to resolve? If a problem isn’t resolved on the day that a ticket is received, let customers know where you are with the issue, that you’re working on it, and how much longer they can expect for it to take. They’ll appreciate and respect you for it. As a customer, it’s terrible to take the time to write in about a problem and not know if you’re going to get a response in a timely fashion, or at all. Put yourself in the customer’s shoes and you’ll know what to do.
When Are My Sites Up launched in 2009, we didn’t have many options on the Settings page. Over time, as we added more and more features, we started to outgrow the original layout, which was a few fields that just contained email address and a few checkboxes to turn some options on and off, and a field for the user’s SMS number. Since 2009, we added
- The ability to change credit card info
- iOS Push Notifications
- Android Push Notifications
- Voice Calls
- International SMS
- The ability to buy SMS and voice call credits
- RSS Feeds
- User Management
- Contact information for invoices
Each time we added something else to the page, I noticed that it was getting longer and longer, and that eventually the straw would break the camel’s back, but there was always something more important, or more pressing. Today a user asked to get a copy of their past invoice, and I decided to add that to the site so that users can generate their own invoices at will. As I scrolled all the way down the page looking for the best place to add the invoice links, I realized that today was the day that it all had to change. It’s pretty embarrassing that it got to this point.
Today I took the extra 30 minutes to implement a jQuery accordion, and now the page looks much better.
It actually contains more information than it did before (now there’s a list of links to all past invoices in there), but it is much easier to digest, scan and actually use. I’ve already heard from a few users who love the change. I just wish I’d made it sooner.
The moral of the story is: Always make your product better on both the technical and UX sides. Keep tabs on design choices that your feature set has outgrown, and assess your UX periodically to see whether or not things need tweaking. It’s a difficult balance, but your users will love you for it, and be more loyal because it shows that you have a dedication to improving the product over time. The same thing applies to iOS apps: if you continually make small fixes and updates, your users will notice and appreciate them. I’m working on getting better at both.
So you’re a developer who wants to make an iPhone app, but you’re afraid that you’ll spend a bunch of time (and potentially money) building something that no one will actually use. You imagine releasing an app that people will buy on Day 1 as well as Day 361, but you have no idea how to make that happen. Well, today’s your lucky day! With a bit of research and consideration before you begin, you can dramatically increase your chances of making an iOS app that sells like crazy. I’ve had a hand in quite a few successful and not-so-successful iOS apps, and this is some of what I’ve learned.
Throw away your sexy idea
So you’ve thought up this amazing app that does something unique and you just know that once enough people “get” it, it’ll sell like crazy, or that the market is big enough for you to to make money selling anything that you can think up. That’s a huge red flag. While you’re busy thinking of clever apps, such as ones that take the music that you were listening to on your computer and start playing it on your phone, right where you left off, other developers are sitting at the top of the charts selling tons of copies of apps that let people take photos. So, obviously you need to…
Know your marketplace
The App Store is a treasure trove of information that can help you easily decide what to build, because it tells you what people are already buying. Given that at least 400 million iOS devices have been sold, even capturing a fraction of the market of apps that people are actually buying will bring in some good revenue. Look at the top sellers, and build things that fall into those categories. Right now, what I’m seeing a lot of is the following:
- Apps that are a good upgrade to apps that ship with iOS (better calculators, calendars, email clients, cameras, to-do lists, etc), because many people will hit the limits of what the stock apps do and they look for something that does more. Generally, Apple builds apps with a lot of breadth (almost anyone can use them), but not much depth (if people want more than basic features, they need to look elsewhere, and that’s where you come in!).
- Games (everyone plays them, and there are many types. Multiplayer games in particular are some of the best to build because there’s a built-in reason for people to share your app with others.)
- Apps that do one thing that most designer/developer types would hardly ever think to build, because they seem SO simple… like Over, which is making bank right now, but it only does one simple thing: it lets people put pretty text on their photos. Something like Over might be a simple thing to you because you know how to use Photoshop, but it’s like black magic to many other people. Bringing a single useful feature that you take for granted to the masses can be a surprisingly good way to make a successful app.
Release early, release often
Many of the best iPhone apps are the ones that do one thing well. They let you get in, quickly perform a task, and get on with your life. With that mind, make an app that is polished, but only does one thing. Don’t throw a bunch of features into an app that you haven’t gotten into the market yet. When it launches and starts selling well, you’ll have a lot more confidence in spending the time/money to add features, and you can see how people are using it and factor that into your decision making.
It’s good to add features over time for another reason: When you release a new version, your app appears in your customer’s app updates list, which keeps your app top-of-mind.
Have a great icon
It’s possible to skimp on design for your icon and be successful, but you greatly increase your chances of success if your app has a great icon. For an iOS app, your icon is a huge part of your brand, because there’s a huge version of it on your App Store pages, it’s one of the first things that a potential customer sees, and it’s the thing that they tap on their home screen to start your app. Make the rest of your app great as well, but don’t skimp on your icon. There are tons of great icon designers on Dribbble, and that’s a great place to start. You can get great icons made for as low as $300.
So after reading all of that, I bet you’re a lot more confident about making an iOS app that will sell, sell, sell, and you’re ready to go and make the next blockbuster!
Sorry I’ve fallen off slightly in my posting here lately. I’ve been busy launching a new product: Stunning. It’s an app that picks up where Stripe leaves off and adds some useful features that any developer who uses Stripe may find useful. As an early adopter of Stripe, I had to write a lot of code when I first started integrating my apps, and I thought it’d be useful to bring the features that I wrote to all Stripe developers.
There are always a bunch of pitfalls when launching an app, and I ran into a bunch yesterday. For instance, when you are running a beta, you need to not only build forms to let new users sign up for accounts, you have to build forms for beta users to upgrade their current accounts, and there are things that you can’t really test for until you get things on your real server, so I spent a few hours hunting last minute bugs and squashing them.
On a related note, I found out last night that Linode support is AWESOME. I realized around 3AM that I needed another IP address for the Stunning server, and I had to open a ticket to get extra IP addresses enabled in my account. Linode support wrote back and forth just about as quickly as I could reply. Super awesome, because it meant that I could launch Stunning as I planned instead of waiting for someone to get back to me.
So, back to Stunning:
Its main features are:
Dunning – It sends emails out when a customer’s credit card is about to expire with links to update their billing info, so that you don’t lose revenue and they don’t lose access to your service.
Receipts – Stripe doesn’t do receipts, but people always want to get receipts when they are charged. Stunning makes it super simple to set that up.
Push Notifications – on iOS, you can get push notifications for important events in your Stripe account, like when you get paid, when someone changes their plan, when someone new signs up, and more.
It can also send emails out when you refund a customer, when an account is cancelled due to non-payment, when a trial is about to expire, and for confirmation, and when someone changes their plan.
I think it’s a pretty awesome toolkit and I hope it proves useful to developers of all sorts. I’ve already gotten a few emails that seem to indicate that it’s super useful for some!
I also set up a domain to help people who are specifically looking for help with receipts for Stripe and searching Google for it. Receipts for Stripe.
Lots of entrepreneurially minded blogs talk about their successes and how they happened. Not many people want to talk about failure, or even just those projects that don’t grow but still refuse to die. Every successful business person I know has had at least one failed product, and usually a small string of failures that lead to success. The trick is to learn from your failures, figure out why they failed, and to try to do better at the things that you did badly the last time. Always be learning. I’ve seen a lot of people write lately that if you aren’t shipping, you’re dead. I don’t really believe that, but I do believe that if you aren’t learning, you definitely are. Things will pass you by so quickly and you’ll have a terrible chance of succeeding if you aren’t constantly learning and trying to do better.
So on to the first web app I ever made: Hngry. Hngry was the first app I ever wrote in Ruby on Rails (I literally wrote it as I read the first version of Agile Web Development With Rails), and I was super proud of what I’ve made. I got Louie Mantia (total rockstar these days, but back then he was just a young designer with a lot of talent) to design some icons for me, and I launched it. I built it because at the time I was in college, and my girlfriend and I ate out a lot and always had the same conversation: Where are we going to eat tonight? And, what are we going to eat there?
It was a web app that used the Yahoo Local API to let you search for restaurants in your area and add them to your list. You could browse metropolitan areas and see popular restaurants in that area. Each restaurant had a rating and users could review it, see maps of the restaurant’s location (using the Google Maps API), and eventually even add menu items/photos.
I’m pretty sure there was a tag cloud or two in there as well, because it was right in the middle of the big Web 2.0 movement. There were Hngry widgets for PC and Mac. I was super excited about it, and I thought it was great. A few people told me they liked it and that it was useful to them. Then I saw this blog post: http://www.disambiguity.com/hngry-not-that-hungry/ which ruined my week, and which I still can’t get out of my mind to this day. She basically panned the whole app, calling it things like “fundamentally flawed”, “obviously hasn’t had the advantage of any kind of designer, interface, graphic or otherwise”, (little did she know that I’d actually paid someone to do the icons, although I must say I wasn’t and still am not the best at web design), and even called it a “wasted effort”. At the time, it was actually moderately successful (it had a few thousand users), which made her comments even more confusing to me.
I took it super personally. I spent all of this time building the app, working hard on something I thought was awesome and useful (because I’d heard/read over and over again that you were supposed to build things for yourself first, because lots of other people have the same problems as you), and who was this person to just trash my first real web project? Who did she think she was? Why did she pick such a rude way to go about saying what she said?
Eventually I (mostly) got over it, and I added some of the things that she was talking about, although she never came back to the product, as far as I know.
Most of her issues with Hngry stemmed from the fact that in building the app for myself, I’d forgotten about the other users and their problems, and why they’d even want to use Hngry at all instead of whatever they were already doing. Sometimes your biggest competitor isn’t another app, it’s people who are comfortable using “broken” solutions to their problems. Speaking of that, at one point, I decided that the way that Hngry would make money would be by charging restaurants to be able to customize their pages, add additional information, like specials and coupons, and have a nice home for their restaurants on the internet. This was 2006, and lots of restaurants didn’t even have web presences at all, so I figured that it’d be an easy sell. I even joined our state’s restaurant association in the hopes that I could talk to restaurant owners personally, get them on board, and work from there. Well, the first part worked. I met and talked to a lot of restaurant owners, and they were nice enough. However, they didn’t really see a need for Hngry (even though they thought it was a neat idea), and not one restaurant owner ever paid me for a custom Hngry page, which was really sad because I had printed up thousands of cards that they could use to promote their custom Hngry pages.
I couldn’t even bear to throw out the boxes of cards until we moved for the second time 2 years ago and I decided I had to let it go. Lessons learned: Don’t print up promotional material for something you haven’t even sold yet, and don’t pay much attention to people who just tell you something is cool. Get a product out there and see if they buy it. That’ll tell you all you need to know.
Hngry wasn’t a total failure, though. One day I decided to add menus to the site, and I googled for companies that were making menus available online. The one that stuck out was Campusfood.com, which eventually ended up becoming DotMenu, which was bought recently by GrubHub. After talking to me for awhile over email/phone, those guys decided to fly me out to New York to talk to me about working together and pick my brain, and after I gave a presentation to their CEO, President and a few other people over there, we worked together for a few years and integrated over 200,000 menus into Hngry, with online ordering through them. I even got a job offer (which I ended up turning down, mostly because their web stack was ASP, and I already knew that no matter how much I liked the people or projects, I would not want to write ASP as my full time job). We still worked together for years after that, though eventually I ended up shutting the first version of Hngry down after Urbanspoon showed up and did a lot of what Hngry did, but better. Pretty awesome outcome for a “failed” first project, though.
So what else did I learn? I learned how to write web apps in Rails. I learned how to connect to APIs. I learned how to set up a web server. I learned how to talk to CEOs. I learned that building something that you think is awesome does not necessarily mean that it will be successful. If you build it, they might not come. I learned that even though some people might be harsh in their opinion of your app, you have to listen to their actual points and decide if they are valid, and try to ignore the meanness. Also, it taught me to listen to people who actually use my apps.
I used some of these lessons down the road when I relaunched Hngry as an iPhone app. More on that later.
I’ve been there. Maybe you’ve been there too. Maybe you’re there now. It’s the place where you just *know* that you’re super awesome at what you do. You don’t need any help. Help would make you weak and show that you aren’t actually the as awesome as you think you are, right? Winning with the help of others isn’t really winning, is it? Wrong, wrong! In all cases I can think of, it’s the only way to win.
For instance, when you see Michael Phelps win gold, it’s not because he did it on his own. His parents, friends, siblings, coaches, training partners and many more people helped him to get where he was when he broke all of those records. Even in your own life now, I’m sure you can see parallels, even if you’re working on things “by yourself”. If you have a family that supports you in what you do and who possibly puts a roof over your head while you are working, they’re helping you. If you have a significant other who puts up with you working odd hours of the night to finish a project, or sitting on the couch watching TV with your laptop on your lap from time to time, you aren’t doing things alone. I say that to say this: When I look back on all of the times in my life when I thought I won, it’s because a lot of other people either helped or made sacrifices (or both) to help get me where I am today. That’s one of the reasons why I’m writing this blog now, to help to pass on some things that I know. Stop reading this and go thank some of those people for putting up with you.
Now let’s take this one step closer to the business world: If you’re reading this blog, you’re probably a pretty awesome person. You’re probably really good at what you do. Since you’re really good at what you do, you know that if you’re going to be really good at something, you’ll probably be really bad at a lot of other things. You might be passable at other things, and even good at a few, but you’re not going to be really good at a lot of things. When I say really good here, I mean top of your field, undeniably good, the kind of good where even your enemies have to compliment you as they curse your name while shaking clenched fists at the sky. Surround yourself with the other people that it’ll take to make a complete team. I didn’t build Are My Sites Up alone. I wrote the back-end and my friend Chris did the design/front-end development. Would it still have launched if it was just me? Maybe. Would it have been half as good or successful? Highly doubtful. If you’re really good at back-end development, you might not be so good at front-end development/design. Find someone who is. Make friends. Conquer the world together. You at least need those skills in the team for the ol’ one-two punch. And you’ll need someone who is good at business, or one (or both of you) will have to learn to dig into that aspect of things as well for you to be really successful. That part, I’m still learning, although I have found that the first step is just getting your ideas and products out there and working. If your product is good, you will get offers for partnerships, ideas for ways that you can grow your product, new markets for your product that you might not have considered or even known of, and much more. The best way to market yourself that I know of is to have a product so useful that people have to pay attention.
Right now is an interesting time for developers, though. If you are good at back-end work and have a good eye for front-end design, you can get far by standing on the backs of giants and starting with a design built on Bootstrap or Foundation. I did that recently with Stunning, and it allowed me to get the actual app in front of potential customers in a couple of weeks instead of having to wait for all of the design work to be done. Now I’m getting a really nice icon made (by a designer that I trust and have worked with before) and I’m tweaking the design based on feedback from real beta users. It feels a lot better to be working on something that people are actually using and to build what they actually need than to be working on something secretly, only to find out that no one actually wants what you’ve built. More on that later.