C5 as a mobile CMS

Permalink
Hi all,

I'm researching if C5 is the right tool to power an Android app with contents. I know that I can create a responsive theme and display the site in a web view but now I'm trying to find out if it is possible to manage only the content of the pages/nodes in C5 and delivering them via JSON to an app and let the app do the styling. The main requirement is the support of different languages one of them is arabic -> rtl texts.
There are some hosted alternatives like contentful.com but the client wants a self-hosted solution and building such a thing from zero wouldn't fit the budget.

I appreciate any input on this topic since I'm quite inexperienced with mobile cms solutions.

alfredbrose
 
Mainio replied on at Permalink Best Answer Reply
Mainio
The current version of concrete5 is heavily geared towards website editing and displaying the content on that particular website. It fits better into the more traditional idea of content management systems e.g. when compared with contentful.

In theory, it is possible to fetch the content areas programmatically and print out their content in a JSON but you would be still left out mostly with some HTML markup content in your JSON. You could also customize the output of the blocks particularly for your mobile use (e.g. leave out the HTML markup) but I think in the longer term I would expect this to be quite difficult to manage.

Of course, it is possible to build dashboard management interfaces and then print out that data in JSON format but since you didn't want to build something from scratch, I'm not sure if this solution would be any better. So, I'm not going deeper into that.

The next main version 8 of concrete5 will ship out with a feature called "Data Types". The concept is quite similar e.g. to what Drupal calls "nodes", although it will not be the basis of any of the core models, as of my understanding. This allows you to build any kind of arbitrary "data object" for which you can add any number of any type of attributes you want. These are not in any way attached to the normal content structure (areas, blocks, etc.), so you could basically display this data in any format you want or send it to your mobile applications in a clear format. You also get a dashboard management interface for these data objects without writing a line of code.

But as said, that is for the next version 8. There is no release date on that yet. If you want to try out the current development version, it is available through GitHub:
https://github.com/concrete5/concrete5/tree/release/8.0.0...

Please note that probably not 100% things currently work in that development branch.

Some things to note, though, comparing this e.g. to contentful:
- As of my understanding, there is no versioning for the data objects. This means that instantly when a thing changes with your data object, it is available to all channels that display it, including your mobile application. There is also no publish process or workflows built into these, like we have for normal content.
- There is no localization/internationalization built into these objects. If you need content in multiple languages, you will need to duplicate the entities. (please note in contentful this is also only available in the higher priced plans)

I think the RTL issue is quite irrelevant here. It is more of a display issue within the application, not necessarily related to content management. So yes, there should be no problems saving RTL content on any of these platforms.
alfredbrose replied on at Permalink Reply
alfredbrose
Thank you very much for this very detailed answer. I love C5 but in this project I'm going to stick with drupal because in version 8 it supports JSON outputs and it is designed to be usable as a mobile cms natively.

Alfred