Q:

SharePoint Online deploy site

I know you cannot deploy site definitions (web templates) to SharePoint online.  We have to develop a site with a specific structure (lists, web parts, custom page layouts) and deploy to a SharePoint online site.  How do I do this.  Do I have to go to the SharePoint online site and then create the structure there manually like the lists, navigation? or is there a better way to do this?  We have a bunch of developers working on this site so if we are to do this manually then what is the solution.  
Another option we have is to write a console application that will connect to the Online site and then do the modification, is this an acceptable approach?

A:

The so-called "best practice" from MSoft is called "remote provisioning". This is basically using CSOM (or JSOM) to provision the site structure. Any environment that allows REST access and the proper permissions can be used to do this, including ConsoleApp, PowerShell, Javascript, provider-hosted app, et.al.
I learned about this in the excellent MVA course here:
http://www.microsoftvirtualacademy.com/training-courses/transform-sharepoint-customizations-to-sharepoint-app-model
Regards..Antelope

