|
9 | 9 |
|
10 | 10 | (overview-label)= |
11 | 11 |
|
| 12 | + |
12 | 13 | # Overview |
13 | 14 |
|
14 | | -````{todo} |
15 | | -This page needs content. |
16 | | -```{seealso} |
17 | | -[Issue #1352](https://github.com/plone/documentation/issues/1352) |
18 | | -``` |
19 | | -```` |
| 15 | +Plone is a content management system (CMS) that is well-known for its user-friendly interface and robust security features. |
| 16 | +With Plone, even non-technical users can easily create and manage the content for a public website or intranet using only a web browser. |
| 17 | +Plone's intuitive interface and comprehensive set of features make it a popular choice for businesses, governments, universities, and any organization that needs a reliable and easy-to-use CMS. |
| 18 | + |
| 19 | +Plone has a long history and has been trusted by users around the world since its initial release on October 4, 2001. |
| 20 | +Over the years, Plone has undergone many improvements and enhancements, making it a highly mature and stable CMS. |
| 21 | +Additionally, Plone is supported by a strong community of users and developers who contribute to its ongoing success. |
| 22 | + |
| 23 | +Plone has the maturity, stability, and reliability of an application maintained by open source developers with decades of experience, while continually evolving and adapting to modern technology. |
20 | 24 |
|
21 | | -(overview-2-label)= |
| 25 | +Lots of customizations can be made through-the-web, such as creating content types, themes, workflows, and much more. |
| 26 | +A full file system based development workflow is possible and recommended for team work and deployment, backed by source code repositories. |
| 27 | +Plone can be extended and used as a framework on which to build custom CMS-like solutions. |
22 | 28 |
|
23 | | -## Key concepts of Plone |
| 29 | +Plone works as a: |
24 | 30 |
|
| 31 | +- Full-featured server-side rendered HTML CMS. |
| 32 | +- React-based frontend for editing and viewing content, backed by a server with a REST API. |
| 33 | +- Headless CMS server with a REST API, allowing a developer to build a custom frontend with their chosen technology. |
25 | 34 |
|
26 | 35 | (overview-3-label)= |
27 | 36 |
|
28 | | -### Web content management system |
| 37 | +## Key benefits |
29 | 38 |
|
| 39 | +Security is built into Plone's architecture from the ground up. |
| 40 | +Plone offers fine-grained permission control over content and actions. |
30 | 41 |
|
31 | | -(overview-4-label)= |
| 42 | +Plone is easy to set up compared to other CMSs in its category, extremely flexible, and provides you with a system for managing web content that is ideal for project groups, communities, websites, extranets, and intranets. |
32 | 43 |
|
33 | | -### Add-ons |
| 44 | +- **Plone empowers content editors and web application developers.** |
| 45 | + The Plone Team includes usability experts who have made Plone easy and attractive for content managers to add, update, and maintain content. |
34 | 46 |
|
| 47 | +- **Plone is international.** |
| 48 | + The Plone interface has more than 35 translations, and tools exist for managing multilingual content. |
35 | 49 |
|
36 | | -(overview-5-label)= |
| 50 | +- **Plone follows standards and is inclusive.** |
| 51 | + Plone carefully follows standards for usability and accessibility. |
| 52 | + Plone is compliant with WCAG 2.1 level AA and aims for ATAG 2.0 level AA. |
37 | 53 |
|
38 | | -### Traditional server side rendered HTML pages |
| 54 | +- **Plone is open source.** |
| 55 | + Plone is licensed under the GNU General Public License, the same license used by Linux. |
| 56 | + This gives you the right to use Plone without a license fee, and to improve upon the product. |
39 | 57 |
|
| 58 | +- **Plone is supported.** |
| 59 | + There are over two hundred active developers in the Plone Development Team around the world, and a multitude of companies that specialize in Plone development and support. |
40 | 60 |
|
41 | | -(overview-6-label)= |
| 61 | +- **Plone is extensible.** |
| 62 | + There is a multitude of add-on products for Plone to add new features and content types. |
| 63 | + In addition, Plone can be scripted using web standard solutions and open source languages. |
42 | 64 |
|
43 | | -### Headless CMS with JavaScript frontend through a REST API |
| 65 | +- **Plone is technology neutral.** |
| 66 | + Plone can interoperate with most relational database systems—both open source and commercial—and runs on many platforms, including Linux, Windows, macOS, and BSD. |
44 | 67 |
|
45 | 68 |
|
46 | | -(overview-7-label)= |
47 | 69 |
|
48 | | -### Explain frontend-backend terms |
| 70 | +(overview-4-label)= |
49 | 71 |
|
| 72 | +## High Level Overview for Developers |
50 | 73 |
|
51 | | -(overview-8-label)= |
| 74 | +Plone is a content management platform with its backend written in Python. |
| 75 | +It is built on top of the open source Zope web application server and development system. |
| 76 | +Plone makes use of the pluggable Zope Component Architecture (ZCA) to provide a highly modular and extensible system. |
| 77 | +Throughout its history, Plone has used server-side rendering to generate HTML-based content, with advanced resource management features for adding and bundling CSS and JavaScript. |
| 78 | +Additionally, Plone's use of a component architecture makes it easy to extend and customize, allowing users to create unique, feature rich websites that are tailored to their specific needs. |
52 | 79 |
|
53 | | -### Security |
| 80 | +With the release of Plone 6, you now have the option to choose from two different out-of-the-box supported configurations when setting up a new Plone website. |
| 81 | +The Python-based backend server in Plone can still be used alone to render content server-side and deliver HTML to the browser, a setup that is referred to in the Plone documentation as "Classic UI". |
| 82 | +This configuration has been supported by Plone since its initial release and is still available in the latest version of the platform. |
| 83 | +For container-based deployment, only the `plone-backend` image is required. |
| 84 | +It may be used as a base image, adding customizations, to make a derivative image. |
54 | 85 |
|
| 86 | +The default and recommended configuration for new websites in Plone is the new React-based JavaScript frontend called "Volto". |
| 87 | +For this setup you still need to run the Python-based backend server, as well as enable the REST API, and update the configuration profile. |
| 88 | +These settings and profile are applied automatically when you select the {guilabel}`Create Plone Site` option in the Plone website creation form. |
| 89 | +In addition a separate NodeJS based frontend server will serve the JavaScript frontend resources and provide SSR with hydration. |
| 90 | +To deploy this setup using containers, you will need the `plone-frontend` image for the frontend server. |
55 | 91 |
|
56 | | -(overview-9-label)= |
| 92 | +Beginning with Plone 6, we now support two programming language stacks, one each for Python and JavaScript. |
| 93 | +The documentation has been rewritten, but for this first release you will find some repetition of concepts in the documentation structure. |
| 94 | +See, for example, the development setup and information on deployment options. |
| 95 | +It will take some time until we find and can implement the best structure to explain these new possibilities and the expansion of Plone's capabilities. |
| 96 | + |
| 97 | +```{seealso} |
| 98 | +https://training.plone.org/mastering-plone/what_is_plone.html |
| 99 | +``` |
57 | 100 |
|
58 | | -### Accessibility (a11y) |
59 | 101 |
|
| 102 | +(overview-5-label)= |
| 103 | +## Deployment |
60 | 104 |
|
61 | | -(overview-10-label)= |
| 105 | +To run a public Plone website in production, you will also need to configure and run a reverse proxy (or ingress), arrange for SSL certificates (either from Let's Encrypt or manually), guarantee persistence of the content database, and arrange backups. |
| 106 | +This is the domain of systems administrators and modern developer-operations professionals. |
| 107 | +Our documentation contains setup examples for these services, yet requires that the reader have some generic experience and knowledge of these domains. |
62 | 108 |
|
63 | | -### Internationalization (i18n) |
64 | 109 |
|
| 110 | +(overview-6-label)= |
| 111 | +## Good to know / What to know |
| 112 | + |
| 113 | +One of the key benefits of the new React-based frontend for Plone 6 is that you can now customize and theme Plone extensively using HTML, CSS, and JavaScript using up-to-date frontend technologies without having to set up a local Python development environment. |
| 114 | +The Plone backend can be run on a local developer machine in a container. |
| 115 | + |
| 116 | +Basic familiarity with programming in Python and managing Python modules and packages using `virtualenv` and `pip` is required to work on the backend code. |
| 117 | +We use `virtualenv` and {term}`mxdev` to manage the source installation of packages in Plone 6. |
| 118 | + |
| 119 | +Similarly, to develop for the new React frontend, you need to have some experience with setting up NodeJS, using a tool like NVM (Node Version Manager) to isolate your setup, and familiarity with {term}`Yarn` and {term}`React`. |
| 120 | + |
| 121 | +If you are looking for more study material on these technologies beyond the documentation, see and follow one or more [Plone Trainings](https://training.plone.org). |
| 122 | +Our trainings are more verbose and contain extra clarification and examples. |
65 | 123 |
|
66 | 124 |
|
67 | 125 | ```{toctree} |
68 | 126 | :maxdepth: 2 |
69 | 127 | :hidden: |
70 | 128 |
|
71 | | -history |
| 129 | +
|
72 | 130 | ``` |
0 commit comments