Help installers choose a frontend: Classic UI or Volto?

I'm preparing a new page in the documentation that explains in detail which frontend or user interface the reader should choose. I need your help so that readers can make an informed decision.

I recently updated this long-standing issue in the Documentation issue tracker with a todo list to move it forward.

I am seeking opinions, use cases, comparisons, and any other relevant contributions. Now's your chance to advocate for your preferred UI.

Thanks for your consideration.

2 Likes

I'm not a developer, just an everyday user.

The reason I love Plone is because Plone 4 is incredibly self-contained. Everything is neatly organized within a single directory, requires no SQL server, and is simple to install and maintain.

I recently looked into Volto, and it feels overly complexโ€”relying on too many different tools. The documentation is scattered, some resources seem broken, and setting up themes for Volto can be a hassle.

Volto 18 vastly improves upon the situation on all counts. We're currently updating documentation for its upcoming release, but you can try it out now.

Create a project with Volto (development or pre-release) .

I feel constrained with editing page layouts and themes in Classic UI, and especially in unmaintained versions of Plone. I much prefer the ease of use, speed, and flexibility in Volto, so I sucked up my hatred for all things JavaScript and forged onward. I don't need to know any JavaScript to install add-ons, such as the Volto Light Theme, and that's often good enough for end users.

I just try again, follow the page also result errors.

As below

