What is the best way to learn developing addons for plone?


I am new to plone and want develop addons . the training materials are bit complicated , is there any ways to master plone development by referring any other addon models or so ,if possible please provide a roadmap :hugs:

You need time, it won't happen over night.


volto is fine, but zope , plone backend and templating language's are bit confusing . I've been working on this for months :sweat_smile:

If there are open issues or open questions, please raise them or ask a bit more specific.

1 Like


Hi Midexe, if you are using Volto you can skip the page templates, that applies to the classic deployments. Your Plone Addons will mostly be focus on functionality like, content types with complicated permissions/validador/invariants/scripts that needs to happen in the server side or a new api endpoint/python script.

Zope is a web interface unless you are dealing with authentication plugins, workflow editing, or export settings you won’t be using it in development much now a days. It is very similar to a file system.

Plone/Zope is like a roll-a-coaster it has a steep learning curve at the beginning but is all fun and joy after the first drop.


I trained lots of teams and people over the past years and moving from Plone Classic to Volto was a booster for our productivity and the onboarding process. If you go with Plone 6 (Volto) you just have to learn standard web technologies (HTML, CSS, JavaScript, React) and how to work with the Plone REST API. This drastically reduces the amount of software that a developer needs to understand and master. At kitconcept we can train people from zero (knowledge of web technologies) to being able to create a full Volto project (without any assistance) in six months. This would have never been possible with the old stack.

I'd strongly suggest skipping Plone Classic, page templates, etc., and starting with Volto and Plone 6.

Disclaimer: I am the main author of plone.restapi and one of the driving forces behind Volto. Therefore my option is highly subjective.


When using terminolgy like Classic UI and Volto one usually refers to frontend development.
Even if the frontend is an important part it is only a small part of what Plone is and offers (Volto != Plone).

Specially when using Volto you are restricted to what the restapi offers. The restapi is by far not yet complete and by now it exposes lots but not all the aspects of Plone.

If you need functionality that is not make accessible by the restapi you'll need to dive beneath the frontend by directly accessing the multiple available libraries.

In my experience every non-trivial project must sooner or later customize parts behind the "frontend". Be it Volto or Classic UI.

Volto's main advantage is that it hides all the technology behind. This though might also become a disadvantage.

If you plan to develop something more than a frontend for Plone take a look at the trainings and documentation besides Volto.


What specific features do you want to add on to Plone?

The answer to "How to develop add-ons?" is, it depends on what you want to do.

@mekell your use case might differ from our regular use cases. In our experience, I'd say that more than 90% of the development in our average project happens in Volto. My comments were based on this assumption and experience.

Can you elaborate on what specific feature you are missing in the REST API?

This reminds me of Pareto principle. :wink:

Our projects are usually not much UX based at all but they do have heavy content manipulation/transformation. This is why we go for Plone instead of e.g. WordPress.

We have not yet made a thoroughly audit of the RESTAPI. But based on our current project we came to the following issues:

Since this goes beyond of the original question I'd suggest to either create a new topic for this or better refer to the issues on github: Issues · plone/plone.restapi · GitHub.