Sunday, June 12, 2005

Backbase Community / Essential web page features

In response to my previous post, Ryan Brooks outlined his thoughts on Backbase. This is very useful feedback. One of the main points of his post was the need for more community. I could not agree more. As with most software, RIA/AJAX software becomes more useful once more people are using it. And especially at this moment there are an awful lot of frameworks popping up: just look at Michael Mahemoff's list of frameworks, which only mentions the open-source frameworks at this moment. So we need some critical mass, fast!

Community Edition

Luckily many thousands of people have downloaded the Backbase Community Edition in the first couple of days. Our servers are still alive, but we'll have to pay a hefty bandwidth fee at the end of the month. A fee we're happy to pay: the more downloads, the better. We're also happy to see users from all over the world: the US still has the biggest share, but our software is also especially popular in China. So we will continue to distribute the Community Edition to as many developers as possible.

Discussion forum

A couple of days after launching the Community Edition we opened up the Discussion Forum, and we're preparing some other initiatives. We're thinking about a code exchange, a best practices wiki, a mailing list, faq database, technical articles with code samples, tutorials, user groups, developer conferences, etc. Of course, this won't all happen overnight, but we will focus on steady improvement. Let us know which of these features will help you most, so we can fine tune our planning.

Essential web page features

A second topic of Ryan's article was focused web page features that you should get for free when you use AJAX (compared with Flash or Java applets). He discussed indexing by search engines, back- and forward buttons, permalinks and bookmarking. I'd like to add 'View Source' to this list.

Search Engines

Search Engine Optimization is indeed an area that requires some attention with AJAX applications that use a Single Page Interface (SPI), because there is a risk the search engine only finds the first page. On Backbase.com we're using a dual publishing model to avoid this problem: we use the same content files to publish both a rich single-page version and a plain multi-page version, which is indexed by bots. This requires some automation in the publishing process. As an alternative, the Backbase Tags allow you to use regular 'a href' links to load files with XMLHttpRequest: these links are also indexed by search engine spiders. In both scenarios, the search engine indexes 'pages' that are supposed to be part of an SPI. Therefore, some server-side logic is needed to convert these links to deeplinks that load the correct 'state' within the SPI. This topic will be covered in a 6-page technical article to be published in 1 or 2 weeks on the Backbase DevNet.

Backbase About Us page

Back-button and permalinks

This brings us to another topic Ryan mentioned: deep linking (with permalinks) and bookmarking. As I wrote in my previous post, we have some deeplinking support in Backbase.com. We are using URL parameters for this: for example, /devnet is rewritten as index.php?section=main_developers, which is parsed client-side: as a result, the Deck with ID 'main_developers' is selected. For people who haven't worked with Backbase: a Deck is a user interface concept similar to a stack of cards of which only the first one is visible. By selecting a card in a Deck, it is moved to the top, and becomes visible. This is what happens when the ID 'main_developers' is selected. The downside of using URL parameters is that the entire page is reloaded if we set a new parameter. An alternative is to use the pound sign (#), of which Tiddly Wiki makes good use: http://www.tiddlywiki.com/#UsingThisSite. At Backbase we are currently using the pound sign for Back/Forward support in Firefox: we could use a hidden frame for this, but this only works in Firefox when you are retrieving real pages from the server. In Internet Explorer you can retrieve 'virtual' pages by using the DOM, which is obviously faster. So maybe we could give users an option: either fast Back/Forward without permalinks, or somewhat slower Back/Forward with permalinks. If we build in this option, we should be able to support all scenarios.

"View Source"

An area that is getting more an more attention lately is 'View Source', which was one of the key factors in the rapid growth of the World Wide Web. Steve Yen makes the link to AJAX in this blog post, and there are probably many other relevant articles. Even the Macromedia guys now offer this feature, although developers have to specifically build this into their Flash applications, while it is a default feature of web applications. I think a potential problem with 'View Source' and AJAX is the large amount of JavaScript used. Also, in good AJAX applications the JavaScript code is encoded to limit the download size. So although you can view the source, it's pretty tough to make sense of it. The benefit of Backbase is that it is completely tag-based, so there is no need to look at JavaScript code. Looking at the source code of a Backbase application, you just look at Tags and you can quickly decipher the complete application. Give it a try with the deep-linking example in the previous paragraph: if you go to Backbase.com, do a View Source, then you find an <b:deck> tag, of which one of the <s:buffer> tags has the ID 'main_developers'. You can follow this link, etcetera.

wrapping up

So all in all this became a pretty long post: basically I just wanted to say we're growing the community, and all input and ideas are welcome. At the same time we take compatibility with the essential web page features very serious.

3 Comments:

Blogger Grauw said...

I think automatic search engine optimization would be a nice product for our (paid) BPS servers for .NET and J2EE. They could automatically translate the BXML to something Google can understand.

With regard to bookmarking, I’m personally a fan of combining bookmarks and the browsing history using fragement identifiers (the #). The people visiting the page get to see a link they can bookmark in their URL bar, and it automatically gets added to the browser history as well. However, last time I asked about it I understood there were some problems getting this to work with IE, so I don’t know what the status about that is. However, if Tiddly Wiki is using it, that sounds promising.

~Grauw

12:21 PM  
Blogger Ryan Brooks said...

The idea isn't that there are several frameworks for RIA applications that can definately be considered competition to Backbase - John Lim referenced this earlier in addition to Michael's list - the idea is that Backbase has sooo much more potential.

I'm not surprised to learn that the thousands of downloads of the community edition has put a strain on your servers - thankfully, Backbase.com didn't get slashdotted on the main page; I am surprised to hear that you're popular in China - I'd be very interested to see some demographics.

Community is by far the biggest concern. I really like the Devnet forums; it sounds like you folks are on the ball, and I really look forward to the Wiki.

View source is an excellent idea that I didn't even consider (as I've never tried it) but it makes complete sense. My biggest concern is that in order to process the URL that is handed back to the browser (something like index.php#page-1:abc22:31 - similar to what Tiddly Wiki is doing) would need some rather intense handling with your flavor of a language, but it's an idea - developers have been doing it forever in query strings. However, that said a dual publishing model looks to be the only way to solve this problem at the time being.

Community aside, I'm with Grauw on this one - the .Net and J2EE versions need SOME sort of enhancement to encourage sales of the enterprise version. In my most recent post, Laurens mentions

The way I see it, someone has to pay for my salary (which is not that much at all, btw!), and thus we need a certain income.

This is entirely true. Being a partner of one of the resellers in north america I have a vested interest in ensuring the ongoing success of Backbase, as well as ensuring that the seperate versions of Backbase are represented in the correct manner. At risk of getting into a heated debate about the sales of Backbase (which, I imagine, has already been thought out thoroughly by the backbase team) all I will say is this: backbase requires an app server. I don't know how many developers will spend that kind of money on both software and hardware. I guess it all comes down to "Backbase knows best"

Anyways, my point is merely that you guys definately have 'got it going on' as they say, and I look forward to increased community, and avid development.

10:03 PM  
Blogger Grauw said...

Ryan, I’m glad you agree I need a raise! Hahaha ;p.

3:32 PM  

Post a Comment

<< Home