Exploring the connection between business and technology

Lessons learned from writing and launching a WebApp in 23 days

Less than a week ago I launched HabitualApp. Given that my day job is creating webapps this isn’t something I would normally make a big deal of. However this site was different – I wrote it entirely on my own. That meant I had to do:

Concept Design (what is the app, why does it exsit)

Usability Design

Visual Design

Software Design

Styling (writing the css/html)

Programming

Marketing

I’m a big fan of cross functional teams, but the truth is normally there is quite a broad team behind an app, and its rare for one person to be able to do all of the above. To make things even more challenging, I had set myself the target of launching the site by the last day of 2010. That was just 23 days after I initially had the idea!

For a long time I have wanted to create a site, launch it as quickly as possible, and then grow it from there. This is something that not everyone is comfortable with; there are a lot of potential problems with launching a site before it is ready. So working on my own was the best way to have the freedom to do exactly what I wanted to do.

The sitehas been running for 6 days now, and its going pretty well. It has had over 1300 unique visitors, and over 90 users have signed up. It’s time I take a quick look back at what I leaned so far, and what I want to find out next.

Limiting the features let me launch early

The first thing was that writing a web app from scratch in less than 1 month is totally possible. I wasn’t particularly pressed for time, even though I did most of the work in evenings and lunch times (though I did manage a good bit of work during the holidays). The only way I could launch something in such a short time though was to be ruthless at cutting out features.

The login system piggybacks on Facebook, which was a great time saver, as well as giving several added features for free. I had a lot of ideas for features I wanted to add, (and still want to add) but I was pretty ruthless at cutting them down to the smallest set possible. This was necessary as I did the final bit of coding the day before launch (I wanted to have one day to reflect before hitting the big red button)

This was the hardest part. Ideas fell into three basic categories: Ones the app is unusable without, things the app would be dull and boring without, and those which are nice to have. Telling the difference between the last two categories is a difficult to get right and something I suspect I will get better at with time.

One example is that when you create a habit, it posts this to your Facebook account. Clearly the app is usable without this, but I decided to put it in anyway. I decided that the social aspect was an important part of the app, and without this, using the app would feel too much of a solitary experience. The same goes with the list of habits your friends have, which is shown when you log in.

A bit of knowledge on design theory goes a LONG way

I learned that I can do visual design! Ok, the site is not going to win any awards for being pretty, but I don’t think it’s going to end on anyone’s ugly list either. I spent some time teaching myself basic colour theory using sites likes worqx (opposing colours on the colour wheel look good together, etc.) before using an open source colour scheme and getting on with it.

I found it very useful to have a limited set of five colours, and some basic ideas on when to use them made a huge difference. I had three different shades of my main colour, with two highlight colours. I also used some ideas on column spacing as explained in the 960 grid system, which helped keep things feeling balanced.

Watching real users is invaluable

After the first couple of features were working I started getting friends to use the app while I watched. I started with other computer developers, and moved onto less technically skilled friends. At each point I managed to hold my frustration back (“Isn’t it OBVIOUS you click that button!”) instead noting where they were confused about what to do. After each session with a user I would spend some time improving the usability of where they were struggling the most. By the time I launched I was able to show a friend the site, and she could do all the main tasks with no prompting from me.

Design is iterative (both usability and visual design)

After 5 days or so I did the first pass at styling the app. I thought it looked pretty cool, till I looked at it again on day 6. Looking at it with fresh eyes made several things stand out and look ugly. The same was true with the usability of the site. Both designs were changed once or twice in a big way, and had a whole slew of little tweaks. The final design is quite different from the first one, but grew out of it. If I hadn’t actually done the first design, I would not have had the chance to develop it. The fact that design is iterative was new to me. I have often worked with designers who keep changing bits of pieces of the design. Now I have a much better feel for why they do it (of course, even their first drafts are better than anything I can do!)

Driving traffic to the app is harder than I thought

When I announced the app, I posted it on my twitter feed, and on my blog, and sat back hoping to see some people sign up. I figured I had enough followers and subscribers to get at least a few signups. Wrong. No-one signed up. Oops!

So I started pinging people directly, only one person really took the bait (and a few signed up to keep me happy). This was when I realised that getting traffic to the site was going to be harder that I thought. My ideas of just building an app and letting the traffic build up totally on its own was going to fail if no-one at all ever saw it.

