2. 2
Plone is great
● But sometimes, it’s just not what you need.
● Plone is a CMS. Are you sure there is a CM in your S?
● Lots o features, but for CMS “I don’t need that, or
that, or that.”
● Is it a right fit for the customer? “That’s nice, but can
we add this, and this, and that?”
● “Can we do this just like framework X?”
3. 3
Shoehorning your project into Plone is not good
● For you:
– fighting the framework.
– complex development.
● For your customer:
– substandard features.
– bad usability.
● For Plone:
– Bad reputation.
4. 4
Some common situations
● Move a static website into Plone.
● Need simple app to get data from Plone.
● Need completely new app that interacts with Plone.
● Need completely independent app.
5. 5
Move a static website into Plone
● Is it possible to just host it using Apache or
Nginx?
● If not, a simple way is to add it as a directory
resource.
● If a small site, can just add Plone pages and
copy/paste.
● For larger sites, consider using transmogrifier.
6. 6
Need simple application to get data from Plone
● To get the data:
– Plone.restapi.
– Write special json code from Plone views.
– Please, no web scrapping.
● To create the application:
– Lightweight web app using Python or other language
(if you must).
– JS only app.
– A combination of both.
7. 7
Need new application that integrates with Plone
● Similar to previous case, but warrants a deeper analysis of the
requirements.
● Explore best tool for the job. How much flexibility is needed?
● How to “talk” to plone? Per request communication can be costly.
● Sync data with celery tasks or other queuing mechanisms.
● Consider shared catalog using solr or elastic search.
● For a great case study, don’t miss David Glick’s talk about
integrating Plone with Pyramid and several other pieces, at 14:50
today!
8. 8
Need completely independent application
● You are not forced to use Plone for everything.
We won’t take it as an affront.
● Many options. First question is: how many
decisions can be made for you before you start?
● Make a short list and try to compare
features/flexibility/time to learn.
● Try things out when possible.
9. 9
What to use instead of Plone
● Depends on type of application.
● Django.
● Pyramid.
● Flask?
● Plenty more options.
11. 11
Why Pyramid might be a good fit for Plone
developers
● It’s part of the family!
● Zope Page Templates (Chameleon).
● Similar concepts:
– Context.
– Traversal.
– Interfaces (ZCA).
● Works very well as a lightweight backend for ReactJS or
Angular apps.
● Much more flexible than Django, more robust than
Flask.