Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building a Collaborative News Platform with Plone

Érico Andrei
December 07, 2020

Building a Collaborative News Platform with Plone

In this presentation, Érico will introduce the tools and solutions used to build and maintain Pendect.com.
Plone is the core of a solution that integrates with Thumbor, DBpedia, ElasticSearch, IFTTT and Archive.org

Érico Andrei

December 07, 2020

More Decks by Érico Andrei

Other Decks in Technology


  1. Érico Andrei | @ericof | [email protected] | pendect.com Building a

    Collaborative News Platform with Plone Érico Andrei CTO & Co-Founder of Pendect [email protected] | @ericof
  2. Érico Andrei | @ericof | [email protected] | pendect.com Érico Andrei

    Brazilian, living in Berlin Open Source Python Software Foundation Fellow Plone Foundation Board Member Past Microsoft, Simples Consultoria, Rocket Internet, Wundertax
  3. Érico Andrei | @ericof | [email protected] | pendect.com Pendect tl;dr

    TL;DR collaborative news platform Facts > Opinions launched in March / 2020, still in beta
  4. Érico Andrei | @ericof | [email protected] | pendect.com Pendect Ashley

    Winkler Co-Founder • Design, Product, People Christoph Janke Co-Founder • Finances, Marketing, Quality Érico Andrei Co-Founder • Technology, Automation, Security
  5. Érico Andrei | @ericof | [email protected] | pendect.com The idea

    Building a TL;DR news platform. Short cards > long articles Cards are submitted by our community (Pentributors) Cards metadata include: tags, people, organizations and locations Users can follow tags to create a personal feed For each new Card, we plant a tree
  6. Érico Andrei | @ericof | [email protected] | pendect.com Technical Requirements

    Collaborative workflow Permission control Metadata and Categorization SEO friendly, Organic Growth Leverage external specialized services Open Source
  7. Érico Andrei | @ericof | [email protected] | pendect.com Plone for

    Content Management System Most features out of the box Adapt instead of build from scratch Proven record with News Portals Friendly community with very smart people
  8. Érico Andrei | @ericof | [email protected] | pendect.com DBpedia for

    Metadata and Categorization Wikipedia dataset Spotlight to detect entities in texts Docker image to run locally -- but dataset is a bit outdated Sparql to DBpedia to retrieve additional info about entities
  9. Érico Andrei | @ericof | [email protected] | pendect.com And a

    bit of everything else Cloudflare, nginx, Varnish, HAProxy, Ansible Thumbor Sentry, Mailgun IFTTT, Zapier Gravatar Deepl, ScrappingHub, Archive.org (Wayback machine)
  10. Érico Andrei | @ericof | [email protected] | pendect.com Toolset &

    Add-ons Development speed thanks to some friends Python 3 Fstrings, Type Hints, Dataclasses Black, Isort, Flake8, PyCharm Not many Plone Add-ons souper.plone contentrules.slack collective.sentry collective.z3cform.datagridfield
  11. Érico Andrei | @ericof | [email protected] | pendect.com Content types

    Default Folder, Document, Image, Collection Category Uses Collection behavior, but allows sub-objects Card Similar to a News Item, but with more categories
  12. Érico Andrei | @ericof | [email protected] | pendect.com Adapting Plone

    Browser views Dashboard → My Feed Author Page → Pentributor Profile Image / Scale → Proxy to Thumbor Content Rules Actions: Slack, Email, Webhooks Triggers: Principal added to/removed from group
  13. Érico Andrei | @ericof | [email protected] | pendect.com New features

    Aggregator Pages Tags, People, Locations, Organizations Development with souper Follow Categories, Tags, People, Locations, Organizations and Pentributors Voting up, bookmarking
  14. Érico Andrei | @ericof | [email protected] | pendect.com DEO External

    Service Translation, auto summary, archiving Bridge to DBpedia Spotlight Developed with FastAPI  httpx Each endpoint has its own dependencies Hosted with DigitalOcean Apps Platform
  15. Érico Andrei | @ericof | [email protected] | pendect.com Lessons learned

    Always create upgrade steps and be aware of registry configurations Plone training materials are the de facto documentation for Plone Plone theming + Resource Registries  JS development is my nightmare Plone lacks a simple and working async/delayed solution Webp images are not for all -- be careful with caching then
  16. Érico Andrei | @ericof | [email protected] | pendect.com Next few

    weeks Contributions Translation and auto summary to all Pentributors Card Threads Similar to Twitter threads, leveraging content relations Search improvements Moving to ElasticSearch backend Move to RelStorage
  17. Érico Andrei | @ericof | [email protected] | pendect.com Out of

    Beta Plone as headless CMS Volto and Mobile applications Content quality control Integrate LanguageTool submission forms Auto-tagging User management Move from default User Folder
  18. Érico Andrei | @ericof | [email protected] | pendect.com @ericof [email protected]

    pendect.com/pentributors/@ericof @pendecthq [email protected] pendect.com/pentributors https://speakerdeck.com/ericof/building-a-collaborative-news-platform-with-plone