Shaun Inman, Mint ================= 10 reasons why you need to build an API In this case the API is a plugin architecture. APIs make a good thing better. API - a documented means of interacting with one application from another. (Arg, subethaedit crashed) Lots of examples of stuff built with APIs. 1. Increase brand awareness. As a lay person you don't care about the API, you care about what people do with it. When someone builds with it it extends your brand. 2. Allow users to own their own data. Builds good will with your user base. 3. Build goodwill with developers. 4. A perfect excuse for a community. Mint benefits from a community of people acquiring and sharing their knowledge and the fruits of their labour. 5. Solving programming problems with an API in mind can improve code quality. You have to be more careful and upfront with your decisions because of the way it impacts future use. Helps you clarify the mental model of your system. 6. Simplify internal reuse of data. A number of plugins for Mint use data collected by other plugins and present them in a different way. 7. Allowing others to extend the functionality of your application. This helps with features that you have no plans to build yourself. Examples: Mint plugins that provide graphs. SessionTracker which incorporates session information. 8. Alternate input mechanisms - desktop applications for example. 9. Uninticipated applications of your data. Example: the grey album - unanticipated use of the data. ChicagoCrime with Google Maps. 10. The key thing: An API turns your program in to a platform. As people build more and more tools on top of your application it becomes a necessity. Mint has thrived as a result - awareness of Mint has come from blogs and developer plugin releases despite hardly any advertising. Questions: What's mint? An application for tracking stats on your site. What benefits has mint got from its API? Loads - lots of great plugins developed. What typeface? FF Din Does mint have a web API as well as a plugin API? Yes it does - Ajax in the interface makes use if it. RSS feed for latest unique referers. Have there been problems with API abuse? That's more of a problem for hosted services; Mint is something you install yourself. One problem: people who create their own DB tables for their plugin - once created, the Mint framework has no knowledge of those tables which can cause problems in the future. API requirements were derived from the kind of things people wanted to do with it. Once you release the API, what happens if you need to change it? Hasn't been a problem so far - stay in close touch with the community. Preventing piracy: a problem because of readable source code (which makes it easy to work around activation). Initial prevention was with comments around that code seeing "it's not clever to work around this; it's lame". The community helped because they saw that Shaun's time was being taken up fighting piracy instead of improving Mint. Q: How concerned are you as a developer about building on APIs that other people own that might go away? For Mint this is not a concern because people host the thing themselves.