How to force all new subsites to be the same at launch?

Ok, this might be complicated or simple...

I would like to force every new site that customers create to use the same theme, widgets, pages, page content, plugins, plugin configuration/settings, etc. Absolutely identical.

What is the most reliable/safe way to accomplish this? Note, this should apply to sites setup via the network admin as well as customers creating their own site.