---
myst:
html_meta:
"description": ""
"property=og:description": ""
"property=og:title": ""
"keywords": ""
---
(plone5-intro-what-is-plone-label)=
# What is Plone?
Plone is an open source Content Management System (CMS) built in Python.
- Open-Source Enterprise-CMS
- Written in Python
- Plone 5.1 and below support Python 2.7
- Plone 5.2 and later support Python 3.8, 3.7, 3.6 and 2.7
- [RESTful hypermedia API](https://github.com/plone/plone.restapi/)
- Based on the Web-Framework Zope
- Database: "Zope Object Database" (ZODB) or ORM & SQL/Postgres/Oracle
- Runs on Linux, Mac OS, 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!
```
## Core concepts
### Traversal
- Plone uses [Traversal](https://5.docs.plone.org/develop/plone/serving/traversing.html) (portal/folder/document) instead of Routing
- Python objects 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()
u'\n\n\n