Archive › Behind the Scene

Sales Record – 3 Months In

2 weeks after its launch, I disclosed the exact sales number of OhBoard, my $3.99 Chrome whiteboard application. The responses were phenomenal. Questions and comments were floating into my inbox, my Twitter account, and the article itself. Thanks everyone!

Now it’s 3 months after launch, I thought a post with more details will be even cooler, right?

Yup. In this post, I will not only share the sales number, but also traffic number, conversion rates, etc. etc. Just everything that I have the data for. Here you go:

OhBoard has been sold 35 times. The price is $3.99, Google charges $0.3+2% of transaction fee, $0.48 each sales. So I’ve made $122.85 so far.

Numbers of sales in each month:

December: 10
January: 8
February: 9
March: 8 has 5779 visits, 59.62% were from referring sites, 15.33% were from search engines, and 25.05% were from direct traffic.

Top referring sites:

CSSMania (I submitted the site 5 days after the redesign, and that traffic spike had brought me 2 sales directly)

Forrst (I asked for feedback on the marketing site twice) (My personal homepage) (I was named as 10 inspirational entrepreneurs under 21)

Twitter (Social network power!)

Top search engine term:

Chrome app development (I released a cover-it-all tutorial about making your first Chrome Web App, it had ranked on the first page on Chrome app development even since.)

OhBoard’s Chrome Web Store page has 1432 visits, 69.90% were from referring sites (86.81% of those are from, 3.88% were from search engines, and 26.32% were from direct visits.

Calculating from those stats, the conversion rates from to OhBoard’s store listing is 15.04%, and 2.44% of the people actually purchased a copy of OhBoard.

Out of those 35 customers, 21 sent me feedback. Some are through email, some are through Twitter, even one customer asked for my phone number and called me. (Thanks, David!)

My marketing expense has been low, I spent $10 on Fiverr for my Chrome Web App Development Guide SEO, and $15 on Google AdWords.

I am sure you will have some questions in mind, let me just answer them first:

1. Why do you share the numbers if they aren’t that significant?

I embrace transparency. I had a lot of respect to founders that share their revenue numbers, like Balsamiq, Freckle, Bingo Card Creator, jMockup, etc. And I want to do the same. I have nothing to lose for letting the world know how my app is doing, but it can give people a better understanding of how much you can get from Chrome Web Store.

2. I am interested in making Chrome Web Apps, should I do it?

Although my first three months of revenue on Chrome Web Store isn’t that high, but it is beneficial to get in early than get in after the market takesoff (hopefully that will happen). If you want to make an app, try making something that distinguish clearly with normal website, something that aren’t available elsewhere.

If you’ve got this far, awesome! Check this blog regularly because I want to some more stats in the coming months!

Emotional Roller Coaster

OhBoard, my little $3.99 whiteboard software, has been around for 2 months, and I’ve experienced many ups and downs while taking care of the app.

After feeling fascinated from reading Paras’s (founder of Visual Website Optimizer) post about his emotional roller coaster, and from interests on Twitter. I decided to share my own.

Here is what my typical weekday look like:

8AM-3:30PM: School. :-)

3:30PM: On my way home, I will clear as many emails as I can (side-note: I love emails!). If there are 2 negative ones and 2 positive ones, I always make sure I see the good after the bad. So I can maintain a good mood for the remainder of the day.

4:00PM: Arrive home, look at my to-do list on Flow. It is never a good feeling. 1. If the list is full of tasks, this comes up: how can I do all these in 4 hours? I am not superman… 2. If the list is completely empty, this comes up: what am I going to do? Just sit here and waste my time on Twitter?

4:10PM: Time for some marketing. It is never as excited as development, but I can’t make something unbelievably incredibly awesome but nobody knows about it, right? Nevertheless, finding the right people is really hard!

4:20PM: I usually start off by firing some emails to potential customers & bloggers.

4:40PM: Wow, they respond rather quickly. But nevermind, it is a rejection email. They don’t even use Google Chrome. I guess it’s my fault for not knowing what browser they use.

5:10PM: Wala, a guy I never heard of purchase OhBoard and email me saying he is going to recommend OhBoard to his 12 co-workers. Well, that form of marketing is unbeatable.

5:50PM: Let’s start writing something. Sometimes my brain get stuck, and can’t crank out a paragraph on marketing site copy in 20 minutes. Yet sometimes, I can write a whole blog post about getting things done in 20 minutes.

