# DKCutter > A command-line utility that creates projects from templates. ## guide - [Introduction](https://dkcutter.ncontiero.com/guide/start/introduction.md): DKCutter is a powerful command-line utility that automates and standardizes project creation from customizable templates - [Getting Started](https://dkcutter.ncontiero.com/guide/start/getting-started.md): Create your first project from an official DKCutter template using shorthand prefixes, interactive prompts, and programmatic APIs - [Create a Template From Scratch](https://dkcutter.ncontiero.com/guide/start/create-from-scratch.md): Learn how to build a simple DKCutter template from scratch by creating dkcutter.json and using Nunjucks to scaffold a basic website - [Security and Official Templates](https://dkcutter.ncontiero.com/guide/start/security.md): Review security considerations when using third-party DKCutter templates and discover the list of official templates - [Migration to v7](https://dkcutter.ncontiero.com/guide/start/v7-migration-guide.md): Migrate your templates, hooks, and programmatic API usage from DKCutter version 6 to version 7 - [Migration to v6](https://dkcutter.ncontiero.com/guide/start/v6-migration-guide.md): Migrate your DKCutter projects and hooks from version 5 to version 6, including library replacements and native fs promises - [Basic Configuration](https://dkcutter.ncontiero.com/guide/config/index.md): Configure DKCutter template variables using dkcutter.json to define strings, booleans, and lists for project generation - [Advanced Configuration](https://dkcutter.ncontiero.com/guide/config/advanced-config.md): Configure advanced DKCutter prompts using object properties for custom messages, regex validation, conditional disabling, and multiselect choices - [Private Variables](https://dkcutter.ncontiero.com/guide/config/private-variables.md): Define internal state variables in dkcutter.json using an underscore prefix to manage template logic without user prompts - [Advanced Usage](https://dkcutter.ncontiero.com/guide/advanced/index.md): Explore advanced DKCutter topics including CLI options, dynamic templates, global variables, custom hooks, and programmatic API - [CLI - Command Line Options](https://dkcutter.ncontiero.com/guide/advanced/cli.md): Explore DKCutter command-line options, shorthand prefixes for Git providers, and how to inject extra context to override template variables - [Templates in Context Values](https://dkcutter.ncontiero.com/guide/advanced/templates-in-context.md): Dynamically generate configuration values in dkcutter.json using Nunjucks templating based on user prompt answers - [Global Variables](https://dkcutter.ncontiero.com/guide/advanced/global-variables.md): Access DKCutter global variables, colors, and custom Nunjucks filters to enhance project templates and hooks - [DKCutter Hooks](https://dkcutter.ncontiero.com/guide/advanced/hooks.md): Customize project generation with DKCutter hooks using JavaScript or TypeScript to automate tasks before and after template processing - [Using DKCutter in Your JavaScript/TypeScript Projects](https://dkcutter.ncontiero.com/guide/advanced/calling-dkcutter-function.md): Generate and customize projects programmatically from JS/TS using the dkcutter function and handle custom execution errors - [Internal Utilities](https://dkcutter.ncontiero.com/guide/advanced/utils.md): Leverage DKCutter internal utilities like logger, spinner, colorize, and async file operations in your hooks and scripts - [Best Practices and Recommendations](https://dkcutter.ncontiero.com/guide/advanced/best-practices.md): Learn the best practices and recommendations for building robust DKCutter templates, configuring variables, and writing TypeScript hooks