Writeboard: 1 code base = 2 features + 1 app.
We've just launched Writeboard integration for Basecamp,
which means that all projects now have the option of associating
Writeboards with them. This is interesting because it shows how the
“app-less app” design allows us to reap the benefits of development
thrice.
From a single code base, we've provided a stand-alone application at writeboard.com and decorated both Backpack and Basecamp
with Writeboard-powered “features” integrated deeply into each of the
applications. They even specialize Writeboard slightly differently by
passing in UI configuration options.
Behind the scenes its all a simple REST-powered architecture
following a simple observer pattern. Writeboard has the notion of
folders, which can register themselves with a given writeboard as a
URL. When the writeboard is updated, the system will ping each of these
folder URLs with information about who made the edit and when. This
allows Backpack and Basecamp, which both serve as folders in this
setup, to provide writeboard indexes with up-to-date information
without doing expensive look-ups on each request.
Programming-wise, it's been trivial to implement. But functionally
it's a big win and a great way for a small team like us to scale our
suite of applications at near 1/3 of the cost.
Writeboard is the first of these app-less, or document/single-url,
based applications we've done. But the same model is already slated to
power a second application we have under development. Develop once,
launch many times. [Loud Thinking]