diff --git a/scripts/build2stage.sh b/scripts/build2stage.sh
new file mode 100755
index 0000000..fb38c36
--- /dev/null
+++ b/scripts/build2stage.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# How to use:
+# From directory {root}/docs/source.android.com/scripts run:
+#    $ ./build2stage.sh <server number>
+#
+# For example, to build and stage on staging instance 13, run:
+#    $ ./build2stage.sh 13
+#
+
+echo  'Please run this script from the docs/source.android.com/scripts directory ' \
+  ' branch/docs/source.android.com/scripts'
+echo ' '
+
+# Read the configuration file to retrieve the App Engine staging - AE_STAGING - value
+source /etc/profile.d/build2stage-conf.sh
+
+# Go up three directories to build content
+cd ../../..
+
+# Delete old output
+rm -rf out/target/common/docs/online-sac*
+
+# Initialize the environment
+source build/envsetup.sh
+
+# Make the docs
+make online-sac-docs
+
+# Go to the output directory to stage content
+cd out/target/common/docs
+
+# Edit the app.yaml file to upload to the specified server.
+sed 's/staging[0-9]*$/staging'$1'/' online-sac/app.yaml >  .temp
+
+# Copy in new app.yaml content
+cp .temp online-sac/app.yaml
+rm .temp
+
+# Stage the data on the server.
+$AE_STAGING update online-sac
+
+echo 'Your staged content is available at staging instance '$1''
diff --git a/src/compatibility/android-cdd.html b/src/compatibility/android-cdd.html
index f2e8398..ac1867b 100644
--- a/src/compatibility/android-cdd.html
+++ b/src/compatibility/android-cdd.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <head>
 <title>Android ANDROID_VERSION Compatibility Definition</title>
-<link rel="stylesheet" type="text/css" href="android-cdd.css"/>
+<link rel="stylesheet" type="text/css" href="source/android-cdd.css"/>
 </head>
 
 <body>