6:30PM: Time to plan for evening’s mini coding session. What am I going to do? Am I going to add a new feature or refine the current feature set? How can I fix the bug I’ve been trying to figure out for days?

7:00PM: Eat dinner and watch Jeopardy. So I can get *smarter*.

7:40PM: Shower time. I think this is best period for creativity. Seriously, 75% of my ideas come straight out of shower. More than half of the development & marketing strategies come straight out of my shower as well, and they usually work better than the ones that are not. Hot water works like magic.

8:00PM: Here comes the fun part: coding. I am embarrassed if I can’t fix that annoying bug, but that’s rarely the case. Usually, I am pretty motivated and crank out few hundred lines of code in 2 hours.

10:00PM: Time to procrastinate a little. Sometimes on Hacker News, where I will click on something entitled “How did I generate $4000 recurring revenue in less than 3 months“; or sometimes on Forrst, where I will some beautifully-made icons and carefully-crafted code.

10:40PM: Get a good night sleep, and always hope I dream about generating $4000 recurring revenue in 3 months.

Do you have this kind of constant-changing feeling too? Let me know!

6 Tips on Getting Things Done Fast

Everyone wants to get things done fast. It has many benefits:

  • Your business can make more money
  • You can get motivated and confident
  • You can impress your friends

Of course, for me, it is about the first two, although having the third one can be handy too. :)

Anyway, over the past month working on OhBoard, I’ve came up and practiced some healthy habits that proved to work well. So to continue my philosophy of sharing everything I learned, I want to talk about six tricks:

1. Plan less

I used to plan very specifically on what I am going to do for the next 3-6 months. It might sound crazy, but once I had all these good ideas for my projects, I just wanted to put it on a to-do list, and assigned each the next available day.

Here’s what usually happened: I couldn’t get what I had planned for the day, and had to push to the next day. When the next day came, I tried to complete my previous tasks. But by the time I got sleepy, I never had a chance to start what was assigned.

So I decided to plan less. I didn’t plan any further than 3 months. For all tasks I needed to accomplish more than 2 weeks from now, I didn’t give specific actions and due dates. I only wanted to be super clear for the upcoming 2 weeks. Because it’s way to hard to predict the future. :)

(As you can in my to-do list on Flow, I had only planned 1 thing for today, 2 things for this week, 3 things for this month, and 5 things for next month.)

2. 25 minutes work, 5 minutes break

I can never sit for more than 1 hour straight in front of my computer. Not only my eyes, my fingers, my back, my shoulders and my feet hurt, my brain hurt even more. After 1 hour of high concentration, I got lost often time on whatever I am doing. That caused slow down in productivity and motivation.

So I tried to pause for about 15 minutes after each working hour. That worked pretty okay, except most tasks either barely took up an hour (miscellaneous things for support & marketing), or took a lot more than an hour (coding & design).

I then decided to cut it down to 25 minutes work time and 5 minutes break time. That showed to work out extremely well for me. During the 5 minutes break time, I could clear my mind and thought about what the next 25 minutes were going to be. At this point, I could plan things in details because the timespan was short. I could usually get all the way down to step-by-step directions. Then I started the work, which could be done pretty fast since I was already clear at what I was going to do.

3. Do not multitask

iPhone multitasking surely boosted up my mobile productivity. But multitasking was almost the entire opposite while I was working on OhBoard.

For any software company, tasks are most likely split into 4 parts: customer service, marketing, design & development. They require entirely different mentalities and different skills. For customer service, you need to be friendly. For marketing, you need to be strategic. For design, you need to be creative. For development, you need to logical.

I found it is extremely difficult and inefficient to work on them at the same time. Being interrupted to answer an email while designing a mockup sucks. Having to fix a bug while working on an article is not good feeling either.

What I eventually did was closing down all applications that aren’t needed for a specific task. Don’t open any of them until I got my task all done. 100% focus.

4. Structure your day

This is more of an extension to my previous tips of omitting multitasking.

I never “worked to death”. I never “burned out” while working. I actually thought my work days were pretty relax, unlike many others who claimed working 10 hours a day, and felt extremely exhausted every night.

Here’s my trick: I broke my work time into chunks. I had regular set time for specific tasks I need to perform every day. For example, I answered all emails during commute (for those who don’t know, I have schools daytime). Then I checked news when I got home ~4PM for 30 minutes. After that, I would start my 25-5 time periods, on I planned for the day.

