SharePoint Online Solution Pack for branding and provisioning released

SharePoint Online solution pack for branding and provisioning contains documentation and code examples for SharePoint app based deployments. This initial release concentrates on branding and remote provisioning. Package is created based on the guidance and implementations what we’ve worked with our global customers cross the world. Actual guidance has been written by Microsoft technical writers and it has been reviewed and approved by product group members to ensure that we get the right guidance available for the field.

Updated 5th of March – If you have any feedback or suggestion on the Solution Pack, please the Office SP Dev user voice as the channel to get the message to right persons. 

This package contains also some examples, which originates from the Office App Model Samples (AMS) program, which has been internal community program to share SP App related reference implementation work since last year. This package has been now also released externally in CodePlex at address, but we wanted to get some of this guidance also out using official sites, so that we can expand the reach for these examples. Solution pack has also much more detailed documentation related on different patterns.

Here’s the direct links for the SharePoint Online Solution Pack

Introduction to content

The SharePoint 2013 and SharePoint Online solution pack includes five documents, or modules


SharePoint site branding and remote provisioning 101

Introduces the solution pack concept and contents, including SharePoint site fundamentals and the branding and site provisioning workflow. It also introduces the remote provisioning pattern, a new way to use apps for SharePoint and the Cloud App Model (CAM) to provision branding to SharePoint sites.


Inside SharePoint Pages

Presents the SharePoint page model and its component parts.


Building SharePoint sites and pages

Describes tooling options for developing site branding elements and managing them in SharePoint.


Customizing site branding

Covers composed looks, the SharePoint 2013 theming engine, and best practices for customizing the look and feel of your site with custom CSS and CSOM via remote provisioning.


Using apps for SharePoint to provision SharePoint site branding

Describes the remote provisioning pattern, and shows how to apply site branding at the site collection, site, and subsite levels by using the pattern. Demonstrates how to set up remote provisioning to use a custom form, an approval workflow, and refresh tokens.

Each module document is associated with one or more code samples, which are downloadable individually from Code Gallery or together in the SharePoint 2013 and SharePoint Online branding and site provisioning solution pack’s sample pack.

Comments (16)

  1. Andre Lage says:

    Really nice,

    Thank you for the demos.

    Kind regards,


  2. thanks for Sharing CodePlex now we can join it and be a part of evolution.

  3. Luis Valencia says:

    Vesa, on page 8 of first document it says

    The Master Page Gallery is a special document library in SharePoint 2013 where all branding elements—master pages, page layouts, JavaScript files, CSS, and images—are stored by default. Every site has its own Master Page Gallery.

    As far as I know every site collection has its master page library, not every site, if you want to use a different master page in a subsite you must select one from the Master page gallery _catalog which is unique per site collection.

    Am I correct, or am I missing something here?

  4. Vesa Juvonen says:

    Hi Luis,

    the master page gallery model depends actually on the site type or more specifically if the publishing feature is enabled on the site or site collection. In case of publishing sites, master page is taken from the root site, but in case of team sites, master page is coming from the site level, not from the site collection. That statement could have been indeed more precise and could be slightly misleading, since it refers to page layouts, which is publishing site feature.

    This is good feedback and I'll route it to the actual technical writers.

  5. Luis Esteban Valencia M says:

    Hello Vesa, I am having an issue when trying to use the DesignPackage to work on an mvc application, I know exactly what the problem is and I wonder if you or your colleagues could help me.

    I created a Controller Action to install a package.

    In my Layouts.cshtml, I created a link to this action:

              <li>@Html.ActionLink("Install Design Package", "InstallDesignPackage", "Home")</li>

    However the generated link does not have the querystring parameters appended to get the SPHostUrl, which means the code to get the context would fail.

    I have asked it here:…/how-to-append-sharepoint-required-parameters-for-apps-in-asp-net-mvc-apps

  6. Mackson de Oliveira says:


  7. Guillermo Bas says:

    Hi Vesa, I'm trying to create a site provisioning SharePoint-Hosted App, using exclusively JSOM and CrossDomain libraries. The lack of documentation in the JavaScript model is difficulting that task a lot.

    I have a question for you, Do you know if It's posible to create Site Collections using JavaScript Object Model, as we can do in C# CSOM? I mean using a SharePoint-Hosted App with Tenant level permissions.

    Thanks in advance.

  8. Vesa Juvonen says:

    Hi Guillermo,

    you should be able to do that with SP hosted app if you use only user context and not the app only permission setting, which however would require that each of your users would have to have the right permissions to create site collections… which means tenant admin permissions.

    In most cases end users do not have tenant admin permissions, so we'll need to use app only open, which is only available with provider hosted pattern. Provider hosted pattern will also provide you capability to perform the creation using asynchronous way, so that end users don't need to watch the gif animation while the site collection is created.

    We strongly recommend usage of provider hosted apps for these kind of scenarios.

  9. Guillermo Bas says:

    Hi again Vesa, thank you so much for your previous answer. Even with the cons of doing it with JavaScript we still consider (if it is really possible rigth now) this option to avoid the extra costs of having separated server from the SPOnline tenant (Azure or not means extra costs anyway).

    I'm unable to found/reach any documentation or even any intellisense piece under the VS2013 template for SharePoint apps where the Tenant object or the CreateSite method is availabe on JavaScript.

    for instance this is the typical two lines to create site collections over the CSOM (C#) remotely

    var tenant = new Tenant(clientContext);

    var resultingSite = tenant.CreateSite(newSite);

    I couldn't find any equivalence on this for JavaScript JSOM version. Are you able to confirm if there is anything like this in the JSOM or I'm looking for the wrong clases?

  10. Vesa Juvonen says:

    Hi Guillermo,

    actually after digging around it seems that Tenant object is not available with JS. I'm not JavaScript person, so have not really used that too much.

    Notice thought that you can use 10 web sites in Windows Azure without any costs, which will give you the opportunity for creating this in the recommended way

  11. Guillermo Bas says:

    Hi Vesa,

    I've got confirmation that Tenant object is not exposed through JavaScript (yet but could be in the future) from Matt Geimer (Microsoft) in the O365 tehnical network.

    I'm doing some PoC tests with the scenario you mentioned, using CSOM C# + free azure websites. I'm facing some challenges with default timout for azure websites on Site Collection creation, looks like after 4 minutes of inactivity the TCP connection is killed. As son as I manage to resolve this issue this scenario will be a perfect option for me.

    Your posts about this topic are making my life easy 🙂 Thank you very much for your responses!

  12. Vesa Juvonen says:

    Thanks Guillermo,

    the time out what you are facing is as expected with the Azure. You should be approaching this with async design. I'm explaining the issue and how to address that at following blog post –…/asynchronous-site-collection-provisioning-for-office-365.aspx

    And thanks for the feedback. If you have any specific questions, feel free to use also the Office 365 Patterns & Practices Yammer group, where we have team of people helping with these kind of questions, Easiest way to get there is by using following URL –

  13. Christine says:

    Thank you so much for making this available.

  14. IL De says:

    useful articles and documents

  15. Smithenstein says:

    The link to download "SharePoint 2013 and SharePoint Online solution pack for branding and site provisioning" is broken

  16. Vesa Juvonen says:

    Hi Smithenstein,

    All of this guidance material has been relocated to MSDN under URL.

    If you have any specific questions, feel free to use also the Office 365 Patterns & Practices Yammer group, where we have team of people helping with these kind of questions, Easiest way to get there is by using following URL –