A blog has so many components to it that fit in perfectly with Catalyst. Catalyst’s MVC-based framework makes maintainability simple and encourages contribution from the community. The model components can be created to force the blog to read from either flat file, from a database, or even from a web service such as SOAP. The view components would allow a developer to pick his poison in templating libraries. One could choose either Template Toolkit or HTML::Mason to render a page ready for browsing on the ‘net. The controller would present multiple ways of gluing all the pieces together.
Catalysts support of plugins would promote creation of plugins that would work with Jeens. One could create tools to render an image gallery or photo blog differently. One could implement better ways of using AJAX to accept user input and modification of those areas allowed for editing. The possibilities are endless.
I mentioned AJAX – I think AJAX is the future of website presentation. It reduces load on a server, is open for the public to view and see how things were done, and because of that encourages contribution. I intend Catalyst to rely on AJAX as much as possible. I really like the tool-man libraries that allow easy drag and drop, as well as double-clicking to edit an area on a web page. I envision the wiki components of Jeens to work this way. When one writes a blog entry they should be able to designate whether that entry is editable by others or not, and if so, all one has to do to edit is double click on the area, edit, and then click outside the area to submit the changes back to the server. It would probably work similar when a user is authenticated and wants to edit/add his or her own blog entries.
So far I’ve written Jeens to utilize MySQL for user management and permissions. I think I am going to move away from this and switch to more of a portable solution such as SQLite for both user management and wiki management. This will keep people from having to have a huge database server on their system just to get Jeens to work. Also, it will keep the MySQL/PostGres wars to a minimum. 😉 The great thing about it all is with the MVC framework someone can write a MySQL/Postgres component if they so desire and submit their own code to CPAN for use with Jeens.