Edit me on GitHub

Introduction

Substance D is an application server. It provides the following features:

  • Facilities that allow developers to define “content” (e.g., “a blog entry”, “a product”, or “a news item”).
  • A management (a.k.a., “admin”) web UI which allows non-expert but privileged users to create, edit, update, and delete developer-defined content, as well as managing other aspects of the system such as users, groups, security, and so on.
  • “Undo” capability for actions taken via the management UI.
  • A way to make highly granular hierarchical security declarations for content objects (e.g., “Bob can edit this post” or “Bob can edit all posts in this collection” as opposed to just “Bob can edit posts”).
  • Built-in users and groups management.
  • Built-in content workflow.
  • Indexing and searching of content (field, keyword, facet, and full-text). Searches can be easily filtered by the security settings of individual pieces of content, by path in the content hierarchy, or by a combination of the two.
  • A facility for relating content objects to each other (with optional referential integrity).
  • An “evolve” mechanism for evolving content over time as it changes.
  • A mechanism to dump your site’s content to the filesystem in a mostly human-readable format, and a mechanism to reload a dump into the system.

Substance D is built upon the following technologies: