When downloaded, dotCMS comes with a default "pre-built" starter site that is stored in a starter.zip file in the webroot directory. When dotCMS starts, it checks to see if a working site has already been set up, otherwise it begins to construct a new site from the starter.zip file. However, a dotCMS plugin can provide a new custom zip file so that custom starter sites/accelerators, can be quickly re-deployed on a new dotCMS instance with a specific set of customized pre-built features, templates, widgets, etc.
To configure a new dotCMS instance to point to a custom starter site, create a configuration plugin to overwrite the dotmarketing-config.properties file found in the /src-conf directory and uncomment/set the STARTER_DATA_LOAD property to a relative path from the web root (dotCMS directory) as in the example below. Ex:
Since you need to write a plugin to overwrite the dotmarketing-config.properties file, a best practice recommendation would be to keep the custom zip file and the configuration overwrite in the same plugin.
With the property set in the dotmarketing-config.properties file and the custom zip file placed in the corresponding relative path, when the new dotCMS instance is started (with a clean database and cache), then the dotCMS startup process will create a new dotCMS instance from the custom starter.