Start-up tip: Build the API first
One thing I’ve learned but never listened to my own advice in building a web start-up is, build the API first. There will be a time that your API will become incredible valuable and for some sites (Twitter and Flickr are both great examples) it becomes your biggest asset. It can create distribution in a hugely viral way, it can create awareness in the blog-o-sphere and tech community which can start the snowball rolling and it will allow you to grow much faster in the long run. It is hard as a start-up to invest in the future rather than the now but the future always sneaks up on you faster than you think and that API will come in handy.
1) It helps force good practices, building black boxes that can be called from both internal and external sites
2) You don’t need to expose the API right away, you can do that on an NDA basis for partners, make it public or just keep it in your back pocket for future
3) It forces you to document key interactions from the get go. Again, an investment that may seem frustrating in the early months of a start-up but will pay dividends down the road
4) It gives you credibility with partners. If you have a tech document to share that discusses how to interact with your data, you will get points
5) You know you are going to have to consider mobile in this day and age. The API will allow you to farm that out more easily or bring in a new team member to work on that without having them have to ramp up on the internal guts of your architecture
6) Using your API for the initially development is a good test. The UI is easier to test than the back end in most cases so the API will let your internal UI developers help test the back end interactions without knowing it
Don’t assume that just having an API will lead to developers coding it. That can’t be your business model. Developers will flock to your API if it will get them users and/or revenue (E.g. the iPhone SDK) or if it adds immediate value that they can’t easily do on their own (E.g. Google Maps). But there will be a day when that API will be a key asset and that day will come quicker than you think and its always easier to build it from the beginning than to go back and try to wrap it around your code in my experience. Take it from me as I’ve bitten myself many times by not taking this advice, build the API first!
