Probably the best option is to create a Publishing Site Definition from scratch. This way, you "almost" have full control of the provisioning process. Below a few examples which elements you can specify:
- The welcome page url and the appropriate (custom) pagelayout
- Automatically activate masterpage, styles, ... features
- Available web templates
- Automatically activate the ViewFormPagesLockDown feature - A special feature that restrict access for anonymous users to published content only
- Alternate CSS url
- And so on...