diff --git a/src/compatibility/source/android-cdd-cover.css b/src/compatibility/source/android-cdd-cover.css
new file mode 100644
index 0000000..7364deb
--- /dev/null
+++ b/src/compatibility/source/android-cdd-cover.css
@@ -0,0 +1,86 @@
+/**
+* Link Styles
+*/
+
+
+a:link {
+    color: #09C;
+    text-decoration: none;
+}
+
+a:visited {
+    color: #639;
+}
+
+a:hover,
+a:focus,
+a:active {
+    color: #09C;
+}
+
+/**
+* Cover Styles
+*/
+
+
+table {
+    border: none;
+    margin: 0px;
+    padding: 0px;
+    width: 100%;
+    height: 100%;
+    background-color: black;
+}
+
+td {
+    border: none;
+    color: white;
+    font: 12pt/16pt Roboto, Arial, Helvetica, sans-serif;
+    background-color: black;
+}
+
+.title {
+    color: white;
+    font: 62px/72px Roboto, Arial, Helvetica, sans-serif;
+    padding: 40px 20px 50px 60px;
+    text-align: left;
+}
+
+.subtitle {
+    color: white;
+    font: 60px/70px Roboto, Arial, Helvetica, sans-serif;
+    padding: 50px 0px 40px 60px;
+    text-align: left;
+}
+
+.padding {
+    padding: 40px 20px 40px 60px;
+}
+
+.padding-bottom {
+    padding: 40px 20px 194px 60px;
+}
+
+.cover-text {
+    font: 20px/25px Roboto, Arial, Helvetica, sans-serif;
+    color: white;
+    padding: 5px 5px 5px 60px;
+    text-align: left;
+}
+
+
+/**
+* Body Styles
+*/
+
+body {
+    color: #333;
+    font: 12pt/16pt Roboto, Arial, Helvetica, sans-serif;
+    margin: 0px;
+    padding: 0px;
+}
+
+p {
+    margin: 0px;
+    padding: 0px;
+}
\ No newline at end of file
diff --git a/src/compatibility/source/android-cdd-cover.html b/src/compatibility/source/android-cdd-cover.html
new file mode 100644
index 0000000..eccca0c
--- /dev/null
+++ b/src/compatibility/source/android-cdd-cover.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<head>
+<title>Android 6.0 Compatibility Definition</title>
+<link rel="stylesheet" type="text/css" href="android-cdd-cover.css"/>
+</head>
+
+<body>
+
+<table>
+
+<tr>
+<td>
+<p><img src="images/android-logo.png" alt="Android logo" class="padding"/></p>
+<p class="title">Compatibility Definition</p>
+</td>
+</tr>
+
+<tr>
+<td>
+<img src="images/android-marshmallow.png" alt="Marshmallow logo" style="border-top: 5px solid orange; border-bottom: 5px solid orange"/>
+</td>
+</tr>
+
+<tr>
+<td>
+<p class="subtitle">Android 6.0</p>
+<p class="cover-text">Last updated: August 20th, 2015</p>
+<p class="cover-text">Copyright &copy; 2015, Google Inc. All rights reserved.</p>
+<p class="cover-text"><a href="mailto:compatibility@android.com">compatibility@android.com</a></p>
+</td>
+</tr>
+
+<tr>
+<td>
+<p class="padding-bottom"></p>
+</td>
+</tr>
+
+</table>
+
+</body>
+</html>
diff --git a/src/compatibility/source/android-cdd-footer.html b/src/compatibility/source/android-cdd-footer.html
new file mode 100644
index 0000000..dfb0f51
--- /dev/null
+++ b/src/compatibility/source/android-cdd-footer.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Android 5.1 Compatibility Definition Footer</title>
+<link rel="stylesheet" type="text/css" href="android-cdd.css"/>
+
+<script>
+  function subst() {
+    var vars={};
+    var x=window.location.search.substring(1).split('&');
+    for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
+    var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
+    for (var i in x) {
+      var y = document.getElementsByClassName(x[i]);
+      for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
+    }
+  }
+</script>
+
+</head>
+
+<body style="border:0; margin: 0;" onload="subst()">
+<div class="footer">
+
+<table class="noborder" style="border-top: 1px solid silver; width: 100%">
+    <tr>
+      <td class="noborder"><img src="images/android-logo.png" alt="Android logo"/></td>
+      <td class="noborder" style="text-align:right">
+        Page <span class="page"></span> of <span class="topage"></span>
+      </td>
+    </tr>
+</table>
+
+</div>
+
+</body>
+</html>
diff --git a/src/compatibility/source/android-cdd.css b/src/compatibility/source/android-cdd.css
new file mode 100644
index 0000000..83c46bc
--- /dev/null
+++ b/src/compatibility/source/android-cdd.css
@@ -0,0 +1,372 @@
+/**
+* Link Styles
+*/
+
+
+a:link {
+    color: #09C;
+    text-decoration: underline;
+}
+
+a:visited {
+    color: #639;
+}
+
+a:hover,
+a:focus,
+a:active {
+    color: #09C;
+}
+
+/**
+* Cover Styles
+*/
+
+
+#cover {
+    width: 10.5in;
+    height: 13.25in;
+    background-color: orange;
+}
+
+#cover-top {
+    background-color: black;
+    width: 100%;
+    height: 3in;
+    padding-top: 70px;
+    margin-bottom: 10px;
+}
+
+#cover-image {
+    background-color: black;
+    width: 100%;
+    height: 5in;
+    padding: 0px;
+    margin: 20px 0px 8px 0px;
+}
+
+#cover-bottom {
+    background-color: black;
+    width: 100%;
+    height: 3.7in;
+    padding: 40px 0px 40px 0px;
+    margin-top: 8px;
+}
+
+#cover a:link,
+#cover a:visited,
+#cover a:hover {
+ text-decoration: none;
+}
+
+#main {
+    width: 950px;
+    overflow: visible;
+    page-break-before: always;
+}
+
+#footer {
+    width: 8.5in;
+    height: .75in;
+    margin-top: .25in;
+    color: #333;
+    font: 10pt/14pt Roboto, Arial, Helvetica, sans-serif;
+}
+
+
+.title {
+    color: white;
+    font: 84px/90px Roboto, Arial, Helvetica, sans-serif;
+    padding: 40pt 20pt 15pt 50pt;
+    text-align: left;
+}
+
+.subtitle {
+    color: white;
+    font: 60px/70px Roboto, Arial, Helvetica, sans-serif;
+    padding: 40pt 5pt 40pt 60pt;
+    text-align: left;
+}
+
+.right {
+    text-align: right;
+}
+
+.white {
+    color: white;
+}
+
+.padding {
+    padding: 20pt 20pt 0pt 60pt;
+}
+
+.cover-text {
+    font: 20px/25px Roboto, Arial, Helvetica, sans-serif;
+    color: white;
+    padding: 5pt 5pt 5pt 60pt;
+    text-align: left;
+}
+
+.small {
+    font-size: 65%;
+    font-weight: 700;
+}
+
+/**
+* Heading Styles
+*/
+
+h1 {
+    color: #333;
+    font: 22pt/24pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 10pt 0pt 0pt 0pt;
+    text-align: left;
+}
+
+h2 {
+    color: #693;
+    font: 20pt/22pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 8pt 0pt 0pt 0pt;
+    text-align: left;
+    page-break-after: avoid;
+}
+
+h3 {
+    color: #333;
+    font: bold 18pt/20pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 4pt 0pt 0pt 0pt;
+    text-align: left;
+    page-break-after: avoid;
+}
+
+h4 {
+    color: #607D8B;
+    font: bold 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 4pt 0pt 0pt 0pt;
+    text-align: left;
+    page-break-after: avoid;
+}
+
+
+h5 {
+    color: #333;
+    font: italic 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 0pt 0pt 0pt 0pt;
+    text-align: left;
+    page-break-after: avoid;
+}
+
+
+/**
+* Use h6 ONLY for table of contents
+*/
+
+h6 {
+    color: #333;
+    font: bold 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 10pt 0pt 0pt 0pt;
+    text-align: left;
+    page-break-before: always;
+}
+
+/**
+* Body Styles
+*/
+
+body {
+    color: #333;
+    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
+    margin: 0;
+    padding: 5pt 5pt 5pt 10pt;
+}
+
+p {
+    color: #333;
+    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
+    margin: 0;
+    padding: 5pt 0pt 1pt 0pt;
+}
+
+li {
+    color: #333;
+    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
+    margin: 0;
+    padding: 2pt 50pt 2pt 0pt;
+}
+
+sup {
+    font-weight: 800;
+    font-size: 10pt;
+}
+
+/**
+* Table Styles
+*/
+
+
+table {
+    border: 1px solid gray;
+    border-collapse: collapse;
+    margin: 10px 0px 10px 0px;
+    width: 100%;
+    overflow: visible;
+}
+
+td {
+    border: 1px solid gray;
+    color: #333;
+    font: 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 5pt;
+    overflow: visible;
+}
+
+th {
+    background-color: #CCC;
+    border: 1px solid gray;
+    color: #333;
+    font: bold 16pt/20pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 5pt;
+    overflow: visible;
+}
+
+p.table_footnote {
+    color: #333;
+    font: 14pt/16pt Roboto, Arial, Helvetica, sans-serif;
+    margin: 0;
+    padding: 5pt 5pt 5pt 5pt;
+}
+
+li.table_list {
+    color: #333;
+    font: 16pt/20t Roboto, Arial, Helvetica, sans-serif;
+    margin-left: -10pt;
+    padding: 2pt 0pt 2pt 0pt;
+}
+
+
+/**
+* Used in the footer
+*/
+
+table.noborder {
+    border: 0px;
+    margin: 10px 0px 10px 0px;
+    width: 100%;
+}
+
+td.noborder {
+    border: 0px;
+    color: #333;
+    font: 10pt/12pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 10px 0px 5px 0px;
+}
+
+
+
+/**
+* TOC Styles
+*/
+
+#toc a:link,
+#toc a:visited,
+#toc a:hover {
+ color: black;
+ text-decoration: none;
+}
+
+#toc p.toc_h1 a:link,
+#toc p.toc_h1 a:visited,
+#toc p.toc_h1 a:hover {
+ color: #99CC00;
+}
+
+#toc {
+    width: 950px;
+}
+
+#toc_left,
+#toc_left_2 {
+    float: left;
+    padding-top:15px;
+    padding-bottom:15px;
+    width: 470px;
+}
+
+#toc_right,
+#toc_right_2 {
+    float: right;
+    padding-top:15px;
+    padding-bottom:15px;
+    width: 470px;
+}
+
+p.toc_h1 {
+    color: #99CC00;
+    font: 20pt/22pt Roboto, Arial, Helvetica, sans-serif;
+    padding: 15px 0px 0px 0px;
+}
+
+p.toc_h2 {
+    color: black;
+    font: 18pt/20pt Roboto, Arial, Helvetica, sans-serif;
+    margin-left: 20px;
+    padding: 15px 0px 0px 0px;
+}
+
+p.toc_h3 {
+    color: black;
+    font: 16pt/18pt Roboto, Arial, Helvetica, sans-serif;
+    margin-left: 45px;
+    padding: 10px 0px 0px 0px;
+}
+
+p.toc_h4 {
+    color: black;
+    font: 14pt/16pt Roboto, Arial, Helvetica, sans-serif;
+    margin-left: 85px;
+    padding: 10px 0px 0px 0px;
+}
+
+p.toc_h5 {
+    color: black;
+    font: 14pt/16pt Roboto, Arial, Helvetica, sans-serif;
+    margin-left: 105px;
+}
+
+/**
+* Note Styles
+*/
+
+
+div.note 
+    {
+        border-left: 20px solid #0099cc;
+        padding-left: 10px;
+        margin: 5px 40px 5px 5px;
+    }
+
+div.tip 
+    {
+        border-left: 4px solid #93c47d;
+        padding-left: 10px;
+        margin: 5px 40px 5px 5px;
+    }
+
+div.warning 
+    {
+        border-left: 4px solid red;
+        padding-left: 10px;
+        margin: 5px 40px 5px 5px;
+    }
+
+/**
+* Media Styles
+*/
+
+@media print {
+
+    @page {
+        margin: 1in;
+    }
+
+ }
\ No newline at end of file
diff --git a/src/compatibility/images/android-logo.png b/src/compatibility/source/images/android-logo.png
similarity index 100%
rename from src/compatibility/images/android-logo.png
rename to src/compatibility/source/images/android-logo.png
Binary files differ
diff --git a/src/compatibility/images/android-lollipop-mr1.jpg b/src/compatibility/source/images/android-lollipop-mr1.jpg
similarity index 100%
rename from src/compatibility/images/android-lollipop-mr1.jpg
rename to src/compatibility/source/images/android-lollipop-mr1.jpg
Binary files differ
diff --git a/src/compatibility/images/android-lollipop.jpg b/src/compatibility/source/images/android-lollipop.jpg
similarity index 100%
rename from src/compatibility/images/android-lollipop.jpg
rename to src/compatibility/source/images/android-lollipop.jpg
Binary files differ
diff --git a/src/compatibility/source/images/android-marshmallow.png b/src/compatibility/source/images/android-marshmallow.png
new file mode 100644
index 0000000..60381fa
--- /dev/null
+++ b/src/compatibility/source/images/android-marshmallow.png
Binary files differ
