We're putting the finishing touches on our code here at Tinfinger in preparation for the beta, which will happen Real Soon Now. Yeah, I know, I've been saying that for yonks. When It's Done, people!
One of the areas where we've zigged where others before us have zagged is that we left the social networking elements to last. We decided to try out Marc Canter's
People Aggregator (a.k.a. PeepAgg) system, liked it, and are in the late stages of implementing it.
Let me say first of all that Marc is a top bloke, which from an Australian is a high honour. I wish him and his company all the best with PeepAgg, and I'll be a big supporter of his future endeavours. He has built a very modern company whose
workforce is mostly Indian with a few Euros thrown in and a couple of New Zealanders, including consultancy from Richard MacManus whom many of us Aussie 2.0ers know. His business model of allowing free downloads of the PeepAgg application and only charging commercial users based on their network size is daring and innovative.
The PeepAgg system is not perfect, however. It reminds me strongly of the
Smarty system, which I encountered last year while doing a separate client project which had been implemented by some Russian programmers for a third party. Both Smarty and PeepAgg are PHP-based template engines, where the presentation layer is separated from the business logic of the Web application. In simpler terms, it means that there are template files which specify the DOM structure of a page (and contain no PHP at all), and then there are module files which then populate the DOM with content.
In practice, looking at the code, template engines strike me as the next evolution of those implacably evil WYSIWYG HTML editors of days of yore, like Microsoft FrontPage. FrontPage and its ilk were notorious for producing terribly-formatted, bloated code that ran like a dog in the wild. To prevent this added complexity from gumming up the Web server accessing all these files at once, the resultant HTML outputs are cached as flat files on the fly, but the code can still get horribly bloated.
The default CSS style file for PeepAgg is over 100KB, for instance. 100KB!!! I couldn't believe that when I saw it. There are styles for every last little element on the page, so you get classes with names like .public-module-block-data-content-parent-home-page-tags-child. I shit you not, that's a real PeepAgg class. (It's specified as padding: 1px 0px 1px 2px, if you wanted to know.)
Now, I may just be too old skool about this. I mean, bandwidth doesn't mean that much these days, surely? Doesn't caching fix most of these problems anyway? Ah, but the problem comes when you download something like the PeepAgg tarball and want to customise it. That's what I'm doing right now, and I can't help but get the feeling - the same feeling as I got while hacking those Russians' Smarty code - that somewhere there is a FrontPage-like GUI for these systems that makes editing it a whole bunch eaiser for the developer... but I don't get access to it. Because that's what these system are all architected towards, as the Smarty documentation says: "quick and painless development and deployment". It's all about rapid application development, but post-gold customisation or bugfixing is an afterthought.
In People Aggregator's case, Marc made it perfectly clear in his presentation to me that the PeepAgg system is all about getting his company consulting work to customise his own code. (I presume this is not secret knowledge, BTW.) Giving away the tarball is all very well, but it's not going to do him much good unless he can get those $100/hour custom publishing jobs, as he freely admitted. When he said that to me, I thought back to
Paul Graham and his frequently stated bugbear about how founders have to avoid their startup degenerating into a size-limited consultancy and be more product-oriented in order to grow. Marc has a lot of competition in the space - Affinity Circles, Social Platform, IBM, Five Across, KickApps, CrowdFactory and many more - so it's understandable that he took the radical step of giving away his core product to get market share.
I say again, none of the above is intended to be a slight on Marc or his chosen business model. I'm sure he is in control of his own destiny with full knowledge of his destiny. I'll be there on the ride with him, wishing he'd give me the keys to that FrontPageian T-Bird I just know he's got locked away somewhere...