diff --git a/content/en_index.php b/content/en_index.php
index 38d5c28..131769f 100644
--- a/content/en_index.php
+++ b/content/en_index.php
@@ -89,7 +89,7 @@
           content on eclipse.org.
         </li>
         <li><a href="documents/eclipse-openvsx-publisher-agreement.pdf">Eclipse Foundation Open VSX Publisher Agreement: </a>
-        The license agreement Eclipse Open VSX Registry publishers must agree to before publishing extensions for VS Code compatible editors on <a href="https://open-vsx.org/">open-vsx.org</a>.
+        The license agreement Eclipse Open VSX Registry publishers must agree to before publishing extensions for VS Code compatible editors on <a href="https://open-vsx.org/">open-vsx.org</a>. You may read the Open VSX Registry FAQ <a href="open-vsx-registry-faq/">here</a>.
         </li>
         <li><a href="updatemanager.php">Eclipse Foundation Update Manager Agreement:</a>
           If you package &quot;downloadable features&quot; to be installed
diff --git a/open-vsx-registry-faq/content/en_open-vsx-registry-faq.php b/open-vsx-registry-faq/content/en_open-vsx-registry-faq.php
new file mode 100644
index 0000000..7eade5d
--- /dev/null
+++ b/open-vsx-registry-faq/content/en_open-vsx-registry-faq.php
@@ -0,0 +1,119 @@
+<?php
+/**
+ * Copyright (c) 2005, 2017, 2018 Eclipse Foundation and others.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * Contributors:
+ *   Denis Roy (Eclipse Foundation) - Initial implementation
+ *   Eric Poirier (Eclipse Foundation)
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+?>
+<div id="midcolumn">
+  <h1><?php print $pageTitle; ?></h1>
+  <div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+	<li><a href="#faq-1">What is Open VSX Registry?</a></li>
+	<li><a href="#faq-2">Eclipse Foundation Management</a></li>
+	<li><a href="#faq-3">What do I Need to know as a Consumer of Open VSX?</a></li>
+	<li><a href="#faq-4">What you Need to know if you are a Publisher to Open VSX?</a></li>
+	<li><a href="#faq-5">Why do I Need to Sign a Publisher Agreement?</a></li>
+	<li><a href="#faq-6">How Do I Sign the Publisher Agreement?</a></li>
+	<li><a href="#faq-7">What Happens if I do not Sign the Publisher Agreement?</a></li>
+	<li><a href="#faq-8">Licensing</a></li>
+		<ul class="sectlevel2">
+			<li><a href="#faq-8-1">Does my Extension have to be Licensed?</a></li>
+			<li><a href="#faq-8-2">How do I know what License an Extension is Published under?</a></li>
+		</ul>
+	<li><a href="#faq-9">How do I Publish Extensions?</a></li>
+	<li><a href="#faq-10">How do I Unpublish an Extension?</a></li>
+	<li><a href="#faq-11">Are Open VSX Registry Extensions Royalty Free?</a></li>
+	<li><a href="#faq-12">How Much is the Open VSX Account Fee?</a></li>
+	<li><a href="#faq-13">How do I Opt Out of Auto-Updates?</a></li>
+	<li><a href="#faq-14">How do I get Technical Support?</a></li>
+	<li><a href="#faq-15">How do I get help with the Publisher Agreement?</a></li>
+</ul>
+
+<h2 id="faq-1">What is Open VSX Registry?</h2>
+<p>The <a href="https://open-vsx.org/">Open VSX Registry</a> offers a community driven, fully open platform for publishing and consuming VS Code extensions. The Registry is built on <a href="https://github.com/eclipse/openvsx">Eclipse Open VSX</a>, which is an open source project hosted at the Eclipse Foundation.</p>
+
+<p>Open VSX is integrated into multiple software applications that support VS Code extensions. There is strong demand for a fully open alternative to the Visual Studio Marketplace, and with hundreds of great extensions already available, it is the intent of the Eclipse Foundation to enable continued and accelerated growth.</p>
+
+<h2 id="faq-2">Eclipse Foundation Management</h2>
+
+<p>The Open VSX Registry has been transitioned to the Eclipse Foundation and is being managed under the <a href="https://ecdtools.eclipse.org/">Eclipse Cloud Development (ECD) Tools Working Group</a> in order that all stakeholders can benefit from vendor-neutral, open source operation and governance.&nbsp;&nbsp;</p>
+
+<h2 id="faq-3">What do I Need to know as a Consumer of Open VSX?</h2>
+
+<p>If you are consuming extensions in applications that use the Open VSX Registry (e.g. in Gitpod or VSCodium) there will be no usage impact. You can expect a seamless experience while we work to add more extensions, raise the visibility of extensions, and increase the number of consumers to ensure the long-term viability and vibrancy of the registry.</p>
+
+<h2 id="faq-4">What you Need to know if you are a Publisher to Open VSX?</h2>
+<p>All publishers are required to:</p>
+<ul>
+	<li>
+	<p>Sign the <a href="https://www.eclipse.org/legal/documents/eclipse-openvsx-publisher-agreement.pdf">Eclipse Foundation Open VSX Publisher Agreement</a>; and</p>
+	</li>
+	<li>
+	<p>Ensure all extensions are published under a license.</p>
+	</li>
+</ul>
+
+<h2 id="faq-5">Why do I Need to Sign a Publisher Agreement?</h2>
+<p>The purpose of the Eclipse Foundation Open VSX Publisher Agreement is to provide a written record that you have the authority to enter into and agree to the terms outlined in the agreement to publish extensions under a license to the Open VSX Registry.&nbsp;</p>
+
+<h2 id="faq-6">How Do I Sign the Publisher Agreement?</h2>
+<p>Publishers can sign the Eclipse Foundation Open VSX Publisher Agreement via their profile page on Open VSX Registry.&nbsp;&nbsp;</p>
+<p>The following steps are required in order to sign the agreement:</p>
+<ul>
+	<li>
+	<p>Create an account at <a href="https://accounts.eclipse.org/">eclipse.org</a> and include your GitHub username in the account information;</p>
+	</li>
+	<li>
+	<p><a href="https://open-vsx.org/login">Log in at open-vsx.org</a> by authorizing the service with your GitHub account;</p>
+	</li>
+	<li>
+	<p>Connect Open VSX with your Eclipse account on the <a href="https://open-vsx.org/user-settings/profile">Open VSX account profile</a> (click on &ldquo;Log in with Eclipse&rdquo;); and</p>
+	</li>
+	<li>
+	<p>Access and sign the Eclipse Foundation Open VSX Publisher Agreement from the <a href="https://open-vsx.org/user-settings/profile">Open VSX account profile</a> page.</p>
+	</li>
+</ul>
+
+<h2 id="faq-7">What Happens if I do not Sign the Publisher Agreement?</h2>
+<p>If you choose not to sign the Eclipse Foundation Open VSX Publisher Agreement, you will not be able to publish extensions and any extensions that you have previously published will be deactivated and unavailable to consumers until after you do sign the agreement.</p>
+
+<h2 id="faq-8">Licensing</h2>
+<h3 id="faq-8-1">Does my Extension have to be Licensed?</h3>
+<p>Yes, all extensions must be licensed. Your extension&rsquo;s license should be expressed by including a license expression in the <a href="https://docs.npmjs.com/cli/v6/configuring-npm/package-json#license">package.json</a> manifest. If you attempt to publish an extension without a license, you will be given the opportunity to select the <a href="https://opensource.org/licenses/MIT">MIT</a> license as a default. If you have questions about what license is best for you, we recommend that you read about open source licenses at the <a href="https://opensource.org/licenses">Open Source Initiative</a>.</p>
+
+<h3 id="faq-8-2">How do I know what License an Extension is Published under?</h3>
+<p>The applicable licenses of Open VSX Registry extensions are listed on the respective Overview page in the registry and are included in the JSON metadata of each extension.</p>
+
+<h2 id="faq-9">How do I Publish Extensions?</h2>
+<p>The publishing process is described in the <a href="https://github.com/eclipse/openvsx/wiki/Publishing-Extensions#how-to-publish-an-extension">Open VSX Wiki</a>.</p>
+
+<h2 id="faq-10">How do I Unpublish an Extension?</h2>
+<p>Please file an <a href="https://github.com/eclipse/open-vsx.org/issues">issue</a> with the project and a team member will provide this assistance.</p>
+
+<h2 id="faq-11">Are Open VSX Registry Extensions Royalty Free?</h2>
+<p>The Open VSX Registry does not collect fees to publish or consume extensions. All extensions in the Open VSX Registry are made available without fee, subject to the terms of the respective licenses.</p>
+
+<h2 id="faq-12">How Much is the Open VSX Account Fee?</h2>
+<p>There are no fees associated with publishing or consuming content from the Open VSX Registry.</p>
+
+<h2 id="faq-13">How do I Opt Out of Auto-Updates?</h2>
+<p>Auto-update is a feature of VS Code (or other applications consuming extensions). Please configure the client application accordingly if you wish to disable auto-updates of extensions. Open VSX Registry itself does not provide any auto-update facility.</p>
+
+<h2 id="faq-14">How do I get Technical Support?</h2>
+<p>The Open VSX Registry and the Eclipse Foundation cannot provide support for extensions that you have installed from the registry. The individual publishers are responsible for providing support for their own offerings.&nbsp;</p>
+<p>Users can ask questions, search for answers, enter issues and feature requests for the Open VSX Registry itself in the project&rsquo;s GitHub <a href="https://github.com/eclipse/open-vsx.org/issues">repository</a>.&nbsp;&nbsp;</p>
+
+<h2 id="faq-15">How do I get help with the Publisher Agreement?</h2>
+<p>Questions related to the Eclipse Foundation Open VSX Publisher Agreement, licenses, privacy, etc. should be sent to <a href="mailto:license@eclipse.org">license@eclipse.org</a>.</p>
+
+</div>
+<!-- remove the entire <div> tag to omit the right column!  -->
\ No newline at end of file
diff --git a/open-vsx-registry-faq/index.php b/open-vsx-registry-faq/index.php
new file mode 100644
index 0000000..8d6067e
--- /dev/null
+++ b/open-vsx-registry-faq/index.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Copyright (c) 2018 Eclipse Foundation and others.
+ *
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License 2.0 which accompanies
+ * this distribution, and is available at http://eclipse.org/legal/epl-2.0
+ */
+
+require_once (dirname(__FILE__) . "/../../eclipse.org-common/system/app.class.php");
+require_once (dirname(__FILE__) . "/../../eclipse.org-common/system/nav.class.php");
+
+$App = new App();
+$Nav = new Nav();
+$Theme = $App->getThemeClass();
+
+include($App->getProjectCommon());
+
+$pageTitle = "Eclipse Foundation Open VSX Registry Frequently Asked Questions (FAQ)";
+$Theme->setPageTitle($pageTitle);
+$Theme->setPageKeywords("Eclipse Foundation, Open VSX Registry, FAQ");
+$Theme->setPageAuthor("Eclipse Foundation");
+
+ob_start();
+include ("content/en_open-vsx-registry-faq.php");
+$html = ob_get_clean();
+
+$Theme->setNav($Nav);
+$Theme->setHtml($html);
+$Theme->generatePage();
\ No newline at end of file
