---
myst:
html_meta:
"description": "Bootstrapping a full Plone 6 project"
"property=og:description": "Bootstrapping a full Plone 6 project"
"property=og:title": "Bootstrapping a full Plone 6 project"
"keywords": "Volto, Plone, Getting Started"
---
(bootstrapping-label)=
# Bootstrapping a full Plone 6 project
We can use the new [cookiecutter-plone-starter](https://github.com/collective/cookiecutter-plone-starter) repository.
```{note}
The introduction of more tools are in store in order to ease the creation of the boilerplate for a full Plone 6 project, but they might revolve around this cookiecutter template.
```
## Requirements
### Cookiecutter
Install `cookiecutter` command line in your system or in a virtualenv:
```shell
pip install cookiecutter
```
### nvm, Node.JS, Yeoman, and Yarn
First install `nvm` and latest Node.JS according to the [Plone documentation](https://6.docs.plone.org/volto/getting-started/install.html#install-nvm-nodejs-version-manager).
After that, install Yeoman according to the [Plone documentation](https://6.docs.plone.org/volto/getting-started/install.html#yeoman).
Finally, install `yarn` according to the [Plone documentation](https://6.docs.plone.org/volto/getting-started/install.html#yarn-nodejs-package-manager).
### Docker (optional)
Install `Docker` according to the [official documentation](https://docs.docker.com/get-docker/).
Generate a new Plone 6 Project:
```shell
cookiecutter gh:collective/cookiecutter-plone-starter
```
`Cookiecutter` generates a file structure.
For an initial build of backend and frontend:
```shell
make install
```
In two separate terminal sessions, start backend and frontend:
To start backend:
```shell
make start-backend
```
To start frontend:
```shell
make start-frontend
```
You can stop each one with {kbd}`ctrl-c`.
After changes please re-build both with
```shell
make build
```
and restart backend and frontend by stopping and re-running
```shell
make start-backend
```
```shell
make start-frontend
```
## Project Generation Options
These are all the template options that will be prompted by the [Cookiecutter CLI](https://github.com/cookiecutter/cookiecutter) prior to generating your project.
| Option | Description | Example |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| `project_title` | Your project's human-readable name, capitals and spaces allowed. | **Plone Site** |
| `project_slug` | Your project's slug without spaces. Used to name your repository and Docker images. | **plone-site** |
| `description` | Describes your project and gets used in places like ``README.md`` and such. | **New site for our company.** |
| `author` | This is you! The value goes into places like ``LICENSE``, ``setup.py`` and such. | **Our Company** |
| `email` | The email address you want to identify yourself in the project. | **email@example.com** |
| `python_package_name` | Name of the Python package used to configure your project. It needs to be Python-importable, so no dashes, spaces or special characters are allowed. | **plone_site** |
| `plone_version` | Plone version to be used. This queries for the latest available Plone 6 version and presents it to you as the default value. | **6.0.0b2** |
| `volto_version` | Volto (Plone Frontend) version to be used. This queries for the latest available stable Volto version and presents it to you as the default value. | **16.0.0-alpha.35** |
| `language_code` | Language to be used on the site. | **pt-br** |
| `github_organization` | Used for GitHub and Docker repositories. | **collective** |
| `container_registry` | Container registry to be used. | **Docker Hub** |