How do you design a remixable Web application?

From Jon Udell: How do you design a remixable Web application?

We’ve focused a huge amount of attention on RESTful versus WS-* APIs, but that distinction isn’t central to the current mashup craze. In many cases, as a matter of fact, neither kind of API plays a central role. Paul Radermacher’s HousingMaps, for example, relies on nothing like a conventional API from either Google Maps or craigslist. The craigslist data is acquired by screenscraping (I presume) and the mapping behavior arises from the interpolation of that data into the Google Maps interface. It’s the same with the Wikipedia animations. The history data is acquired by screenscraping; the animation interpolates that data into extensions of the existing interface.

It’s remarkable that these effects are achievable with no explicit support from the origin sites. But what if those sites did want to offer explicit support? What would that look like?

Required reading.