Project Generation Options

This page describes all the template options that will be prompted by the cookiecutter CLI prior to generating your project.

project_name:

Your project’s human-readable name, capitals and spaces allowed.

project_slug:

Your project’s slug without dashes or spaces. Used to name your repo and in other places where a Python-importable version of your project name is needed.

description:

Describes your project and gets used in places like README.rst and such.

author_name:

This is you! The value goes into places like LICENSE and such.

email:

The email address you want to identify yourself in the project.

username_type:

The type of username you want to use in the project. This can be either username or email. If you choose username, the email field will be included. If you choose email, the username field will be excluded. It is best practice to always include an email field, so there is no option for having just the username field.

domain_name:

The domain name you plan to use for your project once it goes live. Note that it can be safely changed later on whenever you need to.

version:

The version of the project at its inception.

open_source_license:

A software license for the project. The choices are:

  1. MIT

  2. BSD

  3. GPLv3

  4. Apache Software License 2.0

  5. Not open source

timezone:

The value to be used for the TIME_ZONE setting of the project.

windows:

Indicates whether the project should be configured for development on Windows.

editor:

Select an editor to use. The choices are:

  1. None

  2. PyCharm

  3. VS Code

use_docker:

Indicates whether the project should be configured to use Docker, Docker Compose and devcontainer.

postgresql_version:

Select a PostgreSQL version to use. The choices are:

  1. 16

  2. 15

  3. 14

  4. 13

  5. 12

cloud_provider:

Select a cloud provider for static & media files. The choices are:

  1. AWS

  2. GCP

  3. Azure

  4. None

If you choose no cloud provider and docker, the production stack will serve the media files via an nginx Docker service. Without Docker, the media files won’t work.

mail_service:

Select an email service that Django-Anymail provides

  1. Mailgun

  2. Amazon SES

  3. Mailjet

  4. Mandrill

  5. Postmark

  6. SendGrid

  7. SendinBlue

  8. SparkPost

  9. Other SMTP

use_async:

Indicates whether the project should use web sockets with Uvicorn + Gunicorn.

use_drf:

Indicates whether the project should be configured to use Django Rest Framework.

frontend_pipeline:

Select a pipeline to compile and optimise frontend assets (JS, CSS, …):

  1. None

  2. Django Compressor

  3. Gulp

  4. Webpack

Both Gulp and Webpack support Bootstrap recompilation with real-time variables alteration.

use_celery:

Indicates whether the project should be configured to use Celery.

use_mailpit:

Indicates whether the project should be configured to use Mailpit.

use_sentry:

Indicates whether the project should be configured to use Sentry.

use_whitenoise:

Indicates whether the project should be configured to use WhiteNoise.

use_heroku:

Indicates whether the project should be configured so as to be deployable to Heroku.

ci_tool:

Select a CI tool for running tests. The choices are:

  1. None

  2. Travis CI

  3. Gitlab CI

  4. Github Actions

  5. Drone CI

keep_local_envs_in_vcs:

Indicates whether the project’s .envs/.local/ should be kept in VCS (comes in handy when working in teams where local environment reproducibility is strongly encouraged). Note: .env(s) are only utilized when Docker Compose and/or Heroku support is enabled.

debug:

Indicates whether the project should be configured for debugging. This option is relevant for Cookiecutter Django developers only.