Skip to main content

cargo coil new

cargo coil new creates a new customer-root workspace in a new directory.

This is the normal starting point for a new store or product.

Install the subcommand first:

cargo install cargo-coil --locked

Default Behaviour​

Interactive mode is the default:

cargo coil new my-store

That starts a prompt flow which asks for:

  • project name
  • display name
  • default locale
  • additional locales
  • official modules
  • optional extra sites

At the end, Coil writes .coil/project.toml and renders the managed workspace files into the new directory.

Non-Interactive Use​

Use --no-input when you want a deterministic scaffold from automation or scripts:

cargo coil new my-store \
--no-input \
--default-locale en-GB \
--locale fr-FR \
--module cms \
--module media \
--module commerce \
--module admin \
--module ops

Dependency Source​

You can control how the generated workspace depends on Coil.

Use crates.io​

cargo coil new my-store --source crates-io

Example End-To-End Flow​

Normal installed flow:

cargo coil new my-store
cd my-store
docker compose up -d
export DATABASE_URL=postgres://coil:[email protected]:5432/my-store
export REDIS_URL=redis://127.0.0.1:6379/0
export COIL_COOKIE_SECRET=replace-me-with-a-long-random-secret
export COIL_CSRF_SECRET=replace-me-with-a-long-random-secret
cargo run -p my-store -- validate
cargo run -p my-store -- serve