Boneless: Simplicity

Complexity through simplicity!

D[oC]clFuaimseeslndtTemplate

In order to remove the bones, but still capture data necessary to operate a website, there are two main types: Documents and Templates.

Documents are defined by a Class and a Class is defined by a set of Fields. The Field objects are pretty robust, offering the ability to sort themselves, implement some rudimentary validation and even reference Documents of other Class types as values for dropdowns. All Classes and Fields are configurable through the administrative interface, making new classes a breeze to generate. Additionally, I implemented an import/export feature to allow sharing of Class configurations between Boneless instances. In practice, I did not come across any instances where I could not accomplish my goal without creative use of these Fields.

Templates are just what they sound like: Go HTML templates that are referenced by Documents. The reference is optional as not all Document objects are a page, some Documents may be components of other Documents. Thanks to DynamoDB’s compound key design, it is very easy to implement versioned templates and pluck off the latest version very quickly.