I submitted the app to Facebook, which let me push the app out to my Facebook friends. Rather than spamming everyone, I decided to keep it targeted to those people whom I thought would be interested. I had to guess who that would be, so one thing I want to do for next time is get a pre-prepared list of who wants to know about my app launches (You can now sign up to get notified when I launch a new WebApp). This generated maybe three or four more sign-ups. Things were not looking great.

Then I got my first real break. My friend Haje wrote this post on Pixiq, and posted on his twitter account. Haje has quite a large following of photographers (which he earned by writing a lot of good content over several years) and was inspired to use daily habits to help people improve their photography. That provided a wave of users. I was able to get to a computer in time to add a photography habit to the list of recommended habits users see on first log-in, and that is still the most popular habit on the site.

My second break came from Lifehacker. They posted this article on habit forming, which I found via a twitter search on “habit” at the same time as I was told about it by one of the Facebook friends I had sent the app too. A good part of the article is very closely aligned with what my app does, so I didn’t feel at all bad about adding a comment mentioning the main difference and linking to my app. There was some confusion here as my comment didn’t appear at once. Turns out to prevent spammers they manually approve the first comment from each poster. So I had to wait several hours before my comment appeared. I suspect this is common on many popular sites that can generate a lot of traffic.

I was very lucky with both of these breaks; if neither of them had happened my app would be sitting about with nothing to do.

So now that I have a number of users I need to decide on my next steps. Some of them are engaging with the app, some are not. Of those that are, only a few are using it regularly, which is what I would term to be real engagement…

Getting user feedback is hard

When I talk to friends in person, a lot of them have ideas on what to add, and change. But only a few people have contacted me from the site. By email. The number one requested feature so far is to break the close coupling with Facebook. Initially I was worried about this, because I see facebook posts as a good way to let people know about the app. I’m only willing to do this because its also IMHO a very useful feature of the app, however it seems that only 110 or so of my visits came from Facebook, so I expect that to be the next thing I do.

From all of this, I have created a checklist of ideas that I want to take forward into my next app.

Build something quickly, even if it looks bad

Set a launch date in advance. More than anything else, that helped me keep the feature count low

Allow some time for tinkering with it, tweaking the design and the UI based on feedback

Have some better ideas on how to spread word about the app. Luck won’t happen every time

If it is rare for a person to do all that, then here is the app I made in 4 days http://vincier.com/RSS-Archive-Reader/reader.php which let’s you view content of icanhazcheeseburger by monthly. It also takes over the default spacebar functionality to faciliate user with navigation from 1 image to next.

I really like your post, because I also launched a website when I do all myself (google : “Liste Salsa d’Olivier”, about listing salsa events “the right way”).
I had exactly the same experience: code was easy and features reduces, then the design was a bit harder, and the marketing thing was the harder part of the webapp

Visual design can break a website, be it useful or not. People are not used to bad interfaces…

Also, it’s harder for a webapp to get traffic, because it’s difficult to get google traffic : nobody searches you. Typical solutions are: recommandations and facebook posting.
However, I think you could publish anonymously the habit people wants to achieve. you could get some traffic from search engine containing habit keywords.

An idea to promote your webapp : contact people from personal development blog. They really like webapp that helps them achieve their goals.
You can even try to make a partnership to be included in their welcome e-mail when people sign-up to their newsletter.

Also, I want to share some tools I used with you :
– http://www.janrain.com/products/engage lets you replace your facebook login by a generic facebook/google/twitter/openid login. Facebook login is a stopper for me, as I don’t know what will be published on my wall once logged.
– http://www.clicktale.com/ lets you track your users when they browse your webapp : it even replay their mouse moves and clicks ! Really brilliant for feedback !
– http://www.mailchimp.com/ lets you send e-mail campaigns. With an e-mail newletter sent once a month, you can recover lost users

The next step for me was to make business using my website.
Adsense was the obvious choice, but it wasn’t effective at all.
I’m juggling with it for some months and I found a recurring income solution that seems relevant.

It was a pleasure reading your post, keep in touch if you want to exchange tips

[…] to do it in less than 30 days :-). You can read about some of the lessons I learned from that here (Lessons learned from writing and launching a WebApp in 23 days | Wildfalcon) The biggest piece of user feedback I have had so far is to do something to not require users to […]