HTML Logo by World Wide Web Consortium ( Click to learn more about our commitment to accessibility and standards.

Moving forward with Composr

ocPortal has been relaunched as Composr CMS. ocPortal 9 is superseded by Composr 10.

Head over to for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.

End of year update

End of year update Hi all,

I'm just posting a quick end of year update on Composr v10 development.

Not much development happened over summer and autumn, as we were very bogged down rescuing some legacy projects for customers. These were outstanding commitments from much earlier in the year, before our new-work lock-down. However, those concluded and over the last few weeks I've been doing frequent big commits pushing through the remaining v10 tasks.

As of yesterday all the enterprise CMS functionality for v10 is finished :). I haven't written much about this, but this new functionality is hugely important, representing a big step forward, and an overhaul, that we've wanted to make for a long time. To better understand what it is about, here's a part of our "The Repository" tutorial that covers it:
The Composr repository is a shadow representation of Composr's data.

In most cases, Composr data is stored in the database, which is not a particular user-friendly form, given databases are generally designed with a special set of rules that lead to data being split up across multiple tables. Sometimes data is also stored on the filesystem (i.e. the disk); for example, file uploads.

The Composr repository represents the data into a form that feels far more naturally and integrates with many kinds of tools you may want to use on it. Most of the data is encoded using the JSON standard.

Through WebDAV (needed for most of the use cases below) you can access the repository as a folder on your own computer.

Specifically, the following use-cases are served by the repository:
  • Making Composr opaque – dive right into Composr's content/resource data and get an immediate sense of what is there and how it is structured
  • Making Composr tactile – easily manipulate data via normal drag & drop operations without a clunky and slow web interface; for example, mass move entries from one category to another
  • Making transferring data between sites (e.g. from a staging site to a live site) easier – copy & paste from one site to another and Composr will magically import everything, reassign ID numbers as required, auto-match named categories where possible, and create empty-shells for missing dependencies as required
  • Integration with normal desktop applications – use your favourite text editors or file-search tools to achieve things such as mass search & replace
  • Configuration management – track what options have been changed, and transfer them between sites
  • Backups – copy portions of the repository to another location for backup; for example, if you are about to make major changes to the catalogue structure, take a backup of the catalogues
  • Revision control (built-in) – content types supporting the revisions system can save the full data of any edited or deleted resource, for retrieval later
  • Revision control (advanced) – hook up git to the repository directory, either locally, on your server, or both, to backup content as it is modified
  • A file system for the Composr command line (Commandr)
  • Creating an abstract resource API (for programmers) – by having a resource model that is abstract (i.e. it's a single model that can be used for manipulating any kind of content/resource), programmers can come up with some clever functionality; Aggregate Content Types is an example of Composr functionality that is built on top of the repository
  • An API for separate apps (e.g. mobile apps) to connect through to

A lot of other tasks have been concluded also. Composr Mobile SDK is almost complete – all the server-side stuff (e.g. Android/iOS notification support) is done, and only some remaining final tasks are being done for the iOS/Android platform code.

v10 development is now basically loose ends, and getting our new site finished. It won't be long now.

A number of customers have been asking about the transition. I can't provide any concrete details until we've gone through the full final upgrade process on at least one real v9 site. There are still too many details floating around for that level of clarity to exist even in my own head. Once we have everything ready to flick the switch we'll start providing updates on ocPortal support lifetimes and other final details like how exactly the upgrade process will work.

Merry Christmas,

View all


There have been no trackbacks yet