It’s all about traction
A couple weeks ago, I blogged about my commitments and envisioned next steps for KitchenPC. I thought I’d write up a short progress report and detail the road traveled so far, and shed some light on the insights I’ve developed along the way. I’m hoping to share my experiences not only to update my own followers, but also provide a realistic baseline of expectations in a world where the media distorts realism and manufactures this false notion that every startup we’ve ever heard of has been an overnight success. This simply doesn’t happen; more often than not, launching a consumer product is more analogous to lining up two turtles on a line, firing off a starter gun and shouting “GO!”
Which leads me to my first point.
Getting 1,000 Users Is Tough!
With the six-billion+ people that use the Internet, and even the tens of millions of people who frequent cooking sites, it seems like it should be pretty easy to wrangle 1,000 users into at least signing up for a new website. I tried, on purpose, not to overdo it (as I explained my reasoning before,) not wanting to blow my marketing budget and having floods of users sign up, find out the product is a total miss, and never coming back again. Yet, still getting that initial set of a thousand early adopters to model feedback off of is proving rather challenging. I’m trying my very hardest to remain optimistic and capitalizing on every chance I get to gain insight and experience.
First, the initial word got out about KitchenPC through my own Facebook page. This meant the first few signups were friends of mine, or those following KitchenPC through my own Facebook profile (for example, ex-coworkers.) This happened the evening of Wednesday, October 6th and resulted in 9 signups on Wednesday and 14 signups the next day. That Saturday is when I sent out email to the 290 or so people who took the survey, yet Saturday only peaked at an additional 14 signups. Monday was a big day, as the press release was made public. This generated quite a bit of blog and Twitter buzz, however no real media attention. All of the media mentions about KitchenPC were simply a copy of the press release that I wrote myself, no original content was created and I’ve still yet to be contacted by any media outlet that wants to write an article about the site. However, links to the press release were mentioned in dozens of Twitter feeds, some of them with well over 5,000 followers. Though there were several hits on the site, Monday only resulted in 32 new user signups. Since the press release cost $500, that’s over $15 bucks per user! Now I don’t feel quite so bad about spending a dollar per click-through to advertise the survey on Facebook.
Since then, I’ve done no “real” advertising, but a slow trickle of new users has been constant since. There’s been a few spikes here and there, but I’ve been averaging about 5 new users per day. Since I haven’t really been active about promoting the site, I will assume these users find out about the site through word of mouth or running across a random mention of the site online. According to Google Analytics, 63% of users logon to my site by directly typing in the URL. Another 32% reach the site through a referring site. Who are the big referrers? Seattle20.com is at the top, with 50 referrals. One can argue these users probably are interested in checking out the site from an entrepreneur point of view, not to become regular users. Facebook.com is responsible for 18. Third place (at 13), surprisingly enough, is some site called gourmetretailer.com. What’s fascinating about this site is the average user referred by this site will spend 6 minutes and 41 seconds on my site. The average direct user spends only 4 minutes, average seattle20.com user spends 2:41 and the average Facebook user spends barely over a minute. So, apparently users on The Gourmet Retailer (who simply republished my press release and nothing else) really dig my site. This seems like a prime spot to advertise on, however I’ve already checked in to their banner ad prices and they’re several thousand dollars. Not quite ready for that yet. Though I will admit that’s a much better deal than a full page ad in a popular cooking magazine, which go for well over $100,000 for a single issue!
Ok, so as it stands today as I write this blog, I’ve collected 177 user signups (which includes the early alpha users, which I believe were about 20 or so.) Probably not too shabby, though it’s still a long ways off from my desired 1,000. So how do these people behave? Only 51 of these users have ever come back after the initial logon. Thus, the majority of the users check out the site, feign minimal interest, and then don’t come back. There’s only been 10 users (not including myself) who have signed up and logged back on at least 4 times. However, those 4 times seem to have been over the first few days of creating an account, as none of these “active users” have logged on recently.
Over the past 10 days, I have recorded an average of 12.2 logons per day.
Let’s take a look at how people are actually using the site. This is a bit more interesting, as it can provide evidence supporting whether or not I’ve built any sort of useful product, even if it’s not yet well known.
First, the shopping list seems very popular. 29 users currently have an active shopping list on the site. To me this shows people are indeed interested in finding a couple recipes and generating a shopping list based on what they need to buy. At the very least, the feature is easy to use and discoverable.
How many people use the calendar? This is key, as the entire success of the site hinges on the desire for people to plan meals using a calendar. Right now, 22 users have at least one recipe scheduled on their calendar. Out of the 51 users who have ever come back post signup, I don’t think this is too shabby. The site is indeed being used for meal planning!
The Pantry feature is a surprising one. Unlike the shopping list and calendar which provide easy and immediate access from most any page, the pantry is a feature you have to actually go navigate to a separate page to find, and then manually enter ingredients and amounts. However, 20 people have gone through this effort and are using the site to store, on average, 4.3 items in their pantry. I’m pleased by this stat, as a big part of me thought the pantry would be completely useless. I guess there’s a few people who don’t mind managing their inventory on a website. However, we’ll see if this trend starts to “scale.”
The cookbook is another popular feature. 29 users on the site have at least one item added to their cookbook, and 9 users have more than one. This not only indicates a desire to manage personal collections of recipes, it means these users have the intention of returning to the site to access these recipes.
How about my clever little ingredient blacklist feature? Well, it’s a good thing I didn’t spend too much time on this feature as only one user currently has anything added to their blacklist, and that’s a friend of mine who I had talked about the feature with. Absolutely no one has discovered this feature on their own and decided to use it. This might mean the feature is completely useless, or it could also mean that the feature is too buried to be discoverable. Once I have my first thousand users, it would be interested to survey them asking questions like “Do you know about the blacklist feature and how it works” and “Is this a feature you would find useful?”
I also have 9 users who have commented on at least one recipe, which isn’t too bad. It means they’ve either tried out the recipe and decided to share their feedback, or they at least find the recipe interesting enough to warrant the time to commentate on.
Only 16 people have rated recipes, which I find somewhat depressing. Not only is rating recipes made super easy by the recipe viewer, but this means every other user hasn’t received the benefits of a single recipe rating, which enable features like automatic recipe suggestions on the home page and more accurate meal planner results. I think recipe ratings will tend to come over time, as more users use the site to find recipes, cook those recipes, and come back to add comments and rate them.
While these numbers are interesting, I just don’t feel with the number of users I’ve collected so far, that they can really be used to prove or disprove any trend in user behavior, or validate development efforts that will shape the future of KitchenPC.
Ok, so how do I get 1,000 users really?
It’s been nearly 3 weeks and I’m not even close to my goal of 1,000 initial users, which I feel is a required number of early adopters to justify any decisions regarding the next steps of KitchenPC. Development and further coding on the site is literally on hold until this happens. The press release had almost zero effect, emailing everyone I knew didn’t help much, so seriously, what does it take to get 1,000 strangers to use your site? (The was not a rhetorical question, if you know the answer please let me know!)
I’ve employed three strategies, that I’m hoping when combined will help me achieve this goal.
First, I hired a marketing company. Last week, I signed a deal with Jumpstart Marketing to generate some initial publicity for the site. Under this contract, they’ll create a video demonstrating the site features and enticing users to sign up. The video will be published on a newly created KitchenPC YouTube channel, and they’ve guaranteed a minmum of 3,500 YouTube channel subscribers. With any luck, a good chunk of this YouTube traffic will mosey on over to KitchenPC.com to check out the actual product.
Since these guys have a strong background in advertising and customer demographics, hopefully they’ll be able to cater to the types of users I want on my site. Worst case, I’ll at least have a demo video I can put up on the landing page.
Second, I spent last weekend working heavily on SEO. For those non-technical readers, SEO stands for “Search Engine Optimization” and is webmaster vernacular for “getting your site to show up in search results.” With only around 5% of users coming into my site through a search engine, this is definitely an area marked for immediate improvement.
My initial thoughts on KitchenPC was that since I was a private site that required a user account context to really be useful, SEO was not much of a priority. In other words, I did not envision KitchenPC simply being “a huge recipe database” like Epicurious or AllRecipes, so I didn’t really want to show up when people Google for “chocolate cake.” However, seeing how difficult it is to generate initial traction in a consumer market, I’m revisiting that assumption and have come to a different conclusion (a bunch of my friends reading this are now saying, “See? I told you so.” – I am the first to admit when I am wrong.
I did several things to greatly improve SEO. First, I created “permalinks” to all the recipes on the site. The URL for any recipe in particular will be a more human readable description, such as /Recipes/Chocolate_Cake.html or some such. Google will assume a search result is more relevant if the URL contains words the user searched for. In other words, searching for “chocolate cake” will more likely turn up Chocoalte_Cake.html than Recipe.html?id=123.
Next, I added <meta> tags in the recipe peramlink pages for keywords and descriptions. The description (which is basically the recipe description) will be directly displayed on the search results page rather than some auto-generated description based on relevant text parsed from the page content. Users will see the recipe title and description right on Google without having to click the link. The keywords are somewhat dynamic as well. Every recipe will have a fixed set of keywords, such as kitchenpc, cooking, recipes, etc. I also add a keyword for each “tag” on the recipe, such as “bread” or “breakfast”. This should make my site come up much more often when users search for things such as “dessert recipes.” Next, I created a robots.txt and siteindex.xml file. The site index file will allow search engines to crawl much more deeply into my site, and index all 1,000+ recipes without needing to logon to the site or find these recipes by manually crawling (which would be impossible.) This means a user who searches for “chocolate cake” might get a result pointing to a chocolate cake recipe on my site, even if they don’t search for KitchenPC. This alone should drive up that 5% considerably, and hopefully some of this new traffic will translate to new user signups, especially if I rework the recipe viewer page to entice users to signup (great opportunity for some A/B testing!)
The third thing I’ve done to generate new traffic is employ some basic Facebook viral advertising. I was scared of doing this while the product was in such early stages, but I decided spending some minimal investment in this area can pay off now. The main feature is it’s now possible to “Like” a recipe. Both the non-logged-in permalink version of the recipe viewer as well as the logged in recipe viewer popup panel will now contain a standard Facebook “Like” button. This allows users to post a link to the recipe on their own Facebook page, which promotes a recipe as well as drives new traffic into the site. Facebook posts are viral in nature, as a friend might check out the recipe and decide they “Like” it as well, spreading the message another level deep on the Facebook social graph (6 likes, and it could be seen by Kevin Bacon!)
Why don’t users come back?
I’ll be the first to admit that my bounce rate (the percentage of users who go to kitchenpc.com, but then leave without signing up) is way too high, and the user attrition rate is also way too high. Even at this early stage, it’s pretty obvious that KitchenPC is not really providing any value to the average consumer. Even as a free site, a very small percentage of users come back and I’ve yet to see anyone turn into what I would call a regular user. I don’t believe it’s too soon to start looking into what I’m doing wrong.
The first step I took was to integrate into the site a fantastic product called Uservoice. Uservoice allows people to suggest ideas for features or provide feedback, and then other users can “vote up” those ideas, so the most popular ideas show up at the top of the list. The interface is well done, and it’s easy for users to find the mechanism, logon, and vote. They’re a “freemium” service which means they offer a free basic plan and offer paid plans with more features. For now, I’m just using the free version until I get more users. I entered 10 ideas myself, and I’ve had 2 other ideas posted by other users so far. Though I haven’t seen too many people use this tool, I suspect it will grow in popularity as my user base increases. The problem with that, though, is I won’t be able to use this tool as a vehicle to attracting an initial user base. This means, for now, I have to use other techniques to ascertain why the site isn’t very useful.
The best idea I’ve had so far is to just do individual case studies. My friends like me, they want to see me succeed, and they love the idea of KitchenPC. Most people I’ve pitched the idea to say “That’s awesome! I would totally use that!” – the only problem is… they don’t use it. None of my friends are active users, and most have only logged on once. Insulting? Not really. I simply haven’t built a product that they want to use.
So, I’ve posed the question (more politely, but I’ll be blunt for the sake of blogging) – “Hey <insert friend’s name> – You seem excited about KitchenPC and you were receptive to the idea, however you don’t use it. I’ve checked and you’ve only logged in once. What can I do to make you use the site?”
The response is incontrovertibly unanimous. People actually don’t give a rat’s ass about features, the meal planner I spent so many long nights working on, the pantry feature, super accurate shopping lists, etc. While they have a few little ideas here and there on that stuff, it comes down to one plain and simple fact. They’re looking for a recipe, my site doesn’t have it, they leave. With only around 1,000 recipes on the site, it’s simply not useful as a place to go to for recipes, which is the primary thing people want out of the site. One of my friends IM’ed me the other day and said, “I was looking for a paella recipe and your site has none! How do you expect me to use your site when you don’t even have a single paella recipe, I won’t even bother telling my other friends about your site yet.” The Uservoice data also supports the conclusion: I need to add way more recipes, or I’m dead.
There’s a small problem with this. Everything I’ve tried to get more recipes onto the site has failed! Every other website has the advantage of having a very non-normalized way of storing recipes, allowing them to use technologies like bulk-importing massive databases or screen scrapping other recipe websites, or just turning into massive portals of recipe websites, acting like recipe search engines. However, since I went the route of flawless data integrity (a route I’m not yet willing to admit was the wrong decision), I need to know the exact ingredient (and match it to an entry in my ingredient database) as well as the form the ingredient is used in. This makes bulk-import all but impossible.
I’ve tried hiring people to enter recipes. Out of the 10 or so people I’ve hired, 8 of them just never started, 1 of them entered around 280 and quit, and the other shows up less and less by the day. She’s entered a total of 481 so far, however she’s been at it for almost 3 months and her estimate was 10 days to enter 1,000 recipes. Suffice to say, she isn’t meeting expectations. I could hire 50 of her and perhaps eventually get somewhere, but I’d have to hire 500 people to maybe have a chance of 50 actually doing any work, and plus managing 50 data enterers would be a full time job in itself.
Crowd sourcing the effort might someday be an option, but for now there’s no chicken to lay that egg. Users won’t go to the site because there’s no recipes, thus there’s no users to enter recipes. Plus, so far I’ve yet to see a single person (except for my previous alpha testers) enter a single recipe during beta. I’d need 100,000 users to have 1,000 users entering any recipes. So no, that’s no good. People want recipes but they won’t enter them and you can’t pay them to be entered. That leaves one option – find a way to bulk import recipes even though it’s impossible. At Microsoft, I was often asked to do impossible things. It’s kinda fun.
Turns out finding the raw recipe data is pretty easy. I recently came across this site which sells a database of over 41,000 recipes in SQL or Excel format for cheap, with publishing rights assuring I can stay out of any legal issues. The problem is their schema is the exact antithesis of all that is great about KitchenPC. They have a single table (one row per recipe), and all the ingredients for the recipe are literally stored in a single text field, with each usage delimited by a carriage return. Talk about a parsing nightmare! I’d not only have to parse out the amounts and units, I’d have to figure out the ingredient as well as the form it’s used in. There must literally be hundreds of thousands of distinct ingredient references to accurately parse, with minimal room for error. On a side note, I emailed the company asking if they could provide data conversion into my schema. They replied back saying they could accomodate this, but it would be a manual data entry job which they bill out at $24 USD per hour. For kicks, I asked them for an estimated number of hours, to which they never replied. I think it would take months, and they’d probably contract out the work to workers in foreign countries making $4-$6/hr.
A better idea I’ve come across is a file format used by MasterCook. MasterCook is a fairly popular brand of recipe software, and they have an XML based format for storing recipes. It’s fairly easy to understand and parse, and ingredient names, amounts, units, etc are stored separately making parsing much easier. I would still have to figure out which ingredients are used in which forms, but I think this sort of natural language processing is at least in the realm of realistic. It also just happens that I have a CD with around 8,000 recipes in this format. This seems like a great place to start.
I don’t believe I’ll be able to import all 8,000 recipes, as many contain schema features that I just don’t yet support. In the MasterCook format, recipes can be “recursive”, for example an ingredient in a recipe can be a reference to the implementation of another recipe. This is a concept I’d love to have in KitchenPC, but it’s a ways off as it leads to issues like circular references and generating massive shopping lists for a single recipe. Luckily, the 8,000 recipes don’t contain too many recursive recipe references, and a fair amount of the ones that do, I can substitute known KitchenPC ingredients for this recipes.
I think the best I’ll be able to hope for is to partially automate this task, but what I’m hoping is to design some software that can “learn” as I manually process these recipes and start to catch on and match ingredients and forms on its own. I’ve been working the past few days on a prototype for what this software would be like, but haven’t made a huge amount of progress yet. Besides ingredient parsing, there’s some other problems such as figuring out the “tags” for a given recipe. I’m curious if one could implement a machine learning algorithm that can accurately “guess” what tags a recipe will have based on what ingredients are in that recipe, words used in the title, description, and method, and other various attributes of the recipe. Such an algorithm could be “taught” by looking at the current set of the ~1,000 recipes I have. Definitely an interesting computer science problem, it’s this sort of thing I love about KitchenPC as I was never able to work on these sorts of challenges while at Microsoft.
If this seems like a lot of work to go through to get 8,000 recipes, it probably is. However, there’s an additional benefit for being able to parse recipes using intelligent metaheuristics. This technology could eventually lead to my dream of allowing users to directly paste in entire recipes, upload Word documents, or import a recipe from a URL. KitchenPC will truly take over the Internet, probably gaining sentience and enslaving mankind, if it gets to the point where it can truly read and understand a recipe all by itself. There’s a whole list of companies who would make multi-million dollar offers for a KitchenPC buy-out for that sort of technology alone.
While a lack of recipes, in my opinion, is the primary factor stopping people from visiting the site, looking at the feature design is also important. Even if I had 100,000 recipes, I still don’t compete with AllRecipes and Epicurious (they have way more) unless I nail feature scenarios and get users to “come for the recipes, stay for the meal planning.”
Talking with my friend Steve yesterday morning validated a notion that’s been brewing in my subconscious for a while now. Though I hate to admit it, no one really cares about the meal planner; or even understands what it does. The BuildPlan.html page doesn’t even appear on Google Analytics (though this might be some bug, since MealPlan.html appears quite a bit) and the people I’ve interviewed about the meal planner, Steve included, just don’t really find it useful in the least. The root of the problem is people have this notion that I expect an up to the minute, complete and accurate count of their entire inventory. While people love the idea of the meal planner, and it’s always a hit when I tell a group of people about what it can do at a party, people don’t really think about the front loaded costs associated with its use. I’ve come up with 3 things I can do in the immediate future to make the meal planner less scary.
First, the name “meal planner” confuses every single person I’ve talked to. Some disagree it’s even a planner, as it’s technically more of a “finder.” The first step will be to rename the meal planner to something else. My idea at the moment is call the option “What Can I Make?” This text would appear on the top menu and on the home page, as it instantly convenes exactly what the feature does and why you would want to use it. Meal planner is a bad name because the entire site is a meal planner, this is just a modeling algorithm that figures out “what you can make” based on the criteria you give it.
Second, there’s a lot of friction to even use the thing. When you go into the page, you have to either have a pantry (a concept that scares everyone, as they assume “Well shoot now I have to manage my inventory online?”) or they have to type in ingredients and amounts. If you’re lazy, you just hit the “Go” button and it errors out saying you must enter at least one ingredient. I’m forcing you to do something you don’t want to do, just to use a feature you don’t yet understand the benefits of. The user thinks, “Screw that, I’m not that interested in this anymore.”
I’d like the meal planner tool to be useful, albeit not as useful, to this customer demographic as well. It should do something, anything, without giving it a single piece of data. In other words, the meal planner needs to just “do things” when you click Go. The solution I’m considering is to create a “virtual pantry” for these users. If you go to the meal planner and don’t type in any ingredients at all, it will run the meal planner with the top 10 most commonly used ingredients with average household amounts. This virtual pantry could be dynamically calculated based on database statistics, or more likely for the initial manifestation, hard coded with “common crap everyone has.” What this would give you is an efficient meal plan that uses common ingredients and strives for ingredient overlap without users having to enter a single thing at all. Users would experience a basic meal plan, and hopefully begin to experiment more with the feature, perhaps typing in some of their own items this time.
As for people being scared away by the pantry, I believe there’s a few simple things I can do to make it more clear I seriously don’t expect anyone to use KitchenPC as an inventory manager. On the meal planner, the radio button that says “I have the following ingredients available” should be renamed to something like “Try to use the following ingredients:” The former verbiage conotes a desire for completeness, asking the user “what they have” is interpreted as a complete tally for your inventory. The latter appears more optional and laid back, and the meaning even works with no ingredients at all. Users are more likely to just enter one or two things they have in their fridge, and not feel pressured into typing anything at all so they can see a meal plan in action and see how the feature works first. Another pantry change, an idea proposed by a friend of mine, is to set up each new user with a default pantry. This pantry would contain household staples such as flour, sugar, milk and eggs with common amounts. It would almost be like a default account template, showing the usefulness of the feature. It would also challenge users to go to their pantry when they say, “Hey I don’t have that – how do I change that?” leading them to enter what they actually do have.
Though these things can be done very easily, a bigger change I have planned down the road is to make ingredient amounts (in both the meal planner and the pantry) completely optional. I would like users to be able to enter ingredients for the meal planner, but omit some or all of the amounts if it’s unknown or they simply don’t care. The meal planner would run more like Supercook.com, and simply generate a set that uses as many of these ingredients in any amount as possible. Running the planner is this mode would probably require a slightly modified UI, as the “Selection totals” on the left side would be more of a tally of which of their desired ingredients are in fact being used, and the total required usage. The scoring algorithm for the planner would also have to take this “fuzziness” into account. Either way, this would cater more towards users who are scared off by entering too many numbers and just want to use the feature as quickly as possible. I’m kicking myself for not designing the feature in this way to begin with, as this sort of thing is the same exact mistake we made in Project! I even wrote a whole bloody blog article about how I would learn from Project’s mistakes. Mike, you should know better!
Between getting 1,000 users, finding a way to bulk import recipes, and making minor usability tweaks in the product, my life is pretty swamped at the moment. I also only covered about half the things I wanted to discuss in this post, which is already starting to look like a novel. If you’ve read the whole thing, you must either be a true fan or very bored at work. Thus, I’ll save the other news items (mainly about my search for a business partner) for the next post. See-ya then!
Hey Mike,
Kudos to you for being willing to expose your process. I think it’s incredibly brave and will only bring you success – people like honesty, and hopefully you’ll get some good feedback here and on your UserVoice forum.
My 2c is this: give the people what they want, even if it’s a stopgap solution. Zappos searches competitor’s sites when they don’t have something in stock and sends customers to them if they find said item. It’s not what Zappos would prefer, but it makes the customer love them and hopefully come back next time. Even if it doesn’t fit your long-term plan for recipe collection, find a short-term way to get people those recipes – they’ll remember that you did it and hopefully give you another chance next time.
I’m always stoked to hear about someone actually listening to their customers – keep up the good work and best of luck, I hope KitchenPC takes off!
-Evan Hamilton
Community Manager, UserVoice