Shopware 6 - Development versus production template explained

August 28, 2020 - 2 min read

When I started working on my first Shopware 6 project, I quickly found the shopware/development repository on Github. This seemed like a good choice, since the readme of that repository reads:

This repository is a template for local development and enables you to create a running Shopware 6 instance. Use this setup for developing directly on Shopware 6

Since I was building a webshop on top of Shopware 6, I thought this applied to me. However, what they mean with this sentence is that this repository is meant for developing on the Shopware 6 core.

What I really needed was to use the production template, which readme states;

This repository contains the production template that enables you to build, package and deploy Shopware 6 to production shops.

When I first read this, I took it to mean that I would need that repo when it is time to deploy to production, which I wasn’t at that time yet. However, it means that you’ll need this template if you are going to build an actual webshop, even though you’re still in the development phase.

My suggestion for Shopware would be to change the terminology;

  • shopware/production => shopware/project
  • shopware/development => shopware/contributor

As far as I can tell at this point, the development template contains a bunch more executable files that are useful for development such as testing. It also contains the psh.phar file that makes working with those executables a bit easier (albeit more opaque).

If you’ve made the same mistake as I did, read this blog about how to switch from the development to the production template after you’ve already started development.


If you’re an agency or a merchant, go for the production template.

If you’re a third party plugin or theme developer, or you want to contribute to the Shopware 6 core, go for the development template.

Kyle Mathews

Written by Peter Jaap Blaakmeer @PeterJaap