Although I was trying my best to not break the rules of doing something else that I was not supposed to do, sometimes curiosity could attract me to click on an article (probably with a link-bait title). But as soon as I realized that, I forced myself to come back. And most of the time, the article ended up in Instapaper.

5. Find & Enforce your zone time

If you code, you should know what zone time means. It is a block of time that your (coding) productivity is at the highest point.

I found that my zone time is during weekends, when I had a huge chunk of uninterrupted time. I usually planned large periods of time for feature development on weekends. They were usually Saturday, 2PM to 6PM, 9PM to 1AM, and Sunday, 2PM to 6PM. That was 12 hours a week, which was long enough given my coding speed.

On any other days of the week, I would do anything besides development. Because I also found out miscellaneous tasks could be done more efficiently during short chunks of time. It worked extremely well in my 25-5 schedule. As I mentioned before, 5 minutes of planning, than 25 minutes of doing. They were just perfect for tiny things like editing copy, writing teaser blog post, answering few emails, and live-chatting with few visitors via Olark.

I encourage everyone to experiment for a little bit, find out what works the best at what time, and just use that schedule as much as possible.

6. Do it now

I think you’ve read for long enough. It’s time to apply them. I encourage everyone to practice these 6 habits. And I want to know how it works for others. Let me know in comments or email me at!

If it doesn’t work, feel free to blame at me. :)

Also, if you have more tips that can benefit folks to get things done faster. Shout them aloud in comments!

Goals for 2011

Had 15 minutes to spare, I decided to put up a quick and dirty list of achievements I am going to accomplish with OhBoard in 2011.

  1. Make $2011 in profit.
  2. Add 1 thing that differentiates OhBoard from others, make it the Ah-Ha moment.
  3. Get OhBoard featured on the Web Store.
  4. Write a blog article at least once per week.
  5. Create blog series “Chrome Web Store 101” to help people understand the basics about the Chrome Web Store.
  6. Grow blog subscriber list 100 times as big. Well, it has 6 right now, 600 won’t be too far away. (Subscribe now)
  7. Reach out to customers at least once per 2 month.
  8. Connect with 20 other Chrome web app developers.
  9. Keep ratings up to 4 stars.
  10. Make/Sell OhBoard T-shirts, stickers, etc. :)

PS: From now on, I am writing all my blog posts on OmmWriter. It concentrates me, and leaves all the distraction out.

4 Designs I Made for Image Export

Few hours ago, I released the 1.1 version of OhBoard. This update was exclusively dedicated for a frequent request: save canvas into image. I put a lot of thoughts into the user interface of this feature, because I thought this particularly will be something that people use very often in the future. So, it was crucial to get it right.

My ultimate goal was not only to keep it simple, but make it useful. I did’t want to blow off this great addition by inserting complicated procedures, I rather chose the most convenient route. I’d like to share with you today the direction I started from, the final results I ended up with, and everything in between.

Here’s the initial design:

Note: the overlay is activated when you click the Export button.

What I thought about this design:

  • The overlay mask was too light, I feared potential users will be distracted from what they are supposed to do.
  • The border of the image was also too light. I wasn’t sure if people can realize immediately that’s the image they should save.
  • The explanation text was small for first-time user. They might not directly pay attention and don’t know what to do to actually save the image.

Second iteration:

What I thought about this design:

  • The mask/border color now looked natural and not distracted.
  • The explanation text was now bigger, but I still felt like it needed to be more visually appealing.
  • The cancel button was kind of off-balanced, and lonely on the side.

Third iteration:

What I thought about this design:

  • Adding the highlight was a big difference visually, so the explanation text was all good for now.
  • Didn’t really buy into the dashed border, that still couldn’t show users that’s the image they should save.
  • Took away the whole cancel button and only allowed users to hit esc or click outside of the dialog. But felt like not every user are going to like keyboard shortcut or moving the mouse out of the dialog.

Fourth/Final iteration:

What I thought about this design:

  • Changed back to solid border, but with a darker color. Now it looked like a real image container.
  • Added a link for cancel with a lighter color. And gave a “hit ESC/click on the mask” title which essentially serves as a little tip for users who want advanced controls. It took care both sides of people.
  • Just felt right.

Overall, I think this is a great process. I will continue to make little improvements to the user interface as I use OhBoard even more heavily. And let me know in comments any feedback that you have about the design!

