Zen CMS List (or simply Zen) is a WordPress plug-in, architected and developed by AJYVR from scratch, which turns the out of the box (OOTB) WordPress taxonomy into a robust file and content management system.
Zen was developed to address the recurring need to:
- Organized data in a structured, meaningful, simple and transferable manner.
- Enforce security on content visibility based on audience.
- Provide a standard content visual presentation.
- Provide a means to organize, segregate files in logical groups outside of the Media library.
- Simplify and improve OOTB mechanisms used in data classification.
- Provide a means to easily reference information from within and without.
- Provide a means to capture, classify and retrieve common data sets: tasks and forms.
Zen took a while to develop for many many reasons. Its initial inception on May 19, 2012 created various incarnations, a C# application followed by multiple PowerShell versions. It’s not until March 20, 2021 when the WordPress plug-in development went into full swing — “thanks” to the COVID-19 pandemic quarantine. With the proof-of-concept completed on the third day and the core functionality completed two days later, soon, features were checked off one by one — some in a matter of minutes, hours or days while others a week or so — until it was down to the last two: Tasks and Forms. Both are currently in beta and alpha versions respectively.
The tipping point of the development initiation was frustration. After five years of observation in the IT corporate world, where it’s very common to see information in disarray resulting in wasting so much time hunting for information (be it on-boarding new team members or day-to-day operations), I’ve had it. It didn’t matter if they’re using open source or expensive proprietary CMS tools, most often that not, technology (especially the more sophisticated ones), seems to only make things worst. There seems to be this notion that these nifty technology are silver bullets that would miraculously put things in order, and that Search is the answer to all information hunting troubles. If data were structured in a logical manner, properly defined, using minimalistic and intuitive tools, looking for information would be easier since your search will be driven by context not technology bells and whistles (and not vendor marketing up-sells), but I digress.
How Does Zen Work?
At the core of Zen are security and CMS List type attached to a category.
One can argue that an exposed database or file system sitting on a server are big gaping security holes, which are true. A malicious person might swoop in and grab data from both database and file system. However, from the normal end-user perspective, both concerns are a few walls behind. If your server is compromised, that issue is infrastructure not application. Moving on…
In the WordPress Administration screen, Zen adds a few more options when editing or adding new post categories.
- Type – is the behavior assigned to a category. And it can be any of the following:
- Glossary – posts are organized in “definition of terms” format.
- List – posts are organized in a simple list format.
- Links – posts are organized in a simple list, but their link points to an external resource.
- File – posts act as files container, stored outside of Media library, and can be images or other file types. Files can be rendered as a gallery, list or detailed file list, etc.. File container can be hosted off the main host using virtual hosts.
- Tasks – (beta) posts are organized as tasks, with added basic attributes such as: owner, due date, progress and state.
- Forms – (alpha) posts served as form data receptacle. The data captured will vary depending on the form assigned to the category.
- Security – sets the minimum role for a user to have in order to view a category. A few things to note about zen security:
- Security is not inherited, therefore, a parent category with high restriction has no effect on a sub-category with lower or no restriction. This is by design to allow fine-grain permission in a multi-level category tree.
- To avoid exposing a file’s explicit storage path, Zen includes a file retrieval mechanism to obfuscate explicit file paths, using the service to serve a requested file instead of direct access. A feature that can be turned off. This excludes image thumbnails.
- Exclusive – restricts access of the category only to users who has the role selected for Security.
- Panel – sets a particular category as a container for Panels list items used to create dashboards.
At a minimum, a CMS List Type is assigned to a category for the Zen to kick in. Otherwise, it will revert to the default OOTB or theme behavior. Each type comes with an accompanying post Meta Box to service that particular type.
If security is set to a specific role, it will be enforced on all queries to the taxonomy category — this includes search, single posts, post enumeration, tags, and CMS List Archive.
Zen Won’t Affect
- Custom post types
Zen Universal Feature
Once Zen is activated, some features are enabled automatically and are available for use.
- Responsive image – adding ‘cms-img’ class to a post image will make it clickable and responsive.
- CMS Attribution – is a metabox enabled during post edit where you can add name and link to the source of your write-up or reference. The attribution will be added as a footnote list to a post when viewed.
- CMS Post Treatment – are an initial set of switches to aide in post composition.
- Category Browse – a new box is added on top of the Categories list. Clicking on any of the categories listed will take you to the category tree structure.
How Is Zen any Different Than other CMS?
Zen is intended to be a minimalistic approach to CMS to solve information and file disarray, using dashboards, panels, universal look-and-feel, and straight-forward configuration and data organization approach.
Zen only has two basic rules:
- A post must be classified in a leaf category, therefore, it should never have categories as siblings. This rule is currently a guideline and is not enforced in code.
- Keep category slugs short using systematic acronyms, since it’s the display names that matters.
Zen’s architecture was designed based on decades of experience in software development, utilizing best practices and proven architectural approach learned and applied from various industries. As part of its minimalistic approach and ease of maintenance, Zen was built using only essential and fundamental programming elements. Only incorporating third-party components where absolutely necessary to avoid feature creep, bloated dependencies, and linkages to external entities. Except for external fonts and locally hosted jQuery and Masonry scripts, everything in the Zen CMS List codebase was built from scratch. This eliminates having to support components owned by third-parties, and exposing its design to potential points of failure when vendors cease to exist or change product architecture, to name a few.
Zen CMS List comes with a companion plug-in, BB7 Menu, to drive the menu system. But it’s decoupled and optional.
Zen is currently being used as a personal CMS tool to organize to-do list, contacts, research information (instead of using browser bookmarks), photo galleries, journals, etc..
Zen was designed with the following data organization in mind:
- Agenda and to-do list.
- Bug tracking.
- Bookmarks and information snippets organization.
- Contact management.
- Dashboard — control panel for support, operations, and day-to-day activities.
- File organization.
- Help desk call logging.
- Journals and personal notes.
- Multi-media file management – photos, music, etc..
- Operations tasks and activities.
- Project data, file and other artifacts organization.
- Software development task list.
- And most importantly to:
- Reduce storage space consumption by minimizing/eliminating redundancy.
- Establish a record of truth.
- Make things repeatable.
- Make things less stressful, in order to focus on the real work.
- Have peace of mind.
…without having to pay excessive licensing fees and accumulating a string of complex dependencies that will take a village to setup and manage. And most importantly, to be in complete control with your own digital assets and your privacy.
Perhaps, simplicity is a good first step to bringing order to chaos. And so we hope…