diff --git a/net/docs/supported-projects.md b/net/docs/supported-projects.md
new file mode 100644
index 0000000..1403dc3
--- /dev/null
+++ b/net/docs/supported-projects.md
@@ -0,0 +1,124 @@
+# Supported Projects
+
+The `//net` stack is used on a variety of platforms and in a variety of open
+source projects. These different platforms and projects have differing
+degrees of support from `//net` OWNERS as well as differing requirements for
+designs and technical requirements.
+
+Note that this is a rough high-level overview of the major projects; as more
+of `//net` is broken into consumable services/components as part of the Mojo
+servicificaiton efforts, it's likely that there will be a larger number of
+'variants' of these projects with different constraints and features.
+
+## Google Chrome Browser
+
+The Google Chrome browser, which lives in `//chrome`, is the most important
+`//net` consumer and shapes many of the core design decisions. In general,
+features that are not intended with or not compatible with the needs of
+the Google Chrome browser will have a very high bar for acceptance in `//net`.
+
+The feature matrix 
+
+  * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android
+  * **Release Frequency**: ~6 weeks between releases
+  * **Automatic Updates**: Yes
+  * **Command-line Flags**:
+    * __Yes__: Windows, macOS, Linux, Chromium OS (Dev image), Android (rooted)
+    * __No__: Chromium OS (Release image), iOS, Android (Release)
+  * **Field Trials (Finch)**: Yes
+  * **Enterprise Policy**: Yes
+  * **User Metrics (UMA)**: Yes
+  * **Component Updater**: Yes
+
+## Chromium Browser
+
+The Chromium browser refers to the practice of certain Linux distributions to
+bundle the open-source components of Chrome Browser in `//chrome`, branded
+as Chromium. This version is not distributed by Google, but by individual
+Linux distributions (primarily). Other distributions based on building Chromium
+for other platforms exist, although do not see as wide of usage.
+
+  * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android
+  * **Release Frequency**: Varies by distributor; some Linux distributions
+    treat versions of Chromium as "Long Term Stable" and support a single
+    version for a longer time than the Chromium projects do, others track
+    the Google Chrome release frequency.
+  * **Automatic Updates**: Varies by distributor
+  * **Command-line Flags**:
+    * __Yes__: Windows, macOS, Linux, Chromium OS (dev image), Android (rooted)
+    * __No__: Chromium OS (Release image), iOS, Android (Release)
+  * **Field Trials (Finch)**: No
+  * **Enterprise Policy**: Yes
+  * **User Metrics (UMA)**: Varies by distributor
+  * **Component Updater**: Varies by distributor
+
+## Android WebView
+
+Distinct from the Chromium browser, the Android WebView is itself based on
+the Chromium browser. On official Android devices running Android N or later,
+WebView is automatically updated when Google Chrome is updated on the
+device. For earlier devices, Android WebView is updated by the System WebView
+component.
+
+Android WebView may also be used on non-official Android devices, such as
+those based on the Android Open Source Project but do not go through the
+Android [Compatability Test Suite](https://source.android.com/compatibility/cts/).
+Such releases have limited to no interaction with the Chromium projects, and
+so their capabilities cannot be conclusively documented.
+
+For official Android devices, WebView has the following capabilities.
+
+  * **Supported Platforms**: Android
+  * **Release Frequency**: ~6 weeks between releases
+  * **Automatic Updates**: Varies. Updates are made available on the Android
+    App Store, but users must explicitly choose to update. As such, the
+    rate of update varies much more than for the Chromium browser.
+  * **Command-line Flags**: No
+  * **Field Trials (Finch)**: No
+  * **Enterprise Policy**: No
+  * **User Metrics (UMA)**: No
+  * **Component Updater**: No
+
+## `//content` Embedders
+
+In addition to Chromium, there are a number of other of embedders of
+`//content`, such as projects like [Chromium Embedded Framework](https://bitbucket.org/chromiumembedded/cef)
+or [Electron](http://electron.atom.io/). While `//net` does not directly
+support these consumers, it does support the `//content` embedding API that
+these projects use. Note that this excludes the
+[content_shell](../../content/shell) test framework.
+
+  * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android
+  * **Release Frequency**: Varies by consumer; Officially ~6 weeks
+  * **Command-line Flags**: Varies by consumer
+  * **Field Trials (Finch)**: No
+  * **Enterprise Policy**: No
+  * **User Metrics (UMA)**: No
+  * **Component Updater**: No
+
+## Cronet
+
+[Cronet](../../components/cronet/README.md) is a version of the `//net`
+network stack for use in mobile applications on iOS and Android. While
+primarily targetting first-party Google applications, Cronet's status as an
+open-source project, similar to the Chromium browser, means that it may
+find itself embedded in a variety of other projects.
+
+Unlike some of the other `//net` consumers, Cronet does not necessarily
+implement "The Web Platform" (as the holistic set of user agent-focused
+features), and instead is more akin to an HTTP(s) client networking library.
+
+  * **Supported Platforms**: iOS, Android
+  * **Release Frequency**: Varies. While "releases" are made following the
+    same frequency as Google Chrome, because it is treated similar to
+    a "third-party" library, different products and projects will ship
+    different versions of Cronet for differing periods of time.
+  * **Command-line Flags**: No
+  * **Field Trials (Finch)**: No
+  * **Enterprise Policy**: No
+  * **User Metrics (UMA)**:
+    * __Yes__: First-party (Google) projects, although they will be
+      reported in project-specific buckets (e.g. no overarching set of
+      metrics for all Cronet consumers).
+    * __No__: In general
+  * **Component Updater**: No
