Gadgets is a framework glues HTML::Mason together with XML::Comma while providing powerful hooks for authenticaiton and authorization and application configuraiton. Gadgets has built in faculties that can validate, store, manipulate and display common social software data, inlcuding structured and unstructured text (think CMS, Blog, Wiki), images (think Flickr), audio/video (think podcast) and more. Gadgets also provides a sophisticated translation interface for application authors, taking the pain out of creating translation tools with a couple simple lines of Perl.
The gadgets framework includes a number of complete applications, including a Blog and a Wiki, both of which have a WYSIWYG editor and tight email integration. This includes posting via email, replying to a post via email (with complete attachment support), and flexible subscriptions to threads, authors, groups, and tags.
Gadgets applications (which are singular gadgets) are self containted in a single zip archive, but are aware of each other, and can call mason components within each other. This makes it easy to do things such as write a new skin for a particular gadget, or make a change to how a particular view looks. A gadget can contain three directories, "mason", "comma", and "lib". The "mason" directory contains all of the gadget's HTML::Mason components. The "lib" directory contains the gadget's controller code (we know how you like to separate your Perl from your HTML!). The "comma" directory contains a spec file that lets Gadgets know what interface the gadget implements, what paths to map to the gadget, and some other housekeeping data.
That's enough hype, let's start Writing Gadgets!
ADGETS