They say that the best ideas come out of solving a real problem, and when my wife was pregnant with our first child, one of the things we had to rapidly get used to was the complex rulebook about what pregnant women can and can't eat.
Too many foods, too many opinions
We'd picked up a few books, who each seemed to have bewilderingly long and sometimes contradictory lists of acceptable foods. As someone who has blind faith in the internet to provide instant answers to any question I care to throw at it, I naturally assumed that where the dead tree failed, Google would succeed in providing an accurate, definitive answer.
However, thanks to "web 2.0", the "wisdom of crowds", and all the other empowering buzzwords people like me have been pushing over the last few years, instead of the single voice of certainty, backed up with a billion lines of code, logic and science, I got a thousand different voices, all shouting out conflicting answers based on old wives tales, the experiences of friends of friends, and sometimes plain old bad science.
The typical search for something like "I'm pregnant, can I eat prawns?" would lead you to a number of different forum threads, some saying "definitely yes", some saying "no way - you're such a bad mother-to-be" and others saying "well I ate them when I was pregnant, and my baby turned out fine". That last category were the most common, and unfortunately the most frustrating - being as they are the most unscientific and statistically flawed opinion possible (based on a sample of one). It's powered by the same logic as "my neighbour lived to be 110, and he smoked 50 a day, ate nothing but deep fried Mars bars and bathed in whisky every night. All that talk about healthy eating is a load of corn-fed, free-range bull!". This is the type of thing that makes Ben Goldacre's head spin right round (I know this is scientifically possible, I once met someone in a pub whose neighbour's head would regularly spin round, and they lived to be 264) and doesn't help you when you're sat in Strada, frantically Googling on an iPhone, trying to work out if you can order that delicious sounding linguine or not.
So I casually hatched the plan that it would be really useful if there was a website where you could put in the name of a food, and it would give you a simple "Yes" or "No", based on current scientific, government advice. It seemed so simple, I wondered why noone had done it already.
I started to have a think about how I might go about making it happen. Amongst other options, I considered putting together a 4IP proposal for it; it seemed to fit with some of their goals around health, opening up government data, etc. However I didn't have a clear revenue model (bar advertising), knew they are very selective about which ideas to take forward, and I knew from past experience that it takes a long time to write a proposal, get approval, funding, and building. Time wasn't on my side - after all I had less than 9 months to go!
I pitched the idea at work as part of our 10% time initiative - the consensus (admittedly from a room full of men with no experience of pregnancy) was it sounded like a good idea, but another of my ideas was a better fit for development. However, this encouraged me, and in the end, I decided to Just Build It.
Fast food, fast web build
I tackled the design and build process differently from any project I had done before. Instead of starting out with extensive, fully designed visuals, I started out by building the application first (with the aim of getting it live, and gaining some Google Juice). Thanks to the CodeIgniter PHP framework, I was able to build the basics of the site during two return train trips to London. I deliberately kept to a simple one column design, and kept the markup as light as possible so it would be as mobile friendly as possible (one of my key use scenarios was when out in a restaurant, and coming across an unfamiliar ingredient or dish). I designed some very basic CSS templates: my next job will be to put some design thought into both a desktop and mobile version of the site. Very soon, http://eat42.com was born.
Getting the content right
Giving out the right content is really important. In order to make sure I was giving out good advice, I made a decision that initially my main source would be official UK Government advice, and that any other advice would be sourced from scientifically-backed research, or in cases where it was appropriate, from food manufacturers themselves. The government publishes advice about eating in pregnancy through the Food Standards Agency and the NHS, so to begin populating my empty database, I began by raiding these sites - linking it together where appropriate, finding synonyms and common misspellings. In every case, I have linked to original advice so hungry mums don't have to take my word for it - and of course I've had to add disclaimers to point out that they should always consult a medical professional before making any decisions.
I designed into the system a positive feedback loop whereby any failed searches would be logged, for me to manually research and add to the database - eventually leading to a more complete product as the gaps in the system are identified by users. Within the first few days there were some items which were coming up repeatedly, and some common misspellings, which I was able to rapidly add in.
Naming and API
One of my key goals was to be a good web information provider, and make my URIs easily hackable, and to make all the information I was gathering available through a simple API. I like the idea of URIs which spell out the problem they are trying to solve. Initially, I built the site to work with URLs such as:
http://ImPregnantCanI.com/eat/camembert
This has the advantage of keeping flexibility for the future by expanding into domains other than food, e.g.
/drink/tea
/play/tennis
but, the URIs were quite long, not as easy to scan as I thought they would be, and as I worked through building the application it meant having to process and distinguish between different verbs. In the end I settled on a different domain name (eat42.com - much shorter and more memorable) and, since there is very little linguistic crossover between different verbs (I guess you can eat, drink and play "squash", but there were very few I could think of like that) I decided to cut it out entirely. This gives URIs such as:
(the "old" style still work, redirecting to the new ones).
I also made the system RESTful, so using the API is a simple matter of appending the required format to a URL, e.g.
http://eat42.com/camembert/xml
It currently supports XML, but I plan to add mobile (an HTML-lite page), a simple yes/no format, and maybe JSON.
What's for afters?
So I managed to get the Eat 4 2 idea conceived, baked, and born in less time than it has taken to do the same for our future son or daughter. I'm building traffic through the site's Twitter account, social media, and SEO. I'd like to get all the advice reviewed and rewritten by a nutritionist. Hopefully the site will get enough traffic to sell advertising or be offered "white label" to companies with an interest in pregnancy and nutrition. Maybe there's even an iPhone app or book in it. I've a few other sneaky ideas up my sleeve too.
I just hope that someone using it finds they don't have to abstain from that plate of delicious Strada linguine after all..