DKCutter Django

DKCutter Django is a framework for jumpstarting production-ready Django projects quickly.

Build Status license mit Code style: Ruff

Powered by DKCutter, DKCutter Django is a framework for jumpstarting production-ready Django projects quickly.

  • If you have problems with DKCutter Django, please open issues.

Usage

INFO

Docker is recommended for setting up your project. Alternatively, ensure you have the latest version of uv installed. If you choose a frontend pipeline or React Email, you will also need a Node.js package manager (npm, pnpm, yarn, or bun).

npm

terminal
npx dkcutter@latest gh:ncontiero/dkcutter-django

yarn

terminal
yarn dlx dkcutter@latest gh:ncontiero/dkcutter-django

pnpm

terminal
pnpm dlx dkcutter@latest gh:ncontiero/dkcutter-django

bun

terminal
bunx dkcutter@latest gh:ncontiero/dkcutter-django

You'll be prompted for some values. Provide them, then a Django project will be created for you.

Warning: After this point, change 'Nicolas Contiero', etc to your own information.

Answer the prompts with your own desired options. For example:

terminal
# output

Enter the project and take a look around:

terminal
cd my-awesome-project/
ls

Advanced usage

If you want to start faster, you can use the following options:

FlagDescription
--projectName <string>Your project's human-readable name.
--projectSlug <string>Your project's slug without dashes or spaces.
--description <string>Describes your project.
--authorName <string>The author name.
--domainName <string>The domain name you plan to use for your project once it goes live.
--email <string>The email address you want to identify yourself in the project.
--postgresqlVersion <string>Select a PostgreSQL version to use.
--cloudProvider <string>Select a cloud provider for static & media files.
--restFramework <string>Select a REST API framework.
--mailService <string>Select an email service that Django-Anymail provides.
--frontendPipeline <string>Select a pipeline to compile and optimize frontend assets (JS, CSS, …).
--frontendPipelineLang <string>Select the language used by the Frontend Pipeline.
--additionalTools <string>Select additional tools to use.
--useTailwindInReactEmail <boolean>Select if you want to use TailwindCSS in React Email.
--pkgManagerToUse <string>Select the package manager for the Frontend Pipeline.
--automatedDepsUpdater <string>Choose Automated Dependency Updater. See for more info.
--installFrontendDeps <boolean>Install Frontend dependencies.

See for more information about options.

Example

The following would be the structure of an application with Sentry:

terminal
pnpm dlx dkcutter gh:ncontiero/dkcutter-django --additionalTools sentry

If you want to use all the default values with the exception of one or more, you can do it as follows:

terminal
pnpm dlx dkcutter gh:ncontiero/dkcutter-django --additionalTools celery,sentry -y

This will use the default values except for --additionalTools.

For local development, see the following

References and inspirations

License

This project is licensed under the MIT License - see the LICENSE file for details