One thing that became abundantly clear within the first minutes of brainstorming for this project was the overall importance of being able to move your data around, easily and in as many formats as possible (or maybe just a few ultra-portable formats?). The fundamental unit of ideaShrub seems to be an ‘outline’ – simply, a heirarchichal structure of pieces of text. The obvious format solution, for this, is none other then OPML – the XML format for defining outlines. Now, if you’re designing a ‘good’ Ajax-style application, you’re probably going to have a lot of data stored in XML, therefore converting from your outline XML to OPML is as simple as a chunk of XSLT (unless, of course, you’re storing the data as OPML files to begin with – but we’ll burn that bridge when we get to it). Additionally, the importance of exporting to HTML can almost be left un-said, at this point. Of course, there’s also a variety of ‘messy’ formats that people are going to want: PDF, Word Document, etc. But those will probably be dealt on some sort of a pay scale.
So, that’s one step complete. We have a common format for moving the outlines around. The next step is notification – which is much trickier. First we need to define what people want to be notified about, a couple possibilities spring up: Notification whenever an outline that you own changes, notification whenever a friend/group creates a new outline, and maybe notification whenever someone joins one of your outlines. Again, there’s one obvious technological solution: RSS. You could easily subscribe to the recent outline changes for any outline and recent outline creations for any user/group. This brings up the last bit: notification of users joined. What seems to be intrinsically built into every web application is the ability to send an email and/or text message to your cell phone – so why not provide it here? And why stop at only setting up notifications for common events? I think users would really benefit from being able to set up notifications for anything/everything – want to know when a note changes? want to know when an outline changes? when a friend posts a new outline? The possibilities are seemingly endless. Although, simply due to time constraints, we’ll probably have to pick a couple of the most important ones and run with that.
Next post I’m going to talk about getting your data into the application – probably an even more challenging problem, due to the shere number of possible data formats and versions.