File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/cookiecutter/main.py", line 161, in cookiecutter
prompt_for_config(context_for_prompting, no_input)
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/cookiecutter/prompt.py", line 283, in prompt_for_config
cookiecutter_dict[key] = render_variable(env, raw, cookiecutter_dict)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/cookiecutter/prompt.py", line 224, in render_variable
return template.render(cookiecutter=cookiecutter_dict)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/jinja2/environment.py", line 1304, in render
self.environment.handle_exception()
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/jinja2/environment.py", line 939, in handle_exception
raise rewrite_traceback_stack(source=source)
File "", line 1, in top-level template code
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/cookieplone/filters/init.py", line 14, in package_name
return v.split(".")[1]
~~~~~~~~~~~~^^^
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/tmp/tmp3gtxz5ck.py", line 175, in
main()
File "/tmp/tmp3gtxz5ck.py", line 146, in main
func(new_context, output_dir)
File "/tmp/tmp3gtxz5ck.py", line 63, in generate_bacploned_addon
generator.generate_subtemplate(
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/cookieplone/generator.py", line 133, in generate_subtemplate
raise exc
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/cookieplone/generator.py", line 116, in generate_subtemplate
result = generate(
^^^^^^^^^
File "/home/plone/.cache/pipx/600f503a4f5b5c3/lib/python3.11/site-packages/cookieplone/generator.py", line 91, in generate
raise GeneratorException(message=str(e), original=e) # noQA:B904
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cookieplone.exceptions.GeneratorException
ERROR: Stopping generation because post_gen_project hook script didn't exit successfully
Hook script failed (exit status: 1)

Then now I try python 3.12.0 see if it's better.

But I still got the same error.

FYR

Please include the transcript of what you entered that created this stacktrace. The package name you entered might cause the error.

I del all .Directory and reinstall everything for start over again

You've downloaded /home/ken/.cookiecutters/cookieplone-templates before. Is it

okay to delete and re-download it? [y/n] (y): y

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Plone Project โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ

โ”‚ Creating a new Plone Project โ”‚

โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

[1/17] Project Title (Project Title): test

[2/17] Project Description (A new project using Plone 6.):

[3/17] Project Slug (Used for repository id) (test):

[4/17] Project URL (without protocol) (test.example.com):

[5/17] Author (Plone Foundation):

[6/17] Author E-mail (collective@plone.org):

[7/17] Should we use prerelease versions? (No):

[8/17] Plone Version (6.0.13):

[9/17] Volto Version (18.0.0-alpha.46):

[10/17] Python Package Name (test):

[11/17] Volto Addon Name (volto-test):

[12/17] Language

1 - English

2 - Deutsch

3 - Espaรฑol

4 - Portuguรชs (Brasil)

5 - Nederlands

6 - Suomi

Choose from [1/2/3/4/5/6] (1):
[13/17] GitHub or GitLab Username or Organization (collective):

[14/17] Container Registry

1 - GitHub Container Registry

2 - Docker Hub

3 - GitLab

Choose from [1/2/3] (1):

[15/17] Should we setup a caching server?

1 - Yes

2 - No

Choose from [1/2] (1):

[16/17] Add Ansible playbooks?

1 - Yes

2 - No

Choose from [1/2] (1):

[17/17] Add GitHub Action to Deploy this project?

1 - Yes

2 - No

Choose from [1/2] (1):

But still same error, Thank for your time.

@mactrash Currently the Cookieplone template only supports Python package names with two parts (e.g. collective.test). This is because of how the template clones an existing directory structure that has this assumption. I'll take another look at that limitation soon; it should really either support a simple name like "test" or else show a warning that explains the limitation.

Until then, we need to add that as another Important admonition in the docs, or better yet, improve the prompt to the user in Cookieplone:


For Python Package Name (project.title): you must enter a dotted Python name with two parts, such as organization.title.


Are there any other requirements for text inputs?

Cookieplone already has validation to check that the Python package name has two parts:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Project Title generation โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                                                                                        โ”‚
โ”‚ Error                                                                                                                  โ”‚
โ”‚ It will not be possible to generate the project.                                                                       โ”‚
โ”‚                                                                                                                        โ”‚
โ”‚ Please review the errors:                                                                                              โ”‚
โ”‚                                                                                                                        โ”‚
โ”‚   - python_package_name: The Python package name must contain a single namespace (e.g. collective.something)           โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Since you didn't see this warning, I would guess that you might have an old version of Cookieplone or Cookiecutter installed.

thanks for @davisagli @stevepiercy I just try it again, and the script do install now, than I try

yarn add volto-form-block volto-subblocks

And it result another error...

Maybe I should wait a bit let all other parties sync, the doc etc. right now I better stat with classic ui.

@mactrash Where did you see instructions to run yarn add volto-form-block volto-subblocks? The Cookieplone template sets up a frontend project that uses pnpm rather than yarn as a package manager, so this documentation probably needs to be updated. And we can't update it unless we know which one you were following...

and all themes in GitHub - collective/awesome-volto: A curated list of everything that makes Volto awesome result error

even this one have easy Installation step

But once follow it you will got errors

Iโ€™m here as a layman trying to navigate Volto. Over the past few days, Iโ€™ve searched everywhere online for guidance, but havenโ€™t had much luck. Iโ€™ll hope Plone Party soon to create a document to help new users get started smoothly, so they wonโ€™t feel discouraged.

Many thanks

Those projects are not official Plone installation documentation. They might have instructions for how to install the project into an already installed Plone, but those instructions might not comply with the pre-release version of Volto 18. I think that's what you ran into. It would be good for you to file an issue into any repo where you run into trouble with installing their package in Volto 18.

Aside from installing add-ons, were you able to get the vanilla Plone 6 with Volto 18 pre-release version to run?

make frontend-start

end with error

/mnt/HDD2/VOLTO/test-com/frontend/core/packages/volto:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL @plone/volto@18.0.0-alpha.46 start: make build-deps && razzle start
Exit status 1
ELIFECYCLE Command failed with exit code 1.
make[1]: *** [Makefile:45: start] Error 1
make[1]: Leaving directory '/mnt/HDD2/VOLTO/test-com/frontend'
make: *** [Makefile:51: frontend-start] Error 2

@mactrash Could you show more of the output? It's not clear what went wrong from the output you showed, and sometimes there are clues earlier in the output.

Also, what version of Node are you using?

Node v20.18.0

How can I capture all error details? Please forgive me for my inexperience.

Ok I run the same command

make frontend start

and this time it don't have an error now it show

:performing_arts: Volto started at 0.0.0.0:3000 :rocket:

How can I start the frontend with a public ip?

Probably the most relevant documentation would be in the official Plone 6 documentation under Volto UI > Deploying.

The training Plone Deployment describes one way, but it is a full stack with many bells and whistles beside Plone itself, covering a common modern setup and deployment.

Our official Deployment documentation won't be of much use.

I am not out of my computer, I will read those when I am home.

I am testing volto with a vps (no locally), is that any start up command for frontend at least make me see the site.