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

Building a Collaborative News Platform with Plone

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

0d101e3f0532968db05e9cb760009100?s=128

Érico Andrei

December 07, 2020
Tweet

Transcript

  1. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Building a

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

  3. Érico Andrei | @ericof | ericof@pendect.com | 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
  4. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Pendect tl;dr

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

    Winkler Co-Founder • Design, Product, People Christoph Janke Co-Founder • Finances, Marketing, Quality Érico Andrei Co-Founder • Technology, Automation, Security
  6. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Planning Pendect

  7. Érico Andrei | @ericof | ericof@pendect.com | 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
  8. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Technical Requirements

    Collaborative workflow Permission control Metadata and Categorization SEO friendly, Organic Growth Leverage external specialized services Open Source
  9. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Pendect Stack

  10. Érico Andrei | @ericof | ericof@pendect.com | 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
  11. Érico Andrei | @ericof | ericof@pendect.com | 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
  12. Érico Andrei | @ericof | ericof@pendect.com | 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)
  13. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Building Pendect

  14. Érico Andrei | @ericof | ericof@pendect.com | 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
  15. Érico Andrei | @ericof | ericof@pendect.com | 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
  16. Érico Andrei | @ericof | ericof@pendect.com | 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
  17. Érico Andrei | @ericof | ericof@pendect.com | pendect.com New features

    Aggregator Pages Tags, People, Locations, Organizations Development with souper Follow Categories, Tags, People, Locations, Organizations and Pentributors Voting up, bookmarking
  18. Érico Andrei | @ericof | ericof@pendect.com | 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
  19. Érico Andrei | @ericof | ericof@pendect.com | 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
  20. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Future Steps

  21. Érico Andrei | @ericof | ericof@pendect.com | 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
  22. Érico Andrei | @ericof | ericof@pendect.com | 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
  23. Érico Andrei | @ericof | ericof@pendect.com | pendect.com

  24. Érico Andrei | @ericof | ericof@pendect.com | pendect.com Thank you!

  25. Érico Andrei | @ericof | ericof@pendect.com | pendect.com @ericof ericof@pendect.com

    pendect.com/pentributors/@ericof @pendecthq hello@pendect.com pendect.com/pentributors https://speakerdeck.com/ericof/building-a-collaborative-news-platform-with-plone