--- html_meta: "description": "" "property=og:description": "" "property=og:title": "" "keywords": "" --- (intro-what-is-plone-label)= # What is Plone? Plone is an open source Content Management System (CMS) built in Python. A CMS lets non-technical people create and maintain information for a public website or an intranet using only a web browser. - Open-Source Enterprise-CMS - Written in Python - Plone 5.1 and below support Python 2 - Plone 5.2 supports Python 3 and 2 - Plone 6 supports Python 3 - [RESTful hypermedia API](https://plonerestapi.readthedocs.io/en/latest//) - `Volto`: React-based frontend and editor - Based on the Web-Framework Zope - Database: `Zope Object Database` ZODB or ORM & SQL/Postgres/Oracle - Runs on Linux, macOS, BSD, Solaris, NixOS and Windows Plone has a multitude of powerful features, is easily accessible to editors but also fun for programmers. - Workflow-driven, collaborative management of content - Industrial Strength Security and Access-Control - Limitless Extensibility ```{note} The modular and open component architecture of Plone allows you to change or extend Plone in every respect! ``` ```{seealso} - [What Is Plone?](https://docs.plone.org/intro/index.html) - [Conceptual Overview](https://docs.plone.org/working-with-content/introduction/conceptual-overview.html) ``` ## Core concepts Here are the technical concepts that Plone uses. They make Plone special and distinguish it from most other systems. ### Traversal - Plone uses [Traversal](https://docs.plone.org/develop/plone/serving/traversing.html) (portal/folder/document) instead of Routing - Python objects exists in a object tree that looks like a huge nested dictionary: ```python {'site': {'folder': {'page': page_object}}} ``` - Objects can be accessed like walking through a file-system: ```python root['site']['folder']['page'] ``` ```python >>> from plone import api >>> portal = api.portal.get() >>> portal.keys() ['folder1', 'document1'] >>> portal['folder1'] ``` ### Object publishing Objects can be called and return a representation of itself - usually HTML. ```python >>> obj = portal['folder1']['a-newsitem'] >>> obj >>> obj() '\n\n\n