Open space about headless CMS

published Oct 19, 2017

Open space at the Plone Conference 2017 in Barcelona.

MVP (minimal viable product) approach can be good. Start with a basic skate board, then go for the best skate board in the world. Create a set of user stories, like: login, add, edit, delete content, add images. SEO so you can be found on search engines. Get something basic where companies and individuals can jump on board. Start with a small project that can grow.

'Medium' editor can be an option, more lightweight than TinyMCE. Editors can be fine on their own, but are usually hard to extend. Just some inline styles, like bold, italic, link, can be enough as basis. We can start with any editor and try to make it work. We can base on the GraphJS editor, where Rob Gietema did a prototype. We don't want to reinvent our own editor.

Which exact editor we use, should be an implementation detail. We should still decide what the features should be, how the user experience should work for the editor.

We need to put an editor in the hands of actual users and see if they can actually use it or are confused.

We know about React and Angular, and they can battle it out. But what css framework should we choose? If we have a prototype with either React or Angular, then after that we will be more able to pick a certain css framework.

Just get something done. If we wait until we are sure, then it will automatically be the wrong choice by the time we are done.

We will not take everything we currently have in Plone and reimplement it in Javascript. Expose the backend to the frontend, and then you can do on the frontend whatever you want to do. Want other widgets? Take another javascript widget library.

Don't try to solve too many problems at the same time.

We can also just call it a proof of concept, then no one will care about the implementation. Hire someone to do it in PHP, that is fine too.

MVP:

  • login
  • add a page with title and text, no wysiwyg yet
  • view a page
  • edit a page
  • mark body text as bold, italic, add a link
  • add image to the body text of a page. That includes folderish content, and drag and drop, so that is a large thing that can be split up
  • Take less than half a second to view the page.
  • Let Google see the page.

The backend can just be current Plone, maybe with a bit of helper code.

We may need a folderish page type, where you can drop files and images. But let's not discuss folderish types for hours, let's start building. Try it and see what works.

If with plone.restapi it works on Plone 4, then that makes it far easier to show on current existing sites to actual users.

But apparently we want to store the page content as json and not html, so that is not likely on Plone 4. Well, for new content it could work, but you will not be able to edit content that was created with TinyMCE. For example, you cannot edit tables yet.

Is the user the end user, or the frontend developer?

For A/B testing, we could strip down TinyMCE to only do what our new UI will be able to do, for better comparison.

It is not up to us to decide if this goes into Plone core or not. We just want to show the Pastanaga UI.

Second part: how do we make this happen?

We can work on this during the conference sprint. We already had sprints. We can fund more sprints.

We could build an MVP during a project that we have recently started, but the budget is probably not enough. If other companies have similar projects, that would help.

Raise awareness on the Pastanaga project homepage, showing which company or individual sponsored or did another contribution.

An MVP would help to make more things happen. I don't want the MVP to take a year to finish.

The highest risk is: not doing something.

Lots of us no longer have the possibility to put in free time. Albert and Rob and Roel put in a lot of time. I (Timo) hardly have time to code anymore.

If this takes two years, then it is too long.

Can we get people from the Javascript community interested and involved? If we can't attract them, then why are we doing this and where will Plone be in a couple of years? Aren't they our target users after all?

Can we explain the Pastanaga UI on a website, and get people on board that way.

Money can also make things happen, get some companies to fund it, and hire some developers from the Plone community to do it.