A WorldImpact.AI project

Start any project with one command.

Cookiecutter creates complete, production-ready projects from templates. Run a command, answer a few questions, get a working codebase. Python, JavaScript, Ruby, Go—anything. 200 million downloads since 2013.

Get Started View on GitHub

See it work.

$ cookiecutter gh:cookiecutter/cookiecutter-django

project_name [My Awesome Project]: myapp
author_name [Your Name]: Audrey
email [you@example.com]: audrey@example.com
use_docker [n]: y
use_celery [n]: y

 [SUCCESS]: Project initialized, keep up the good work!

That's it. A complete Django project with Docker, Celery, and production-ready defaults.

myapp/
├── config/
│   ├── settings/
│   └── urls.py
├── myapp/
│   ├── users/
│   └── templates/
├── docker-compose.yml
├── requirements/
└── manage.py

Why this exists.

Audrey Roy Greenfeld created Cookiecutter in 2013 because she was tired of copying and pasting project setups. Every new project meant recreating the same folder structures, the same config files, the same boilerplate.

Existing tools told her to go away—contribute to them instead. But she'd noticed something they hadn't: none of them worked reliably on Windows. So she bought a Windows laptop. Every pull request got tested on Windows before it merged. The projects that told her not to exist are mostly gone now.

Cookiecutter won because it obsessed over the users everyone else ignored.

That approach worked. 200 million downloads. Nearly 9,000 templates. 36,000 projects that depend on them. And then we noticed what was missing.

The relationship between a template and its projects ends at day one.

You scaffolded from cookiecutter-django two years ago. The template has had 47 improvements and 12 security patches since. Your project has no idea. There's no connection between them anymore.

Recut changes that.

$ recut status

Project: myapp
Template: cookiecutter-django (v2024.1)
Your version: v2022.3

47 improvements available
12 security patches ready
Your customizations: preserved

It knows what you changed on purpose.

$ recut sync

Analyzing your project history...
23 files modified from template
8 intentional deviations → keeping yours
15 mergeable improvements → opening PR

PR #142: 12 security patches, 3 dependency updates
Your auth customizations untouched.

Here's the part nobody else thought of.

$ recut upstream

Pattern detected across 847 projects:
→ Redis session caching in settings.py
→ Identical implementation
→ None came from the template

Suggest this pattern to cookiecutter-django? [y/n]

Start with Cookiecutter today.

It's free, open source, and works with any language. Recut is coming soon.

Get Started Tell me when Recut launches