UPDATE August 2011: this project is not longer active and not longer supported by YouAtNotes. You may download and try it to learn about it's java based backend, but I encourage you to not use this project in production anymore. 

OUTDATED description of this project below: 

---

OpenWebCMS is an OpenSource Web Content Management System for Lotus Domino. It's based on the formerly commercial product "YouAtNotes CMS" from YouAtNotes GmbH, Germany. In 10/02 YouAtNotes decided to give this CMS free as OpenSource under the YouAtNotes OpenSource Licence, which is like the GPL.


Documentation can be found here: http://www.youatnotes.de/youatnotes/development/cms/wiki.nsf/pages/Home
Description in german can be found here: http://www.youatnotes.de/cms
Forum can be found here: https://www.youatnotes.de/web/youatnotes/forum.nsf/WebBoardMainActiveCategorized?OpenView&RestrictToCategory=OpenWebCMS


The OpenWebCMS is a complete solution for building dynamic Websites with Domino and to give users the chance to edit the content in simple Notes Richtext. It has loads of features and a sophisticated backend with caching which makes the system very fast.

Features:
General

* Full flavoured Web Content Management system for Lotus Domino. Edit content via Notes client, serve it to the web.
* Extremly flexible mechanism for implementing automatic navigation.
* Very fast due to sophisticated caching.
* Efficient and fast development of layout and functionality for web sites. Easy maintenance.
* Easy to use GUI for users.
* Own logging mechanism if you don't want to use HTTP logs.
* Prepared to custom extensions.

Backend

* Backend is implemented as java servlet and runs on the domino server.
* The backend does all the hard work and caches data (computed HTML stuff), so that the next access to the same kind of data is very fast.
* Backend can serve multiple CMS databases.
* Backend controls the creation of domino backend objects and makes sure that there is no waste of memory.
* Backend writes a log of it's activities and can be set to different log levels.
* Backend can write a log entry for every access to a CMS document from the web. The log entry contains clear text titles and not only cryptic IDs?.
* All logging runs in seperate threads on the server and does not slow down the site.
* Backend does maintenance tasks in a seperate thread.

Web development

* Content is structed in areas (categories). Areas can span multiple levels.
* All kind of automatic navigators can be developed. A navigator can display elements for CMS documents based on their area and level.
* You can display multiple navigators on one page.
* You can define navigators which display only documents of a certain level.
* Automatic expand/collapse functionality in navigators.
* Automatic handling of active/deactive elements in navigators.
* Automatic handling of navigator elements as text or image.
* Navigators can display the result of a full text search to display only documents of specific criterias.
* Template system: a content is assigned to a HTML template. In the HTML you define how fields of the content document should display in the web.
* Content documents are assigend to standard templates, but you can force using another template by an URL parameter.
* In a template you define HTML with embedded domino formulas (named "DML" here). With that you can easily create a very dynamic site.
* You can hold common used HTML/DML fragments as "component", which you can include in several templates.
* Templates for result of a full text search so that you can display search results as you like.
* Support for centrally stored stylesheets.
* Support for centrally stored JavaScript? code.
* Support for centrally stored file resources.
* ... and so much more not coming to my mind at this moment :-)

User GUI

* Users create content based on content types. In a content type you define all neccessary properties for content documents, so that the user does not need to care about that.
* Users create content with NotesRicht? text, but you can also create custom subforms so that the user works with custom fields.
* Optional version management with separation of published and work versions of a content.
* Automatic optimization for search engines - meta tags are create automatically out of the content, you can define standard keywords etc.
* You can define edit rights for each area so that one group of users only can edit content in one area and another group in another area.
* Buttons for write common needed HTML tags into the content field.
* Possibility to store files (images, PDFs?...) in a central place and link to them.
* Usage of central stored text blocks.