Niggle is a web application framework, a set of java classes that, once mastered, should make it very easy to develop robust web-based applications -- i.e. apps in which the end-user interface is provided by the web browser and the back-end logic runs on a server -- very typically storing and retrieving its data from an external data source, such as an RDBMS. Server-side web apps written on top of Niggle should be portable to any system on which Java 2 and the Java Servlet API are available.
Niggle's architecture is based on a very rigorous, clear separation between (i) data, (ii) presentation, and (iii) the actual dispatching/processing logic of the program. To the maximum extent possible, none of those three tiers of the code make any assumptions about the implementation in any other tier. The result of this is that, if you write a web application based on Niggle, you should be able to change from one database implementation to another and none of the rest of the code should need any changes. You could also change entirely your application's presentation tier, by changing the page templates or even the template engine that your application uses, and there should be no need to change any application-level code.
Here are some notes about Niggle's history, current status, and future.
Here are some further notes about Niggle's basic design and underlying philosophy.
Here is a link to the javadoc-generated API documentation.
Well, we hope that sounds intriguing enough for you to download Niggle and get started!
To stay informed about Niggle, you can subscribe to Niggle-related mailing lists here.
The niggle framework was originally developed as an in-house project at Reminders On-Line (ROL). It is the framework that underlies the java servlet-based reminder service at Medimom that is ROL's main activity. I am grateful to ROL for having the enlightened vision to make Niggle available under a liberal open source license -- in the hopes that it is useful to other projects, but also that further enhancements and improvements will be rolled back into the code base so that we can all benefit.