10 Sales in 2 Weeks

It has been 2 weeks since OhBoard’s launch on December 22nd, so I’d love to share some numbers with you guys.

Sales: 10 orders, 0 canceled
Visits to 1140
Visits to Chrome Web Store listing: 343

I actually don’t consider this as a bad score. It is pretty good since Chrome Web Store is still at its super early stage, not that many people had even heard about the Web Store yet.

Lost Decade Games, the developer behind Onslaught! Arena, an arcade style game on Chrome Web Store, was generous enough to share their first week’s results. They made a total of 21 sales in the first week, it was about 4 times better than mine. But their app was launched on day 1 (when all the traffic was coming in), initially featured by the Store (gave more exposure), and more complex to make (a lot of graphic involved). In comparison, OhBoard was launched 2 weeks after the debut of Chrome Web Store, never listed on the homepage, and relatively simple to develop.

Besides, I am battling on the long-term success of OhBoard, with the future debut of Chrome OS and the continuous growth of Chrome in mainstream. I think the sales will get better and better progressively.

Another thing I want to add is I still didn’t put in full force for promotion. I launched the minimal version of OhBoard and exclusively talked about it on Twitter and Forrst, which brought me couple nice sales. Then I went back and started working on a really important feature, image export (I posted a preview last night). There aren’t so many customers right now, so it’s the best time to iterate before many new buyers complain.

In this next couple weeks, I will continue to share my sales record, as well as traffic/conversion numbers.

Why $3.99, Not Free?

Many people asked me on Twitter and via Email, “Why did I price OhBoard at $3.99, not free?”

Instead of replying to each individual repetitively with uncompleted thoughts. I decided to write a detailed post about my thought process behind this decision. So everyone will know the answer now and in the future. Enjoy!

The Free Era in Tech, Not for Me

These days in the tech scene, many things are free. Free is great, mostly for customers. They do not have to pay a dime to use a piece of software, get certain amount of storage, or utilize a chunk of resources.

But ironically, they are made free. Customers were not the main force of the making-everything-free transition. The startups are. They want their products to be free. I’ve heard so many “acquire millions of users first, make money later” and “Q: How do you plan to make money? A: Let’s focus on getting tractions first, revenue isn’t our priority right now. We will worry about it a year later.”

Digging down a bit more, you will find out these companies are the ones either trying to become the next Facebook, Twitter; or trying to be acquired by Google, Yahoo, Microsoft. The founders want a giant exit. They will have to get boatloads of users first, because that’s what big companies (which are their potential parent companies) care about.

The founders of these companies are big thinkers. They are extremely enthusiastic, they are amazingly talented, and they are probably well-connected. They are just downright great people.

But that’s not what my ultimate goal is. I don’t want millions next year.

I am not saying I am not enthusiastic, or I never think big. I do. But realistically, my ability isn’t good enough to achieve that level of success yet. Time, resources, connections, money, schedules are all the things stand in the way. They can’t be changed easily. So would it be better to not think about the billion dollars exit, just build something people love using, charge for it, and offer amazing support?

Revenue from Day 1

Having money coming in from day 1 (even hour 1) is great. I am not greedy, but it proves, in truth, that my product are worth paying. Money is the best metric ever to validate ideas. For free stuff, I don’t know what metric is accurate. Pageviews? Unique visitors? I don’t think so. Because many people will still visit your site even if they hate it. But they won’t pay if they do.

Additionally, I don’t think you can get honest feedback from your free users. You will get a lot of feedback, but they will mostly be “very nice” or “it sucks”, the two extreme ends. And apparently, there is nothing you can do to improve your product unless you asked for clarification. But since they never pay for it, they will probably not answer your question.

On the other side, you can get really great feedback from paying customers. Why? Because they pay for it. They want to get the value that they pay for, and they want the app to be the best. They will provide you actionable suggestions, as well as constructive criticism. These kinds of feedback can get you start thinking in the mindset of your customers.

Let’s say you pay $10/month for hosting service, and you feel like something isn’t quite right. Will you provide a list of what’s not right and how you want it to be, or just throw out a 2-word sentence “You suck”? Obviously, the former. That’s the way they can improve the product for you.

Benefit-Pricing, Not Feature-Pricing

I strongly believe in benefit-pricing over feature-pricing. I think pricing should be based on the value customers gain, not the raw material costs. In the tech world, that can be translated into pricing should be based on how much money the product saves you, not how much work the developer puts in the product.

