Eloquentia: A quirky, tag-based blog engine

  1. eloquentia
  2. blog-engine
  3. tag
  4. tapestry
  5. mongodb
  6. mongojack
  7. java
  8. www
  9. inception
  10. meta

Important links and information

Author: Thiago H. de Paula Figueiredo, Apache Tapestry committer and PMC member.

License: Apache License, Version 2.0

Source code repository: https://github.com/thiagohp/eloquentia

Issue tracking: https://github.com/thiagohp/eloquentia/issues


Why not? :) I (Thiago) for a long time had an idea of writing a blog engine that was heavily based on tags and which provided specific the option of having per-tag and per-post styles. In addition, it would be used as a light CMS too, so that's why Eloquentia uses the word 'page', not 'post'.

Another reason was creating a pratical, useful project to learn some new interesting stuff like Apache Tapestry 5.4 (due to the project at work, I barely had used T5.2 and later), MongoDB (I've never used a NoSQL database before) and Twitter Bootstrap.

Tags, tags everywhere

Each tag has:

  • A name, which can only use lowercase letters, digits or dashes ('-')
  • A boolean 'subdomain' field which defines affects the tag URL.
  • A title
  • An optional subtitle, which is used in the tag page and in pages which have this tag as their first one.
  • CSS which will be added to its page and to all pages which have that tag.

The URL of a tag is based on its the name. For example, if a tag name is tapestry, the URL will be tapestry.domain.com if it's marked as a subdomain and domain.com/tag/tapestry otherwise.


Eloquentia is configured to use a local MongoDB instance without authentication. Its page, tag and user collections are supposed to be in the eloquentia database. This isn't configurable yet.

Eloquentia is powered by