Let’s take a look at some products I’ve paid for: Coda and WooThemes.

Coda is a powerful text editing tool with functionality like direct FTP, terminal, source control, in-app books, etc. I happily paid $99 for it because what Coda offered had saved me more than hundreds of dollars of purchasing other FTP program, SVN app and book. The FTP also saves me a lot of time. If I can get more done in a day, the outcome (in my case, sales) will be more significant.

WooThemes is a WordPress theme development company that makes gorgeous themes target at individual niche markets. After adding your content, themes are ready-to-go. I used Inspire for It reduces the traditional landing page development from 1 week to 1 day. Those 6 days saved had allowed me to write more blog posts and have more time to plan my marketing strategy.

Less Customers, Better Support

This is a common theory that many people understand – if you have less people to support, you have more time for each one. But I want to extend it for a little bit.

Support doesn’t necessarily mean answering their emails/replying their tweets. I think support is about the communication process with customers, both directly and indirectly.

When you only have 100 people to support, you will have a great chance to reach out with every individual and find out more about your product in their perspectives. And eventually you will have a better look at your product. But when you have 100000 (not unusual for free service), talking to users is nearly possible. Sometimes, company will throw out a long survey, the numbers of responses are usually pretty low, and the results aren’t reflective.

What Does That Mean For OhBoard?

I charge $3.99 because I have no intention to let OhBoard become the next Google acquisition. I want to take OhBoard low and slow. I will make it something you love, something that can save you a little bit of time and money each day. It does not have to be 10% of everybody in the world. If OhBoard can make one thousand people’s day better and more efficient, I am satisfied.

I believe everyone who purchased OhBoard so far think it deserves $3.99, because the value they get from OhBoard is far more than that figure. It potentially replaces their next physical whiteboard, which costs anywhere from $10 to $100. And it also gets their jobs done faster. A simple example: designing a mockup is more realistic on OhBoard. Because the canvas size is exactly the same as their website, things don’t get proportionated.

With that said, because you pay for it, you deserve great support. I don’t want you to feel frustrated when problems happened. I will fix any bugs you encountered with OhBoard, listen to all feedback you have, and ultimately try my best to improve OhBoard based on your need. If you are happy using OhBoard, I am happy.

PS: Thanks everyone who paid $3.99 for OhBoard so far. Maybe you should too.

Fixing Bugs For My First Customer

Yesterday before I released v1.0 of OhBoard, I already conducted a huge amount of testing. But unfortunately, my testing was not perfect. A bug was caught by my first customer Phil Fishbein (Thanks, Phil!), I fixed it immediately, released an update, and Phil was a happier OhBoard user than before. I just want to share a few lessons I learned throughout the process.

When Phil sent me the tweet, I did not freak out. I knew freaking out would make the situation worse. I apologized to Phil and tried to chase down the bug. After 15 minutes, I was be able to find and reproduce the actual problem – the app becomes disabled when the window reopens/refreshes after deleting all documents.

Oops, gotta fix it. I replied instantly to Phil, told him it would be fixed in 30 minutes. Notice I didn’t jump right into Coda and fix the bug, because I wanted to make sure Phil knew exactly what was happening and wouldn’t cancel the purchase. (I am sure he appreciated it as well.)

After half hours, solution hadn’t been found, which meant I blew my promise of fixing it in half hours. I decided to let Phil know I’m on top of it and the update will be available as soon as possible.

Another 30 minutes was passed, I finally found out where the issue was located, changed the code. Yet I didn’t decide to package the app and upload the new version immediately. I felt like more crazy testing was necessary, because Phil would become extremely unsatisfying if this update contains another annoying bug. Luckily after 40 minutes of testing (in ways that you probably never used OhBoard for), no problems found. I shipped the update and told Phil the exact instructions on how to update.

2 lessons taught here:

1. It’s really important to keep your customers in loop. Simply send them a tweet/email every hour or so explaining how the process goes. The more details you give (just tell them what the bug is!), the better they will feel. I am sure they will value your honesty more than your mistake.

2. Try to test the app as stupid as you can after the bug is fixed. Because the changes you’ve made might caused other related issues that are not existed before. You already gave your customers a bad build, they apparently won’t forgive you for one more time.

Hopefully my lessons can turn your angry customers into passionate ones too!