diff --git a/eclipse_newsletter/2020/march/1.php b/eclipse_newsletter/2020/march/1.php
new file mode 100644
index 0000000..1f72cb4
--- /dev/null
+++ b/eclipse_newsletter/2020/march/1.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+  $App = new App ();
+  require_once ('_variables.php');
+
+  // Begin: page-specific settings. Change these.
+  $pageTitle = "Eclipse Open VSX Registry Is a Free Marketplace for VS Code Extensions";
+  $pageKeywords = "eclipse, newsletter, Eclipse Open VSX Registry";
+  $pageAuthor = "Sven Efftinge, Miro Spönemann";
+  $pageDescription = "According to the 2019 Stack Overflow developer survey, Visual Studio (VS) Code is used by more than 50 percent of all developers worldwide.";
+
+  // Uncomment and set $original_url if you know the original url of this article.
+  //$original_url = "http://eclipse.org/community/eclipse_newsletter/";
+  //$og = (isset ( $original_url )) ? '<li><a href="' . $original_url . '" target="_blank">Original Article</a></li>' : '';
+
+  // Place your html content in a file called content/en_article1.php
+  $script_name = $App->getScriptName();
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/community/eclipse_newsletter/_includes/_generate_page_article.php");
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/2.php b/eclipse_newsletter/2020/march/2.php
new file mode 100644
index 0000000..2fa9257
--- /dev/null
+++ b/eclipse_newsletter/2020/march/2.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+  $App = new App ();
+  require_once ('_variables.php');
+
+  // Begin: page-specific settings. Change these.
+  $pageTitle = "Why Eclipse Dirigible Is Ideal for Cloud-Based Development";
+  $pageKeywords = "eclipse, newsletter, Dirigible";
+  $pageAuthor = "Nedelcho Delchev";
+  $pageDescription = "Eclipse Dirigible is the only open source, low-code and no-code development platform in the world. It’s also the only cloud development platform for low-code, no-code development.";
+
+  // Uncomment and set $original_url if you know the original url of this article.
+  //$original_url = "http://eclipse.org/community/eclipse_newsletter/";
+  //$og = (isset ( $original_url )) ? '<li><a href="' . $original_url . '" target="_blank">Original Article</a></li>' : '';
+
+  // Place your html content in a file called content/en_article1.php
+  $script_name = $App->getScriptName();
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/community/eclipse_newsletter/_includes/_generate_page_article.php");
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/3.php b/eclipse_newsletter/2020/march/3.php
new file mode 100644
index 0000000..c504e24
--- /dev/null
+++ b/eclipse_newsletter/2020/march/3.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+  $App = new App ();
+  require_once ('_variables.php');
+
+  // Begin: page-specific settings. Change these.
+  $pageTitle = "Five Things You Might Not Know About Eclipse Che";
+  $pageKeywords = "eclipse, newsletter, Eclipse Che";
+  $pageAuthor = "Brad Micklea";
+  $pageDescription = "When the Eclipse Che project started four years ago this month, the most common question I heard was This is really cool technology, but what do you use it for?";
+
+  // Uncomment and set $original_url if you know the original url of this article.
+  //$original_url = "http://eclipse.org/community/eclipse_newsletter/";
+  //$og = (isset ( $original_url )) ? '<li><a href="' . $original_url . '" target="_blank">Original Article</a></li>' : '';
+
+  // Place your html content in a file called content/en_article1.php
+  $script_name = $App->getScriptName();
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/community/eclipse_newsletter/_includes/_generate_page_article.php");
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/4.php b/eclipse_newsletter/2020/march/4.php
new file mode 100644
index 0000000..5eda348
--- /dev/null
+++ b/eclipse_newsletter/2020/march/4.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+  $App = new App ();
+  require_once ('_variables.php');
+
+  // Begin: page-specific settings. Change these.
+  $pageTitle = "Eclipse Theia Is Ready for Primetime";
+  $pageKeywords = "eclipse, newsletter, Eclipse Theia";
+  $pageAuthor = "Sven Efftinge";
+  $pageDescription = "After three years of hard work and several high-profile production deployments, Eclipse Theia 1.0 will be released on March 31.";
+
+  // Uncomment and set $original_url if you know the original url of this article.
+  //$original_url = "http://eclipse.org/community/eclipse_newsletter/";
+  //$og = (isset ( $original_url )) ? '<li><a href="' . $original_url . '" target="_blank">Original Article</a></li>' : '';
+
+  // Place your html content in a file called content/en_article1.php
+  $script_name = $App->getScriptName();
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/community/eclipse_newsletter/_includes/_generate_page_article.php");
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/5.php b/eclipse_newsletter/2020/march/5.php
new file mode 100644
index 0000000..9f20b54
--- /dev/null
+++ b/eclipse_newsletter/2020/march/5.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+  $App = new App ();
+  require_once ('_variables.php');
+
+  // Begin: page-specific settings. Change these.
+  $pageTitle = "Newsletter News";
+  $pageKeywords = "eclipse, newsletter, Newsletter News";
+  $pageAuthor = "Eclipse Foundation";
+  $pageDescription = "Newsletter News";
+
+  // Uncomment and set $original_url if you know the original url of this article.
+  //$original_url = "http://eclipse.org/community/eclipse_newsletter/";
+  //$og = (isset ( $original_url )) ? '<li><a href="' . $original_url . '" target="_blank">Original Article</a></li>' : '';
+
+  // Place your html content in a file called content/en_article1.php
+  $script_name = $App->getScriptName();
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/community/eclipse_newsletter/_includes/_generate_page_article.php");
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/_variables.php b/eclipse_newsletter/2020/march/_variables.php
new file mode 100644
index 0000000..c197ef2
--- /dev/null
+++ b/eclipse_newsletter/2020/march/_variables.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+$pageTitle = "A New Era in Cloud Development Tools";
+$pageKeywords = "";
+$pageAuthor = "Christopher Guindon";
+$pageDescription = "";
+
+// Make it TRUE if you want the sponsor to be displayed
+$displayNewsletterSponsor = FALSE;
+
+// Sponsors variables for this month's articles
+$sponsorName = "";
+$sponsorLink = "";
+$sponsorImage = "";
+
+  // Set the breadcrumb title for the parent of sub pages
+$breadcrumbParentTitle = $pageTitle;
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/content/en_1.php b/eclipse_newsletter/2020/march/content/en_1.php
new file mode 100644
index 0000000..2415bf0
--- /dev/null
+++ b/eclipse_newsletter/2020/march/content/en_1.php
@@ -0,0 +1,135 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+// This file must be included
+if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
+  exit();
+}
+?>
+<h1 class="article-title"><?php echo $pageTitle; ?></h1>
+<p>According to the 2019 Stack Overflow developer survey, Visual Studio (VS) Code is used
+  by more than 50&nbsp;percent of all developers worldwide. Its extension protocol has enabled the
+  broader developer community to create more than 16,000 extensions supporting all major programming
+  languages, frameworks, and tools used in modern software projects. While large parts of VS Code
+  are developed as open source, the actual product is not open source.</p>
+<h2>Vendor-Neutral Alternatives to VS Code Are Available</h2>
+<p>
+  <a href="http://theia-ide.org">Eclipse Theia</a>, the integrated developer environment (IDE) that
+  powers Gitpod, Google Cloud Shell, and others, offers a vendor-neutral alternative to VS Code and
+  is based on parts of the same open-source codebase as VS Code.
+</p>
+<p>
+  Theia works as an Electron-based desktop app, and it runs in browsers. It also features a highly
+  flexible architecture that allows extensive customizations.<a
+    href="https://www.arduino.cc/pro/arduino-pro-ide"
+  > Arduino&rsquo;s new Pro IDE</a> and<a href="https://os.mbed.com/studio/"> Arm&rsquo;s Mbed
+    Studio</a> are great examples of Theia&rsquo;s flexibility. In addition to this built-in
+  flexibility, Theia can also run VS Code extensions.
+</p>
+<p>
+  Another community-driven project called<a href="https://github.com/VSCodium/vscodium"> VSCodium</a>
+  offers a 100 percent open-source version of VS Code.
+</p>
+<h2>Only Visual Studio Products Can Access the Extension Marketplace</h2>
+<p>While all of the projects listed above support VS Code extensions, only Microsoft
+  products can use and connect to Microsoft&rsquo;s Extension Marketplace. The terms of use for the
+  Marketplace prevent any non-Visual Studio products from accessing it.</p>
+<p>Gitpod employs a workaround where users upload .vsix files to install extensions. This
+  causes unnecessary overhead as users have to download the files from GitHub, then upload them to
+  Gitpod. Downloading extensions from the Microsoft Marketplace for any use other than in Microsoft
+  products is prohibited as well.</p>
+<p>Most extensions are developed by communities and published under permissive open source
+  licenses. The requirement to distribute and access these community-owned extensions in a system
+  with such restrictive terms of service does not seem right.</p>
+<p>
+  Our goal is to resolve this issue by hosting an open source extension registry at the Eclipse
+  Foundation, a vendor-neutral organization. We&rsquo;re doing this through the<a
+    href="https://github.com/eclipse/openvsx"
+  > Eclipse Open VSX Registry</a> project.
+</p>
+<h2>You Can Host Your Own Registry With Eclipse Open VSX Registry</h2>
+<p>In addition to providing a publicly hosted, vendor-neutral extension registry, the
+  Eclipse Open VSX Registry project also makes the code available as open source. This way everyone
+  can install their own registry and use it, for example, on a corporate network.</p>
+<p>You&rsquo;re not forced to publish proprietary extensions to a public marketplace, but
+  you still maintain full control over their availability. This is very similar to common practices
+  in other ecosystems such as npm, Cargo, and Maven.</p>
+<p>The illustration below shows the Open VSX Registry.</p>
+<p>
+  <img src="/community/eclipse_newsletter/2020/march/images/1_1.png"/>
+</p>
+<h2>Using the Eclipse Open VSX Registry</h2>
+<p>The Open VSX Registry contains the registry server, a web interface, and a command line
+  interface (CLI) to simplify publishing.</p>
+<p>
+  The publicly hosted instance of the registry is available<a href="about:blank"> here</a>. The
+  upcoming Theia version 1.0 release will use this installation as its default registry.
+</p>
+<p>Because Microsoft&rsquo;s VS Code Extension Marketplace API is proprietary and
+  undocumented, the Open VSX Registry project has defined its own API. An adapter between the two
+  APIs is planned and will be required to connect VS Code and VSCodium to the Open VSX Registry.</p>
+<h2>Four Easy Steps to Publish Extensions</h2>
+<p>We would love to see extension developers publish to our registry in addition to
+  Microsoft&rsquo;s. To encourage publishing, we developed a CLI that makes publishing very easy.
+  The four basic steps to publish extensions are:</p>
+<ol>
+  <li>Register on open-vsx.org through<a href="https://open-vsx.org/oauth2/authorization/github">
+      GitHub OAuth</a>.
+  </li>
+  <li><a href="https://open-vsx.org/user-settings/tokens">Create an access token</a> and copy it.</li>
+  <li>Run <code>npx ovsx create-namespace &lt;publisher&gt; --pat &lt;token&gt;</code> with the publisher name
+    specified in the extension&rsquo;s package.json.</li>
+  <li>Run <code>npx ovsx publish --pat &lt;token&gt;</code> in the directory of the extension you want to
+    publish.</li>
+</ol>
+<h2>We&rsquo;re Seeding the Registry</h2>
+<p>
+  Until extension developers start publishing to open-vsx.org themselves, we will publish open
+  source extensions through a script maintained in a<a
+    href="https://github.com/open-vsx/publish-extensions"
+  > GitHub repository</a>. A continuous integration build regularly runs through the list of changes
+  and automatically deploys all listed projects.
+</p>
+<p>If you&rsquo;re missing a particular extension:</p>
+<ol>
+  <li>Ask the original maintainer to publish to open-vsx.org, pointing them to this article for
+    context.</li>
+  <li>If the maintainer does not respond, create a pull request<a
+    href="https://github.com/open-vsx/publish-extensions"
+  > here</a>.
+  </li>
+</ol>
+<h2>Open Source Should Remain Open Source</h2>
+<p>The VS Code team is doing a great job building a developer experience that is loved and
+  used by millions of developers. The large ecosystem of extensions is unique and provides
+  state-of-the-art tool support for all modern programming languages, frameworks, and tools.</p>
+<p>However, we believe that assets released as open source should remain readily available
+  to everyone. A vendor-neutral, community-driven marketplace for VS Code extensions at the Eclipse
+  Foundation is an important first step to make this happen.</p>
+<div class="bottomitem">
+  <h3>About the Author</h3>
+  <div class="row">
+    <div class="col-sm-12">
+      <div class="row">
+        <div class="col-sm-8">
+          <img class="img-responsive"
+            src="/community/eclipse_newsletter/2020/march/images/miro.png" alt="<?php print $pageAuthor; ?>"
+          />
+        </div>
+        <div class="col-sm-16">
+          <p class="author-name"><?php print $pageAuthor; ?></p>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/content/en_2.php b/eclipse_newsletter/2020/march/content/en_2.php
new file mode 100644
index 0000000..a2986fd
--- /dev/null
+++ b/eclipse_newsletter/2020/march/content/en_2.php
@@ -0,0 +1,165 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+// This file must be included
+if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
+  exit();
+}
+?>
+<h1 class="article-title"><?php echo $pageTitle; ?></h1>
+<p dir="ltr">
+  <a href="/community/eclipse_newsletter/2018/february/dirigible.php">Eclipse
+    Dirigible</a> is the only open source, low-code and no-code development platform in the world.
+  It&rsquo;s also the only cloud development platform for low-code, no-code development. And it
+  includes a number of high-productivity tools and user-friendly design features that aren&rsquo;t
+  available in on-premises integrated development environments (IDEs) or other cloud-based IDEs.
+</p>
+<p dir="ltr">We&rsquo;ve put such a strong focus on the development experience because we recognize
+  this is what&rsquo;s needed to encourage developers to make the move from the on-premises IDEs
+  they&rsquo;re so familiar with to cloud development tools.</p>
+<p dir="ltr">If we simply provided a general-purpose IDE in a browser, there would be little
+  incentive for developers to switch to a cloud-based development environment. Local IDEs would
+  always deliver higher performance and better integration with operating systems than the
+  browser-based version.</p>
+<p dir="ltr">As a result, we&rsquo;ve spent a lot of time and effort ensuring Eclipse Dirigible
+  provides added value for developers with features and functionality that are a natural fit and
+  beneficial for cloud development.</p>
+<p dir="ltr">Before I describe the latest and greatest advances in Dirigible, here&rsquo;s a look at
+  the foundational elements that make it the ideal platform for cloud-based development.</p>
+<h2 dir="ltr">Dirigible Is an All-In-One Web IDE and Runtime</h2>
+<p>I&rsquo;ll start by clearing up one of the biggest misconceptions about Eclipse Dirigible.
+  It&rsquo;s not just another web IDE. Dirigible seamlessly combines a web IDE with an integrated
+  runtime, as shown in the platform illustration below.</p>
+<p>&nbsp;
+<p dir="ltr">
+  <img src="images/2_1.png"/>
+</p>
+</p>
+<p dir="ltr">The self-contained runtime environment runs in the browser so there are no additional
+  downloads or installations. Integrated combinations of pre-selected engines ensure the two aspects
+  of Dirigible work together. You can execute your application code in the runtime, or you can use
+  the runtime on its own for production purposes.</p>
+<p dir="ltr">This integrated approach to application development and production is a significant
+  advantage if you&rsquo;re used to working with standalone IDEs, whether they&rsquo;re local or
+  cloud-based. It means you&rsquo;re no longer forced to switch tools or simulate a local
+  environment when it&rsquo;s time to produce the production-ready artifacts to be deployed. Using a
+  single system also avoids the unexpected behaviors and issues that can occur when you develop
+  locally and deploy in the cloud.</p>
+<h2 dir="ltr">Live System Development Delivers Immediate Results</h2>
+<p dir="ltr">Like all cloud-based development environments, Eclipse Dirigible offers fast and easy
+  startup. You don&rsquo;t need to spend half an hour installing an entire IDE. You can simply go to
+  the website and everything you need is already there &mdash; plugins, integrations, even data
+  integrations.</p>
+<p dir="ltr">Dirigible takes the convenience of web development one step further. With the unique
+  Dirigible system development model, you can develop on a live system. If you have a system already
+  running in the cloud, you can access it and start developing in it. You simply write code, click
+  save, and you can immediately see the results. This dramatically shortens development time.</p>
+<h2 dir="ltr">Features Focus on Business Application Development</h2>
+<p dir="ltr">We&rsquo;ve also implemented a number of features that are ideal for developing
+  business applications.</p>
+<p dir="ltr">Because business applications are used in real-world business processes, they must be
+  very dynamic. Business processes change constantly, and applications need to keep pace.</p>
+<p dir="ltr">To ensure developers can quickly adapt applications to align with changing business
+  processes, Dirigible enables easy application extensibility and fast database access. The
+  low-code, no-code approach we&rsquo;ve taken also accelerates business application development.</p>
+<p dir="ltr">In addition, Dirigible supports a full-stack development process so you can create
+  everything you need within the Dirigible development environment.</p>
+<h2 dir="ltr">A Stable API Simplifies Development</h2>
+<p dir="ltr">A stable API is essential when you&rsquo;re frequently evolving business applications.
+  While there are numerous well-known stable APIs in very established technologies, such as Java,
+  that&rsquo;s not the case in the cloud right now.</p>
+<p dir="ltr">To simplify development, Dirigible provides what we call enterprise JavaScript, which
+  is a subset of stable Java APIs we&rsquo;ve created to lower the barrier of entry to cloud
+  development. Here&rsquo;s a brief example of a request/response API.</p>
+<p dir="ltr">
+  <img src="images/2_2.png"/>
+</p>
+<h2 dir="ltr">New Models Jumpstart Development</h2>
+<p dir="ltr">Recently, we added two new models and approaches to Eclipse Dirigible to make it even
+  faster and easier for developers to generate complete business applications:</p>
+<ul dir="ltr">
+  <li>A domain model lets you start with business objects then generate the application.</li>
+  <li>A process model lets you start with business processes then apply them to business
+    objects.&nbsp;</li>
+</ul>
+<p dir="ltr">In just five or six minutes, you can model two or three entities for an application,
+  generate them, and immediately start entering data to see how they function and behave. The two
+  models can also be used together.</p>
+<p dir="ltr">Afterwards, you can write custom extensions that enhance the overall applications. You
+  can also embed custom views and third-party frameworks, such as Google Maps, for really
+  interesting applications.</p>
+<h2 dir="ltr">Customization Capabilities Increase Flexibility</h2>
+<p dir="ltr">Models are a great way to very quickly and easily develop 80 percent of a business
+  application. But, the other 20 percent of the application is also very important. Many developers
+  won&rsquo;t use a development environment unless it provides the ability to tailor that final 20
+  percent of the application.</p>
+<p dir="ltr">While many low-code, no-code development platforms limit the way you can customize the
+  application, we&rsquo;ve taken the opposite approach. With Eclipse Dirigible, you have complete
+  flexibility to add new templates and generators, and to write and include your own custom code.</p>
+<h2 dir="ltr">Integration With Eclipse Che Brings Devops to a Kubernetes Environment</h2>
+<p dir="ltr">
+  Finally, in an excellent example of the benefits of collaborating in and across Eclipse
+  communities, we&rsquo;ve integrated Dirigible into<a href="/che/"> Eclipse
+    Che</a>.
+</p>
+<p dir="ltr">
+  The integration with Che enables Dirigible to provide devops processes for application management
+  in a containerized Kubernetes environment. Dirigible is embedded in Che workspaces, similar to the
+  way<a href="https://theia-ide.org/"> Eclipse Theia</a> is embedded.
+</p>
+<p dir="ltr">Interestingly, we completed the integration over just two or three days while we were
+  all together during EclipseCon Europe in Ludwigsburg last October! It was an incredible
+  collaborative experience and a great opportunity to work together face-to-face with the broader
+  Eclipse cloud development community.</p>
+<p dir="ltr">Here&rsquo;s a look at Eclipse Dirigible&rsquo;s predefined application templates in
+  the integrated user interface.</p>
+<p dir="ltr">
+  <img src="images/2_3.png"/>
+</p>
+<h2 dir="ltr">We&rsquo;re Looking for Partners, Customers, and Developers</h2>
+<p dir="ltr">Because Eclipse Dirigible is a mature project, we&rsquo;re actively seeking university
+  and business partners as well as customers so we can collaborate with them and demonstrate
+  what&rsquo;s possible with Eclipse Dirigible. Of course, we also welcome all developers who are
+  interested in joining the project.</p>
+<p dir="ltr">
+  We encourage everyone with an interest in cloud development to take a closer look at Eclipse
+  Dirigible. We have a<a href="https://www.dirigible.io/"> comprehensive website</a> with
+  documentation, links to helpful videos, and other information.
+</p>
+<p dir="ltr">
+  While you&rsquo;re on the site, be sure to click<a
+    href="http://trial-dirigible.ingress.aws.promart.shoot.canary.k8s-hana.ondemand.com/index.html"
+  > TRY IT OUT</a> so you can go directly to our trial package and start experimenting.
+</p>
+<p>
+  If you would like to join our mailing list, click<a
+    href="https://accounts.eclipse.org/mailing-list/dirigible-dev"
+  > here</a>.
+</p>
+<div class="bottomitem">
+  <h3>About the Author</h3>
+  <div class="row">
+    <div class="col-sm-12">
+      <div class="row">
+        <div class="col-sm-8">
+          <img class="img-responsive"
+            src="/community/eclipse_newsletter/2020/march/images/nedelcho.png" alt="<?php print $pageAuthor; ?>"
+          />
+        </div>
+        <div class="col-sm-16">
+          <p class="author-name"><?php print $pageAuthor; ?></p>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/content/en_3.php b/eclipse_newsletter/2020/march/content/en_3.php
new file mode 100644
index 0000000..050672f
--- /dev/null
+++ b/eclipse_newsletter/2020/march/content/en_3.php
@@ -0,0 +1,146 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+// This file must be included
+if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
+  exit();
+}
+?>
+<h1 class="article-title"><?php echo $pageTitle; ?></h1>
+<p>
+  When the <a href="https://www.eclipse.org/che/">Eclipse Che</a> project started four years ago
+  this month, the most common question I heard was &ldquo;This is really cool technology, but what
+  do you use it for?&rdquo;
+</p>
+<p>At the time, there wasn&rsquo;t a lot of activity happening around cloud-based ideas.
+  There were even fewer activities around container-focused, cloud-based ideas. People were very
+  interested in what was happening in Eclipse Che, but they weren&rsquo;t quite sure what to make of
+  it.</p>
+<p>Fast-forward to March 2020 and the landscape has changed dramatically. People have a
+  much better understanding of cloud-based development and Docker containers. And they appreciate
+  how much faster and easier Eclipse Che makes it to develop enterprise applications that leverage
+  Kubernetes.</p>
+<p>With the speed and simplicity that Che enables, people have flocked to it. Today, a
+  number of corporations and communities across the globe rely heavily on Eclipse Che to expand,
+  enhance, and tailor their developer experiences. Leading technology providers, including IBM, CA
+  Technologies, SAP, Red Hat, Samsung, and Broadcom use Che. It&rsquo;s also used broadly across
+  industries, including banking, automotive, and healthcare.</p>
+<p>While most people have a good understanding of Eclipse Che and its benefits, there are
+  still a few facts about this very versatile technology that surprise people.</p>
+<h2>1. You Can Use Che for Just About Anything</h2>
+<p>Instead of asking what you would use Che for, the question now is more along the lines
+  of &ldquo;what wouldn&rsquo;t you use it for?&rdquo; In addition to the expected uses cases around
+  helping developers get started and contribute to applications that will be deployed on a
+  Kubernetes platform, we&rsquo;re also seeing some really interesting and unexpected applications.</p>
+<p>Here are a couple of examples:</p>
+<ul>
+  <li><strong>Mainframes. </strong>At least two major corporations are using the cutting-edge
+    technology in Eclipse Che to make it easier for developers to contribute to their mainframes.
+    While mainframes are very established technology, they&rsquo;re also arguably one of the most
+    complex developer environments to set up. Newer developers typically don&rsquo;t have the
+    experience or expertise needed. Eclipse Che means they don&rsquo;t need it.</li>
+</ul>
+<p>Once you get past the novel idea of combining mainframes with new, technology-light
+  containers and Kubernetes, it makes perfect sense. But, it&rsquo;s certainly not a use case we
+  envisioned when we started Che.</p>
+<ul>
+  <li><strong>IoT.</strong> Eclipse Che is also making it easier for developers to contribute to IoT
+    device development &mdash; from laptops, from the cloud, from anywhere really. We&rsquo;ve seen
+    Che used for IoT application development in the automotive industry and on devices such as the
+    Raspberry Pi.</li>
+</ul>
+<p>These are just two of the many innovative ways Che is being used. Those of us who work
+  on the project feel we&rsquo;re just starting to scratch the surface of how the technology can be
+  used.</p>
+<h2>2. The Real Power of Che Is the Backend Functionality</h2>
+<p>Many people think of Eclipse Che as a web-based IDE. But, the IDE represents only about
+  20 percent of Che&rsquo;s capabilities. The most interesting and powerful part of Che is the 80
+  percent that happens behind the scenes.</p>
+<p>A growing number of people in the Eclipse Che community are focusing on what the Che
+  backend can do for them. In fact, some don&rsquo;t use the Che IDE at all. They swap it out for
+  something that&rsquo;s more appropriate for their needs.</p>
+<p>For example, data scientists don&rsquo;t need an IDE that looks like Visual Studio Code
+  because they&rsquo;re not coders. They want to use their Jupyter Notebook or something like it.
+  Other folks don&rsquo;t want to use a web-based editor. They prefer to take advantage of the Che
+  server and the workspaces it provisions directly from their desktop IDE. That&rsquo;s fully
+  supported too.</p>
+<p>The point here is the conversation shouldn&rsquo;t be about the Che IDE. It should be
+  about comparing Eclipse Che to other tools that provision workspaces in the background so
+  developers don&rsquo;t have to. Today, there aren&rsquo;t many tools that provide this capability
+  in a Kubernetes environment. You can do it with virtual machines, but VMs are heavy, slow, and not
+  easily portable. And they certainly don&rsquo;t support hyperscale like containers and Kubernetes
+  do.</p>
+<h2>3. You Can Use Che Offline</h2>
+<p>You can use Eclipse Che in an environment that&rsquo;s completely disconnected, or
+  air-gapped, from the internet. There are two reasons this is important:</p>
+<ul>
+  <li>Many organizations in government, defense, financial, and academic sectors have walled-off
+    their most important applications from the internet for security reasons. However, they still
+    want their developers to be able to quickly contribute code to those critical applications.</li>
+</ul>
+<p>When these organizations find out they can use Che offline, it&rsquo;s typically a big
+  &ldquo;wow&rdquo; moment for them. Their developers are very intelligent people, but they work in
+  highly constrained worlds with limited access to sophisticated, modern tools like Che.</p>
+<ul>
+  <li>When developers are traveling, they often have periods of time where they&rsquo;re not
+    connected to the internet. With Che, they can remain productive during these times.</li>
+</ul>
+<h2>4. Che Has Many Innovative Contributors</h2>
+<p>Many people still think of Eclipse Che as a Red Hat project, but it&rsquo;s not. It
+  started as a project from a company called Codenvy that was acquired by Red Hat, but the community
+  has broadened considerably since then. It now includes contributors from a wide range of locations
+  and corporations.</p>
+<p>Che is your typical Eclipse community that&rsquo;s always expanding and is very
+  approachable. We have weekly community calls, and they now often include demos from our community
+  members. Some of these demos are very, very impressive, which shows we&rsquo;ve reached an
+  exciting and interesting stage in the project&rsquo;s growth.</p>
+<h2>5. Che Has Come a Long Way Since It Was First Released</h2>
+<p>When Eclipse Che was first released, many people probably liked the functionality it
+  provided, but were put off by the fact that it didn&rsquo;t look like the IDE they were already
+  using. It likely seemed easier to stick with what they knew rather than go through a learning
+  curve they didn&rsquo;t have time for.</p>
+<p>Today, the Che IDE looks and behaves like Visual Studio Code so it&rsquo;s a painless
+  move for millions of developers around the world. Developers also have the flexibility to stick
+  with their preferred cloud or on-premises IDE. That learning curve they were so worried about has
+  virtually disappeared.</p>
+<p>In addition, in Che 7, we made key changes that mean production containers look the
+  same in production as they do in development. Tooling and other required elements are wrapped
+  around the production container so it doesn&rsquo;t change when you move from development to
+  production. This is very important to ensure the validity of testing.</p>
+<h2>Take Another Look at Che</h2>
+<p>If you haven&rsquo;t looked at Che in a while, it&rsquo;s definitely time to take
+  another look and re-evaluate how it can help you take advantage of new opportunities and tackle
+  major challenges. There are a lot of people in the Che community doing some very innovative work
+  with the technology and we&rsquo;re constantly making improvements.</p>
+<p>
+  To get started, visit our <a href="https://www.eclipse.org/che/">website</a>. You&rsquo;ll find an
+  overview of Che 7, our newest and biggest release ever, along with detailed information about
+  using Che and the links you need to get started.
+</p>
+<div class="bottomitem">
+  <h3>About the Author</h3>
+  <div class="row">
+    <div class="col-sm-16">
+      <div class="row">
+        <div class="col-sm-6">
+          <img class="img-responsive"
+            src="/community/eclipse_newsletter/2020/march/images/brad.png" alt="<?php print $pageAuthor; ?>"
+          />
+        </div>
+        <div class="col-sm-18">
+          <p class="author-name"><?php print $pageAuthor; ?></p>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/content/en_4.php b/eclipse_newsletter/2020/march/content/en_4.php
new file mode 100644
index 0000000..7327c91
--- /dev/null
+++ b/eclipse_newsletter/2020/march/content/en_4.php
@@ -0,0 +1,129 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+// This file must be included
+if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
+  exit();
+}
+?>
+<h1 class="article-title"><?php echo $pageTitle; ?></h1>
+<p>
+  After three years of hard work and several high-profile production deployments,<a
+    href="https://theia-ide.org/"
+  > Eclipse Theia</a> 1.0 will be released on March 31. The technology is mature, stable, and ready
+  for anyone and everyone to use as a foundation for their custom cloud or desktop integrated
+  development environment (IDE).
+</p>
+<p>
+  The framework that Theia provides is the natural evolution of open source desktop IDE platforms,
+  such as the<a href="https://www.eclipse.org/eclipseide/"> Eclipse IDE</a>. With Theia,
+  corporations and IDE vendors have a single, modern technology stack that can be used to build
+  development environments for desktops and browsers. And they don&rsquo;t need to make that
+  decision upfront.
+</p>
+<h2>Flexibility for Today and Tomorrow</h2>
+<p>
+  Theia gives the global community a next-generation IDE platform that&rsquo;s ideal for meeting
+  today&rsquo;s needs and for developing future solutions. Because it&rsquo;s open source,
+  vendor-neutral, and follows the<a href="https://www.eclipse.org/org/documents/"> Eclipse
+    Foundation governance model</a>, you never have to worry about being tied to a particular
+  vendor&rsquo;s business objectives or roadmap.
+</p>
+<p>The potential ways of leveraging Theia are as varied as the organizations that adopt
+  it. Adopters can build commercial tools for resale as well as internal tools that meet specific
+  engineering requirements.</p>
+<p>We have a number of adopters who start by using Theia to build a desktop IDE, but
+  don&rsquo;t know when, or even whether, they&rsquo;ll need a cloud IDE. But, they know they can
+  make that move at any time without having to rewrite the source code. Another major corporation
+  that&rsquo;s adopted Theia has developed a desktop IDE and a cloud version, but are using the
+  cloud IDE as a playground for experimenting. The long-term goal is to fully replace the Theia
+  desktop IDE with the cloud version.</p>
+<p>The images below illustrate Theia&rsquo;s architectural flexibility.</p>
+<p>
+  <img src="images/4_1.png"/>
+</p>
+<p>&nbsp;
+<p>
+  <img src="images/4_2.png"/>
+</p>
+</p>
+<p>
+  <img src="images/4_3.png"/>
+</p>
+<h2>Proven in Numerous Real-World Scenarios</h2>
+<p>Because the architecture is stable and reliable, companies using Theia can be confident
+  their IDEs won&rsquo;t break due to changes in the underlying code.</p>
+<p>Many big-name companies already rely on Theia as the foundational building block for
+  their IDEs. For example, it&rsquo;s used in the GitHub IDE, which has 130,000 registered users.
+  It&rsquo;s also used in Google Cloud Shell, which has many more users. SAP, Arm, and Arduino have
+  also built highly customized IDEs on top of the Theia platform.</p>
+<p>
+  Theia is also integrated into<a href="https://www.eclipse.org/che/"> Eclipse Che</a>.
+</p>
+<h2>Support for Virtual Studio Code Extensions</h2>
+<p>Eclipse Theia is the first cloud IDE to support VS Code extensions and bring the same
+  capabilities and features that local desktop IDEs offer into the cloud.</p>
+<p>This is a significant step forward from first-generation cloud IDEs that struggled to
+  provide state-of-the-art tools support. With these early, sandbox-like IDEs, each company had to
+  develop its own extensions for the IDE &mdash; if extensions were supported at all. Developing
+  these extensions requires a huge amount of time, programming effort, and money. And it was
+  replicated across companies.</p>
+<p>As an open source community, we can spread the extension development effort across many
+  contributors and collectively benefit from the results.</p>
+<p>
+  Theia 1.0 will use the<a href="https://projects.eclipse.org/proposals/eclipse-open-vsx-registry">
+    Eclipse Open VSX Registry</a> as its default registry. The extensions available in this free
+  marketplace for VS Code extensions can be used in VS Code as well as in Theia. For additional
+  insight into the rationale behind the registry and its benefits, <a href="1.php">read the
+    accompanying article</a> in this month&rsquo;s newsletter.
+</p>
+<h2>A Full-Featured Development Environment</h2>
+<p>With Theia&rsquo;s full-featured development environment, you can do things that
+  aren&rsquo;t possible in other IDEs. For example, you can:</p>
+<ul>
+  <li>Click a button and start coding in the way you can in GitHub</li>
+  <li>Create and use as many workspaces as you want in parallel</li>
+  <li>Start with fresh environments, use them, then discard them at any time</li>
+</ul>
+<p>These capabilities are possible because Theia provides continuous integration and
+  brings serverless, ephemeral concepts to development environments. The screen capture below shows
+  the Theia development environment.</p>
+<p>
+  <img src="images/4_4.png"/>
+</p>
+<h2>Get Started With Theia</h2>
+<p>We invite all users, adopters, and contributors to try Theia 1.0 and to build
+  extensions. When you work on the Theia project, you can actually use Theia to develop Theia, which
+  is really cool and super-convenient.</p>
+<p>
+  To get started,<a href="https://theia-ide.org/"> visit the Theia website</a>. You&rsquo;ll find
+  tutorials backed up with code, examples, documentation, and easy ways to start leveraging Theia in
+  a variety of programming languages.
+</p>
+<div class="bottomitem">
+  <h3>About the Author</h3>
+  <div class="row">
+    <div class="col-sm-16">
+      <div class="row">
+        <div class="col-sm-6">
+          <img class="img-responsive"
+            src="/community/eclipse_newsletter/2020/march/images/sven.png" alt="<?php print $pageAuthor; ?>"
+          />
+        </div>
+        <div class="col-sm-18">
+          <p class="author-name"><?php print $pageAuthor; ?></p>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/content/en_5.php b/eclipse_newsletter/2020/march/content/en_5.php
new file mode 100644
index 0000000..e4b688e
--- /dev/null
+++ b/eclipse_newsletter/2020/march/content/en_5.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+// This file must be included
+if (basename(__FILE__) == basename($_SERVER['PHP_SELF'])) {
+  exit();
+}
+?>
+<h1 class="article-title"><?php echo $pageTitle; ?></h1>
+<h2>COVID-19 Impact on Upcoming Events</h2>
+<p>As the novel coronavirus (COVID-19) makes headlines around the world, conferences and
+  community events throughout our industry continue to be cancelled or postponed.</p>
+<p>With the health and safety of our employees and community members as a top priority,
+  the Eclipse Foundation has decided to restrict all non-essential travel for our staff through
+  mid-May. We will not be attending any events during this period, and will assess our participation
+  beyond that point following recommendations from the Canadian federal government, the World Health
+  Organization, and the Centers for Disease Control (CDC).</p>
+<p>
+  We will continue to provide updates about our participation in events through our social media
+  channels:<a href="https://twitter.com/EclipseFdn?mc_cid=5b47a23005&amp;mc_eid=%5bUNIQID%5d">
+    Twitter</a>,<a
+    href="https://www.facebook.com/eclipse.org?mc_cid=5b47a23005&amp;mc_eid=%5bUNIQID%5d"
+  > Facebook</a>, and<a
+    href="https://www.linkedin.com/company/eclipse-foundation?mc_cid=5b47a23005&amp;mc_eid=%5bUNIQID%5d"
+  > LinkedIn</a>.
+</p>
+<h2>IoT Commercial Adoption Survey Results Now Available</h2>
+<p>
+  The results of our 2019 IoT Commercial Adoption Survey are now available<a
+    href="http://eclipse-5413615.hs-sites.com/iot-adoption-survey-results-2019"
+  > here</a>.
+</p>
+<p>The goal of this survey was to gather insights that would help IoT ecosystem
+  stakeholders gain a better understanding of the IoT industry landscape and the requirements,
+  priorities, and challenges faced by organizations that are deploying and using commercial IoT
+  solutions.</p>
+<p>Key findings from the survey include:</p>
+<ul>
+  <li>IoT may well live up to the hype, if somewhat slower than expected. Just under 40 percent of
+    survey respondents are deploying IoT solutions today. Another 22 percent plan to start deploying
+    IoT within the next two years.</li>
+  <li>IoT investment is on the rise, with 40 percent of organizations planning to increase their IoT
+    spending in the next fiscal year.</li>
+  <li>Open source pervades IoT as a key enabler with 60 percent of companies factoring open source
+    into their IoT deployment plans.</li>
+  <li>Hybrid clouds lead the way for IoT deployments. Overall, AWS, Azure, and GCP are the leading
+    cloud platforms for IoT implementations.</li>
+</ul>
+<p>
+  To learn more about how each player in the IoT ecosystem can use the survey results to drive IoT
+  adoption,<a href="https://blogs.eclipse.org/post/mike-milinkovich/real-world-iot-adoption"> read
+    this blog</a> by Eclipse Foundation Executive Director, Mike Milinkovich.
+</p>
+
+<h2>The Eclipse IDE 2020-03 Release is Here</h2>
+<p dir="ltr">
+  The Eclipse IDE 2020-03 release is <a href="https://www.eclipse.org/eclipseide/2020-03/">here</a>
+  and available for download. To learn more about the release&rsquo;s key features and improvements,
+  head over to the <a href="https://www.eclipse.org/eclipseide/2020-03/noteworthy/">2020-03 New and
+    Noteworthy</a> summary.
+</p>
+<p dir="ltr">The quarterly simultaneous release of Eclipse projects is a huge accomplishment made
+  possible by the tireless efforts of many committers, projects, and Foundation staff. There are 74
+  projects in the 2020-03 simultaneous release, consisting of over 72 million lines of code, with
+  contributions by 196 developers, 130 of whom are Eclipse committers.</p>
+<p dir="ltr">Congratulations and thank you to everyone who contributed to this achievement.</p>
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/content/en_index.php b/eclipse_newsletter/2020/march/content/en_index.php
new file mode 100644
index 0000000..276f86e
--- /dev/null
+++ b/eclipse_newsletter/2020/march/content/en_index.php
@@ -0,0 +1,579 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+// This file must be included
+if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])){exit();}
+?>
+    <table border="0" cellpadding="0" cellspacing="0" height="100%" width="<?php print $email_body_width; ?>" id="emailBody">
+
+      <!-- MODULE ROW // -->
+      <!--
+        To move or duplicate any of the design patterns
+          in this email, simply move or copy the entire
+          MODULE ROW section for each content block.
+      -->
+
+      <tr class="banner_Container">
+        <td align="center" valign="top">
+
+          <?php if (isset($path_to_index)): ?>
+            <p style="text-align:right;"><a href="<?php print $path_to_index; ?>">Read in your browser</a></p>
+          <?php endif; ?>
+
+          <!-- CENTERING TABLE // -->
+           <!--
+              The centering table keeps the content
+                tables centered in the emailBody table,
+                in case its width is set to 100%.
+            -->
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%" class="flexibleContainer">
+            <tr>
+              <td background="<?php print $path; ?>/community/eclipse_newsletter/assets/public/images/Banner.png" id="bannerTop"
+                class="flexibleContainerCell textContent">
+                <p id="date">Eclipse Newsletter - 2020.19.03</p> <br />
+
+                <!-- PAGE TITLE -->
+
+                <h2><?php print $pageTitle; ?></h2>
+
+                <!-- PAGE TITLE -->
+
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+
+      <!-- MODULE ROW // -->
+      <tr class="ImageText_TwoTier">
+        <td align="center" valign="top">
+          <!-- CENTERING TABLE // -->
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%">
+            <tr>
+              <td align="center" valign="top">
+                <!-- FLEXIBLE CONTAINER // -->
+                <table border="0" cellpadding="0" cellspacing="0"
+                  width="<?php print $email_body_width; ?>" class="flexibleContainer">
+                  <tr>
+                    <td align="center" valign="top" width="<?php print $email_body_width; ?>"
+                      class="flexibleContainerCell">
+                      <!-- CONTENT TABLE // -->
+                      <table align="Left" border="0" cellpadding="0"
+                        cellspacing="0" width="85%"
+                        class="flexibleContainer marginLeft text_TwoTier">
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <img width="200" class="float-left margin-right-20 margin-bottom-25" src="<?php print $path; ?>/community/eclipse_newsletter/2020/march/images/thabang.png" />
+                          <h3>Editor's Note</h3>
+
+                        <p>
+                          When we announced the Eclipse Cloud Development Tools Working Group last
+                          fall, our Executive Director, Mike Milinkovich,<a
+                            href="https://blogs.eclipse.org/post/mike-milinkovich/re-defining-cloud-development-tools"
+                          > noted in a blog post</a> that he hadn&rsquo;t seen an initiative with
+                          this level of potential impact since the Eclipse Foundation was created in
+                          2004.
+                        </p>
+                        <p>Less than six months later, several Eclipse projects have exciting updates to share.
+                          The progress and innovations you&rsquo;ll read about in this month&rsquo;s
+                          newsletter truly validate the value of an open source, vendor-neutral, and
+                          collaborative approach to cloud development tools.</p>
+                        <h2>Spotlight Articles</h2>
+                        <p>Our spotlight articles focus on four Eclipse projects that
+                          enable faster, easier, more flexible cloud-based development:</p>
+                        <ul>
+                          <li><a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php">Eclipse Theia</a>. Sven Efftinge reviews the key features in
+                            the March 31 Theia 1.0 release and the big-name companies that are
+                            already benefiting from Theia&rsquo;s single-source approach to desktop
+                            and cloud IDE development.</li>
+                          <li><a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/2.php">Eclipse Che</a>. Brad Micklea shares five Che features that
+                            will make you want to take another look at this Kubernetes-native
+                            developer platform.</li>
+                          <li><a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/3.php">Eclipse Dirigible</a>. Nedelcho Delchev explains why
+                            developers will want to switch to an open source, low-code and no-code
+                            cloud-based development platform.</li>
+                          <li><a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/4.php">Eclipse Open VSX</a>. Miro Sponemann and Sven Efftinge
+                            explore the need for, and benefits of, a free marketplace for Virtual
+                            Studio Code extensions.</li>
+                        </ul>
+                        <h2>Short Takes</h2>
+                        <p>
+                          We also want to point you to some recent blogs by Jonas Helming and the
+                          team at<a href="https://eclipsesource.com/"> EclipseSource</a>.
+                          They&rsquo;re very interesting, informative, and you&rsquo;ll learn about
+                          a couple of Eclipse projects you may not know about:
+                        </p>
+                        <ul>
+                          <li><a
+                            href="https://eclipsesource.com/blogs/2019/02/25/strategies-towards-web-cloud-based-tools-and-ides/"
+                          >Strategies Towards Web/Cloud-Based Tools and IDEs</a></li>
+                          <li><a
+                            href="https://eclipsesource.com/blogs/2019/12/16/introducing-emf-cloud/"
+                          >Introducing EMF.cloud</a></li>
+                          <li><a
+                            href="https://eclipsesource.com/blogs/2019/11/04/introducing-the-graphical-language-server-protocol-platform-eclipse-glsp/"
+                          >Introducing the Graphical Language Server Protocol / Platform (Eclipse
+                              GLSP)</a></li>
+                          <li><a
+                            href="https://eclipsesource.com/blogs/2019/12/06/the-eclipse-theia-ide-vs-vs-code/"
+                          >The Eclipse Theia IDE vs. VS Code</a></li>
+                          <li><a
+                            href="https://eclipsesource.com/blogs/2018/12/03/eclipse-che-vs-eclipse-theia/"
+                          >Eclipse Che vs. Eclipse Theia</a></li>
+                        </ul>
+
+                        <h2 dir="ltr">Eclipse IDE 2020-03 Release</h2>
+                        <p>
+                          The Eclipse IDE 2020-03 release is <a
+                            href="https://www.eclipse.org/eclipseide/2020-03/"
+                          >here</a> and available for download now! To learn more about the key
+                          features and improvements that make this version better than ever, explore
+                          the <a href="https://www.eclipse.org/eclipseide/2020-03/noteworthy/">2020-03
+                            New and Noteworthy</a> summary. Thank you to all the committers, contributors,
+                            projects, and Eclipse Foundation staff who made this possible!
+                        </p>
+                        <p>
+                          To make sure the Eclipse IDE keeps getting better and stays 100% free,
+                          please donate to the IDE here: <a
+                            href="https://www.eclipse.org/donate/ide/"
+                          >https://www.eclipse.org/donate/ide/</a>
+                        </p>
+                        <h2>The Latest Happenings</h2>
+                        <p>As always, be sure to check our update lists so you can stay
+                          current with the latest happenings here at the Eclipse Foundation:</p>
+                        <ul>
+                          <li><a href="#new_project_proposals">New Project Proposals</a></li>
+                          <li><a href="#new_project_releases">New Project Releases</a></li>
+                          <li><a href="#upcoming_events">Upcoming Eclipse Events</a></li>
+                        </ul>
+                        <p>
+                          Happy Reading!<br /> Thabang Mashologu
+                        </p>
+                      </td>
+                        </tr>
+                      </table> <!-- // CONTENT TABLE -->
+                    </td>
+                  </tr>
+                </table> <!-- // FLEXIBLE CONTAINER -->
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+ <!-- MODULE ROW // -->
+      <tr>
+        <td align="center" valign="top">
+          <!-- CENTERING TABLE // -->
+          <hr>
+          <h3 style="text-align: left;">Articles</h3>
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%">
+            <tr>
+              <td align="center" valign="top">
+                <!-- FLEXIBLE CONTAINER // -->
+                <table border="0" cellpadding="0" cellspacing="0"
+                  width="<?php print $email_body_width; ?>" class="flexibleContainer">
+                  <tr>
+                    <td valign="top" width="<?php print $email_body_width; ?>"
+                      class="flexibleContainerCell">
+                      <!-- CONTENT TABLE // -->
+                      <table align="Left" border="0" cellpadding="0"
+                        cellspacing="0" width="<?php print $col_2_table; ?>"
+                        class="flexibleContainer">
+                        <tr>
+                          <td valign="top" class="imageContentLast">
+                           <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php"><img
+                            src="<?php print $path; ?>/community/eclipse_newsletter/2020/march/images/1.png"
+                            width="<?php print $col_2_img; ?>" class="flexibleImage"
+                            style="max-width: <?php print $col_2_img; ?>;" /></a>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php"><h3>Eclipse Open VSX Registry Is a Free Marketplace for VS Code Extensions
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <p></p>
+                          </td>
+                        </tr>
+                      </table> <!-- // CONTENT TABLE --> <!-- CONTENT TABLE // -->
+                      <table align="Right" border="0"
+                        cellpadding="0" cellspacing="0" width="<?php print $col_2_table; ?>"
+                        class="flexibleContainer">
+                        <tr>
+                          <td valign="top" class="imageContentLast">
+                            <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/2.php"><img
+                            src="<?php print $path; ?>/community/eclipse_newsletter/2020/march/images/2.png"
+                            width="<?php print $col_2_img; ?>" class="flexibleImage"
+                            style="max-width: <?php print $col_2_img; ?>;" /></a>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                          <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/2.php"><h3>Why Eclipse Dirigible Is Ideal for Cloud-Based Development</h3></a>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <p></p>
+                          </td>
+                        </tr>
+                      </table> <!-- // CONTENT TABLE -->
+                    </td>
+                  </tr>
+                </table> <!-- // FLEXIBLE CONTAINER -->
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+
+
+   <!-- MODULE ROW // -->
+      <tr>
+        <td align="center" valign="top">
+          <!-- CENTERING TABLE // -->
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%">
+            <tr>
+              <td align="center" valign="top">
+                <!-- FLEXIBLE CONTAINER // -->
+                <table border="0" cellpadding="0" cellspacing="0"
+                  width="<?php print $email_body_width; ?>" class="flexibleContainer">
+                  <tr>
+                    <td valign="top" width="<?php print $email_body_width; ?>"
+                      class="flexibleContainerCell">
+                      <!-- CONTENT TABLE // -->
+                      <table align="Left" border="0" cellpadding="0"
+                        cellspacing="0" width="<?php print $col_2_table; ?>"
+                        class="flexibleContainer">
+                       <tr>
+                          <td valign="top" class="imageContentLast">
+                            <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/3.php"><img
+                            src="<?php print $path; ?>/community/eclipse_newsletter/2020/march/images/3.png"
+                            width="<?php print $col_2_img; ?>" class="flexibleImage"
+                            style="max-width: <?php print $col_2_img; ?>;" /></a>
+                          </td>
+                        </tr>
+                         <tr>
+                          <td valign="top" class="textContent">
+                            <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/3.php"><h3>Five Things You Might Not Know About Eclipse Che</h3></a>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <p></p>
+                          </td>
+                        </tr>
+                      </table> <!-- // CONTENT TABLE --> <!-- CONTENT TABLE // -->
+                      <table align="Right" border="0"
+                        cellpadding="0" cellspacing="0" width="<?php print $col_2_table; ?>"
+                        class="flexibleContainer">
+                        <tr>
+                          <td valign="top" class="imageContentLast">
+                            <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/4.php"><img
+                            src="<?php print $path; ?>/community/eclipse_newsletter/2020/march/images/4.png"
+                            width="<?php print $col_2_img; ?>" class="flexibleImage"
+                            style="max-width: <?php print $col_2_img; ?>;" /></a>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                          <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/4.php"><h3>Jakarta EE Quickstart Guides for Each Application Server</h3></a>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <p></p>
+                          </td>
+                        </tr>
+                      </table> <!-- // CONTENT TABLE -->
+                    </td>
+                  </tr>
+                </table> <!-- // FLEXIBLE CONTAINER -->
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+      <!-- MODULE ROW // -->
+      <tr>
+        <td align="center" valign="top">
+          <!-- CENTERING TABLE // -->
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%">
+            <tr>
+              <td align="center" valign="top">
+                <!-- FLEXIBLE CONTAINER // -->
+                <table border="0" cellpadding="0" cellspacing="0"
+                  width="<?php print $email_body_width; ?>" class="flexibleContainer">
+                  <tr>
+                    <td valign="top" width="<?php print $email_body_width; ?>"
+                      class="flexibleContainerCell">
+                      <!-- CONTENT TABLE // -->
+                      <table align="Left" border="0" cellpadding="0"
+                        cellspacing="0" width="<?php print $col_2_table; ?>"
+                        class="flexibleContainer">
+                       <tr>
+                          <td valign="top" class="imageContentLast">
+                            <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/5.php"><img
+                            src="<?php print $path; ?>/community/eclipse_newsletter/2020/march/images/5.png"
+                            width="<?php print $col_2_img; ?>" class="flexibleImage"
+                            style="max-width: <?php print $col_2_img; ?>;" /></a>
+                          </td>
+                        </tr>
+                         <tr>
+                          <td valign="top" class="textContent">
+                            <a href="https://www.eclipse.org/community/eclipse_newsletter/2020/march/5.php"><h3>News</h3></a>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <p></p>
+                          </td>
+                        </tr>
+                      </table> <!-- // CONTENT TABLE --> <!-- CONTENT TABLE // -->
+                    </td>
+                  </tr>
+                </table> <!-- // FLEXIBLE CONTAINER -->
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+      <!-- MODULE ROW // -->
+      <tr>
+        <td align="left" valign="top">
+          <!-- CENTERING TABLE // -->
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%">
+            <tr>
+              <td align="left" valign="top">
+                <!-- FLEXIBLE CONTAINER // -->
+                <table border="0" cellpadding="0" cellspacing="0"
+                  width="<?php print $email_body_width; ?>" class="flexibleContainer">
+                  <tr>
+                    <td valign="top" width="<?php print $email_body_width; ?>"
+                      class="flexibleContainerCell">
+                      <h3 id="new_project_proposals" style="margin-bottom:10px;">New Project Proposals</h3>
+                      <table align="Left" border="0" cellpadding="0"
+                        cellspacing="0" width="<?php print $col_2_table; ?>"
+                        class="flexibleContainer">
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <ul>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/proposals/eclipse-grace">Eclipse Grace</a> is a web application based on the Eclipse Memory Analyser Tooling (MAT) that provides HTTP services so that users can view the heap dump files analysis through a browser.&nbsp;</li>
+                              <li>The <a style="color:#000;" target="_blank" href="https://projects.eclipse.org/proposals/eclipse-oneofour">Eclipse OneOFour</a> project provides an implementation of the protocol IEC 60870-5-104 as a Java library with master and slave functionality over TCP connections between SCADA systems.</li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/proposals/eclipse-unified-identity">Eclipse Unified Identity</a> provides a toolkit to foster the adoption of the Unified Identity Protocol (UIP), an implementation of the Self Sovereign Identity (SSI) concept based on the IOTA Distributed LedgerTechnology (DLT).</li>
+                              <li>The <a style="color:#000;" target="_blank" href="https://projects.eclipse.org/proposals/eclipse-decentralized-marketplaces">Eclipse Decentralized Marketplaces</a> project provides a foundation for developers to build decentralized marketplaces on the IOTA network, allowing them to prototype concepts and explore new decentralized business models.</li>
+                            </ul>
+                          </td>
+                         </tr>
+                      </table> <!-- // CONTENT TABLE --> <!-- CONTENT TABLE // -->
+                    </td>
+                  </tr>
+                </table> <!-- // FLEXIBLE CONTAINER -->
+                <p>Interested in more project activity? <a href="/projects/project_activity.php">Read on!</a></p>
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+      <!-- MODULE ROW // -->
+      <tr>
+        <td align="left" valign="top">
+          <!-- CENTERING TABLE // -->
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%">
+            <tr>
+              <td align="left" valign="top">
+                <!-- FLEXIBLE CONTAINER // -->
+                <table border="0" cellpadding="0" cellspacing="0"
+                  width="<?php print $email_body_width; ?>" class="flexibleContainer">
+                  <tr>
+                    <td valign="top" width="<?php print $email_body_width; ?>"
+                      class="flexibleContainerCell">
+                      <h3 id="new_project_releases" style="margin-bottom:10px;">New Project Releases</h3>
+                      <!-- CONTENT TABLE // -->
+                      <table align="Left" border="0" cellpadding="0"
+                        cellspacing="0" width="<?php print $col_2_table; ?>"
+                        class="flexibleContainer">
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <ul>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/technology.passage">Eclipse Passage 0.8.0 Release&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/science.swtchart">Eclipse SWTChart 0.12.0 Release</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/technology.adore">Eclipse Automated Driving Open Research (ADORe) Creation</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/technology.mdmbl">Eclipse MDM|BL 5.1.0 Release</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/ee4j.jaf">Jakarta Activation 2.0 Plan</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/ee4j.ejb">Jakarta Enterprise Beans 4.0 Plan</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/modeling.emft.emf-client">Eclipse EMF Client Platform 1.24.0 Release</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/modeling.emft.emf-facet">Eclipse EMF Facet Termination&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/science.statet">Eclipse StatET: Tooling for the R language 4.1.0 Release</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/technology.reddeer">Eclipse RedDeer 2.9.0 Release&nbsp;</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/rt.vertx">Eclipse Vert.x&nbsp;&nbsp;&nbsp; 3.9.0 Release&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/technology.sumo">Eclipse SUMO 1.5.0 Release</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/iot.streamsheets">Eclipse Streamsheets&nbsp;&nbsp;&nbsp; Creation&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/modeling.tmf.xtext">Eclipse Xtext 2.21.0 Release&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/ee4j.jaxb">Jakarta XML Binding&nbsp;&nbsp;&nbsp; 2.3.3 Release</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/ee4j.jaxws">Jakarta XML Web Services 2.3.3 Release&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/ee4j.tyrus">Eclipse Tyrus 1.16 Release&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/ee4j.jaf">Jakarta Activation 1.2.2 Release&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/ee4j.jersey">Eclipse Jersey&nbsp; 2.30 Release</a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/modeling.emf.mwe">Eclipse Modeling Workflow Engine 2.11.2 Release&nbsp;&nbsp;&nbsp; </a></li>
+                              <li><a style="color:#000;" target="_blank" href="https://projects.eclipse.org/projects/iot.fog05">Eclipse fog05 0.1.0 (Prelude) Release</a></li>
+                            </ul>
+                          </td>
+                         </tr>
+                      </table> <!-- // CONTENT TABLE --> <!-- CONTENT TABLE // -->
+
+                    </td>
+                  </tr>
+                </table> <!-- // FLEXIBLE CONTAINER -->
+                <p>View all the project releases <a target="_blank" style="color:#000;" href="https://www.eclipse.org/projects/tools/reviews.php">here!</a>.</p>
+                <hr>
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+
+      <!-- MODULE ROW // -->
+      <tr>
+        <td align="center" valign="top">
+          <!-- CENTERING TABLE // -->
+          <table border="0" cellpadding="0" cellspacing="0"
+            width="100%">
+            <tr>
+              <td align="center" valign="top">
+                <!-- FLEXIBLE CONTAINER // -->
+                <table border="0" cellpadding="0" cellspacing="0"
+                  width="<?php print $email_body_width; ?>" class="flexibleContainer">
+                  <tr>
+                    <td valign="top" width="<?php print $email_body_width; ?>"
+                      class="flexibleContainerCell">
+                      <!-- CONTENT TABLE // -->
+                      <table border="0" cellpadding="0"
+                        cellspacing="0"
+                        class="flexibleContainer">
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <h3 id="upcoming_events">Upcoming Eclipse Events</h3>
+                          </td>
+                        </tr>
+                        <tr>
+                          <td valign="top" class="textContent">
+                            <p>Eclipse events are being hosted all over the world! Get involved by attending
+                            or organizing an event. <a target="_blank" style="color:#000;" href="http://events.eclipse.org/">View all events</a>.</p>
+
+                            <p>Upcoming industry events and workshops where our members will play a key role. Hope to see you there!</p>
+
+<p><a style="color:#000;" href="https://www.redhat.com/en/summit">Red Hat Summit</a><br />
+Apr 28-29 | Virtual Event</p>
+
+<p><a style="color:#000;" href="https://www.ibm.com/events/think/">IBM Think</a><br />
+May 5-7 | Virtual Event</p>
+
+<p>Are you hosting an Eclipse event? Do you know about an Eclipse event happening in your community? Email us the details <a style="color:#000;" href="mailto:events@eclipse.org?Subject=Eclipse%20Event%20Listing">events@eclipse.org</a>!</p>
+                          </td>
+                        </tr>
+                      </table> <!-- // CONTENT TABLE -->
+
+                    </td>
+                  </tr>
+                </table> <!-- // FLEXIBLE CONTAINER -->
+              </td>
+            </tr>
+          </table> <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+      <!-- // MODULE ROW -->
+
+     <!-- MODULE ROW // -->
+      <tr>
+        <td align="center" valign="top">
+          <!-- CENTERING TABLE // -->
+          <!--
+              The centering table keeps the content
+                tables centered in the emailBody table,
+                in case its width is set to 100%.
+            -->
+          <table background="<?php print $path; ?>/community/eclipse_newsletter/assets/public/images/footer.png" border="0" cellpadding="0" cellspacing="0"
+            width="100%" class="flexibleContainer" id="bannerBottom">
+            <tr class="ThreeColumns">
+              <td valign="top" class="imageContentLast"
+                style="position: relative; width: inherit;">
+                <div
+                  style="width: 160px; margin: 0 auto; margin-top: 30px;">
+                  <a href="http://www.eclipse.org/"><img
+                    src="<?php print $path; ?>/community/eclipse_newsletter/assets/public/images/Eclipse_Logo.png"
+                    width="100%" class="flexibleImage"
+                    style="height: auto; max-width: 160px;" /></a>
+                </div>
+              </td>
+            </tr>
+
+            <tr class="ThreeColumns">
+              <td valign="top" class="textContent"
+                style="position: relative; width: inherit; margin-top: 12%;">
+                <h3 id="contact_us" style="padding-top: 25px;">Contact Us</h3>
+                <a href="mailto:newsletter@eclipse.org"
+                style="text-decoration: none; color:#ffffff;">
+                <p id="emailFooter">newsletter@eclipse.org</p></a>
+              </td>
+            </tr>
+
+            <tr class="ThreeColumns">
+              <td valign="top" class="textContent followUs"
+                style="position: relative; width: inherit; margin-top: 12%;">
+                <h3 style="padding-top: 25px;">Follow Us</h3>
+                <div id="iconSocial">
+                  <a href="https://twitter.com/EclipseFdn"><img
+                    src="<?php print $path; ?>/community/eclipse_newsletter/assets/public/images/icon_Twitter.png"
+                    width="23" class="flexibleImage"
+                    style="max-width: 23px !important;" /></a> <a
+                    href="https://www.facebook.com/eclipse.org"><img
+                    src="<?php print $path; ?>/community/eclipse_newsletter/assets/public/images/icon_Facebook.png"
+                    width="23" class="flexibleImage"
+                    style="max-width: 23px !important;" /></a>  <a
+                    href="https://www.youtube.com/user/EclipseFdn"><img
+                    src="<?php print $path; ?>/community/eclipse_newsletter/assets/public/images/icon_Youtube.png"
+                    width="23" class="flexibleImage"
+                    style="max-width: 23px !important;" /></a>
+                </div>
+              </td>
+            </tr>
+          </table>
+        <!-- // CENTERING TABLE -->
+        </td>
+      </tr>
+
+    </table> <!-- // EMAIL CONTAINER -->
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/images/1.png b/eclipse_newsletter/2020/march/images/1.png
new file mode 100644
index 0000000..6d98f2b
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/1.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/1_1.png b/eclipse_newsletter/2020/march/images/1_1.png
new file mode 100644
index 0000000..3bd18a7
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/1_1.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/2.png b/eclipse_newsletter/2020/march/images/2.png
new file mode 100644
index 0000000..8e5b70c
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/2.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/2_1.png b/eclipse_newsletter/2020/march/images/2_1.png
new file mode 100644
index 0000000..eb7dcbe
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/2_1.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/2_2.png b/eclipse_newsletter/2020/march/images/2_2.png
new file mode 100644
index 0000000..f64c9e9
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/2_2.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/2_3.png b/eclipse_newsletter/2020/march/images/2_3.png
new file mode 100644
index 0000000..048f6a9
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/2_3.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/3.png b/eclipse_newsletter/2020/march/images/3.png
new file mode 100644
index 0000000..6c61699
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/3.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/4.png b/eclipse_newsletter/2020/march/images/4.png
new file mode 100644
index 0000000..0e795dc
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/4.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/4_1.png b/eclipse_newsletter/2020/march/images/4_1.png
new file mode 100644
index 0000000..79f7a4f
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/4_1.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/4_2.png b/eclipse_newsletter/2020/march/images/4_2.png
new file mode 100644
index 0000000..3dcefff
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/4_2.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/4_3.png b/eclipse_newsletter/2020/march/images/4_3.png
new file mode 100644
index 0000000..57ef1b0
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/4_3.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/4_4.png b/eclipse_newsletter/2020/march/images/4_4.png
new file mode 100644
index 0000000..2a3611d
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/4_4.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/5.png b/eclipse_newsletter/2020/march/images/5.png
new file mode 100644
index 0000000..d34063e
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/5.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/brad.png b/eclipse_newsletter/2020/march/images/brad.png
new file mode 100644
index 0000000..8ac047f
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/brad.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/miro.png b/eclipse_newsletter/2020/march/images/miro.png
new file mode 100644
index 0000000..894e631
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/miro.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/nedelcho.png b/eclipse_newsletter/2020/march/images/nedelcho.png
new file mode 100644
index 0000000..2dd7d7b
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/nedelcho.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/sven.png b/eclipse_newsletter/2020/march/images/sven.png
new file mode 100644
index 0000000..1cbc219
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/sven.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/images/thabang.png b/eclipse_newsletter/2020/march/images/thabang.png
new file mode 100644
index 0000000..19b9450
--- /dev/null
+++ b/eclipse_newsletter/2020/march/images/thabang.png
Binary files differ
diff --git a/eclipse_newsletter/2020/march/index-mailchimp.php b/eclipse_newsletter/2020/march/index-mailchimp.php
new file mode 100644
index 0000000..5163e96
--- /dev/null
+++ b/eclipse_newsletter/2020/march/index-mailchimp.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+$App = new App ();
+$path = $App->getWWWPrefix();
+$path_to_index = $path . preg_replace('/index-mailchimp.php/u', "index.php", $_SERVER['REQUEST_URI']);
+include '_variables.php';
+
+// Override default variables for mailchip
+$email_body_width = "600px";
+$col_1_img = "540px";
+$col_2_table = "260";
+$col_2_img = "260px";
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<meta name="viewport" content="width=device-width" />
+<title><?php print $pageTitle; ?></title>
+
+<?php include '../../_includes/_index-css.php'; ?>
+
+<!--
+    Outlook Conditional CSS
+      These two style blocks target Outlook 2007 & 2010 specifically, forcing
+      columns into a single vertical stack as on mobile clients. This is
+      primarily done to avoid the 'page break bug' and is optional.
+      More information here:
+http://templates.mailchimp.com/development/css/outlook-conditional-css
+-->
+<!--[if mso 12]>
+    <style type="text/css">
+      .flexibleContainer{display:block !important; width:100% !important;}
+    </style>
+<![endif]-->
+<!--[if mso 14]>
+    <style type="text/css">
+      .flexibleContainer{display:block !important; width:100% !important;}
+    </style>
+<![endif]-->
+
+</head>
+<body>
+  <center>
+  <table border="0" cellpadding="0" cellspacing="0" height="100%"
+    width="100%" id="bodyTable">
+    <tr>
+      <td align="center" valign="top" id="bodyCell">
+
+        <!-- EMAIL CONTAINER -->
+        <?php include 'content/en_index.php'; ?>
+
+      </td>
+    </tr>
+  </table>
+  </center>
+</body>
+</html>
\ No newline at end of file
diff --git a/eclipse_newsletter/2020/march/index.php b/eclipse_newsletter/2020/march/index.php
new file mode 100644
index 0000000..5e8dbf0
--- /dev/null
+++ b/eclipse_newsletter/2020/march/index.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Copyright (c) 2020 Eclipse Foundation.
+ *
+ * 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:
+ *   Eric Poirier (Eclipse Foundation) - Initial implementation
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
+  $App = new App ();
+  $Theme = $App->getThemeClass();
+  $script_name = $App->getScriptName();
+
+  //Page specific settings (i.e. $pageTitle) can be found in _variable.php
+  require_once ('_variables.php');
+  require_once ($_SERVER ['DOCUMENT_ROOT'] . "/community/eclipse_newsletter/_includes/_index.php");
\ No newline at end of file
diff --git a/eclipse_newsletter/archives.php b/eclipse_newsletter/archives.php
index 9ab7d16..ae8aead 100644
--- a/eclipse_newsletter/archives.php
+++ b/eclipse_newsletter/archives.php
@@ -37,7 +37,6 @@
 $Theme->setPageAuthor($pageAuthor);
 $Theme->setPageKeywords($pageKeywords);
 $Theme->setPageTitle($pageTitle);
-$Theme->setGoogleAnalytics('UA-34967275-3');
 
 // Paste your HTML content between the EOHTML markers!
 
diff --git a/eclipse_newsletter/assets/public/images/1.png b/eclipse_newsletter/assets/public/images/1.png
index 6badf54..63950ed 100644
--- a/eclipse_newsletter/assets/public/images/1.png
+++ b/eclipse_newsletter/assets/public/images/1.png
Binary files differ
diff --git a/eclipse_newsletter/assets/public/images/2.png b/eclipse_newsletter/assets/public/images/2.png
index 513e1e7..b8981e0 100644
--- a/eclipse_newsletter/assets/public/images/2.png
+++ b/eclipse_newsletter/assets/public/images/2.png
Binary files differ
diff --git a/eclipse_newsletter/assets/public/images/2020_february.png b/eclipse_newsletter/assets/public/images/2020_february.png
new file mode 100644
index 0000000..aece570
--- /dev/null
+++ b/eclipse_newsletter/assets/public/images/2020_february.png
Binary files differ
diff --git a/eclipse_newsletter/assets/public/images/3.png b/eclipse_newsletter/assets/public/images/3.png
index 8223f01..6510634 100644
--- a/eclipse_newsletter/assets/public/images/3.png
+++ b/eclipse_newsletter/assets/public/images/3.png
Binary files differ
diff --git a/eclipse_newsletter/assets/public/images/4.png b/eclipse_newsletter/assets/public/images/4.png
index 4c366ee..9c80f7f 100644
--- a/eclipse_newsletter/assets/public/images/4.png
+++ b/eclipse_newsletter/assets/public/images/4.png
Binary files differ
diff --git a/eclipse_newsletter/content/en_archives.php b/eclipse_newsletter/content/en_archives.php
index b680516..d053ddc 100644
--- a/eclipse_newsletter/content/en_archives.php
+++ b/eclipse_newsletter/content/en_archives.php
@@ -14,15 +14,57 @@
 
 <h1 class="article-title"><?php print $pageTitle; ?></h1>
 <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
-<div class="panel panel-default">
+  <div class="panel panel-default">
+    <div class="panel-heading" role="tab" id="headingTen">
+      <h4 class="panel-title">
+        <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTen" aria-expanded="true" aria-controls="collapseTen">
+        2020
+        </a>
+      </h4>
+    </div>
+    <div id="collapseTen" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingTen">
+      <div class="panel-body">
+        <div class="row">
+          <div class="col-sm-12">
+            <div class="col-md-4 col-sm-6">
+              <span class="newsletter-archive-icons">
+              <i class="fa fa-calendar-o" aria-hidden="true"></i>
+              <span class="newsletter-archive-month">Feb</span>
+              </span>
+            </div>
+            <div class="col-md-20 col-sm-18">
+              <p class="margin-top-10"><a
+                href="http://www.eclipse.org/community/eclipse_newsletter/2020/february/"
+                target="_blank">Jakarta EE: The Next Phase of Evolution</a></p>
+            </div>
+          </div>
+          <div class="col-sm-12">
+            <div class="col-md-4 col-sm-6">
+              <span class="newsletter-archive-icons">
+              <i class="fa fa-calendar-o" aria-hidden="true"></i>
+              <span class="newsletter-archive-month">Jan</span>
+              </span>
+            </div>
+            <div class="col-md-20 col-sm-18">
+              <p class="margin-top-10"><a
+                href="http://www.eclipse.org/community/eclipse_newsletter/2020/january/"
+                target="_blank">Projects to Watch for in 2020</a></p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div class="panel panel-default">
     <div class="panel-heading" role="tab" id="headingNine">
       <h4 class="panel-title">
-        <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseNine" aria-expanded="true" aria-controls="collapseNine">
+        <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseNine" aria-expanded="false" aria-controls="collapseNine">
         2019
         </a>
       </h4>
     </div>
-    <div id="collapseNine" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingNine">
+    <div id="collapseNine" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingNine">
       <div class="panel-body">
         <div class="row">
           <div class="col-sm-12">
@@ -184,11 +226,12 @@
                 target="_blank">2019 in Focus</a></p>
             </div>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
- <div class="panel panel-default">
+
+  <div class="panel panel-default">
     <div class="panel-heading" role="tab" id="headingEight">
       <h4 class="panel-title">
         <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseEight" aria-expanded="false" aria-controls="collapseEight">
diff --git a/eclipse_newsletter/newsletter-items.xml b/eclipse_newsletter/newsletter-items.xml
index b021c79..bab1f18 100644
--- a/eclipse_newsletter/newsletter-items.xml
+++ b/eclipse_newsletter/newsletter-items.xml
@@ -9,12 +9,12 @@
 	</sponsors_home_page>
 
 	<featured_newsletters_title>
-		<title>Jakarta EE: The Next Phase of Evolution</title>
+		<title>A New Era in Cloud Development Tools</title>
 	</featured_newsletters_title>
 
 	<!-- Featured Newsletter Read More Button -->
 	<featured_newsletters_readmore>
-		<link>/community/eclipse_newsletter/2020/february</link>
+		<link>/community/eclipse_newsletter/2020/march</link>
 		<title>Read it now</title>
 	</featured_newsletters_readmore>
 
@@ -22,28 +22,34 @@
 	<!-- Featured Newsletter Articles -->
 	<featured_newsletters>
 		<item>
-			<title>Modernizing Java EE Apps to Cloud Native With MicroProfile, Jakarta EE, and Open Liberty</title>
-			<link>/community/eclipse_newsletter/2020/february/1.php</link>
+			<title>Eclipse Open VSX Registry Is a Free Marketplace for VS Code Extensions</title>
+			<link>/community/eclipse_newsletter/2020/march/1.php</link>
 			<description></description>
 			<imageurl>assets/public/images/1.png</imageurl>
 		</item>
 		<item>
-			<title>The Road to Jakarta EE Compatibility</title>
-			<link>/community/eclipse_newsletter/2020/february/2.php</link>
+			<title>Why Eclipse Dirigible Is Ideal for Cloud-Based Development</title>
+			<link>/community/eclipse_newsletter/2020/march/2.php</link>
 			<description></description>
 			<imageurl>assets/public/images/2.png</imageurl>
 		</item>
 		<item>
-			<title>Jakarta EE: Servlets and Tomcat — 23 Years and Counting</title>
-			<link>/community/eclipse_newsletter/2020/february/3.php</link>
+			<title>Five Things You Might Not Know About Eclipse Che</title>
+			<link>/community/eclipse_newsletter/2020/march/3.php</link>
 			<description></description>
 			<imageurl>assets/public/images/3.png</imageurl>
 		</item>
 		<item>
-      <title>Jakarta EE Quickstart Guides for Each Application Server</title>
-      <link>/community/eclipse_newsletter/2020/february/4.php</link>
+      <title>Eclipse Theia Is Ready for Primetime</title>
+      <link>/community/eclipse_newsletter/2020/march/4.php</link>
       <description></description>
-      <imageurl>assets/public/images/3.png</imageurl>
+      <imageurl>assets/public/images/4.png</imageurl>
+    </item>
+    <item>
+      <title>Newsletter News</title>
+      <link>/community/eclipse_newsletter/2020/march/5.php</link>
+      <description></description>
+      <imageurl>assets/public/images/5.png</imageurl>
     </item>
 	</featured_newsletters>
 
@@ -51,6 +57,12 @@
 	<!-- Recent Newsletter Articles -->
 	<recent_newsletters>
     <item>
+      <title>Jakarta EE: The Next Phase of Evolution</title>
+      <link>/community/eclipse_newsletter/2020/february/</link>
+      <description>With the January 16 announcement that the Jakarta EE 9 release plan is approved, the year is off to a great start for the Jakarta EE community and everyone at the Eclipse Foundation.</description>
+      <imageurl>assets/public/images/2020_february.png</imageurl>
+    </item>
+    <item>
       <title>Projects to Watch for in 2020</title>
       <link>/community/eclipse_newsletter/2020/january/</link>
       <description>Welcome to 2020 and our first community newsletter of the new year and the new decade!</description>
@@ -68,11 +80,5 @@
       <description>It’s been just two months since the community delivered on its promise to release Jakarta EE 8, but a lot has happened since then.</description>
       <imageurl>assets/public/images/jakarta_ee_takes_off.png</imageurl>
     </item>
-    <item>
-      <title>Giving IoT an Edge</title>
-      <link>/community/eclipse_newsletter/2019/october/</link>
-      <description>In this month’s newsletter, we’re focusing on Eclipse IoT and the exciting advances our community is making in IoT and edge technologies.</description>
-      <imageurl>assets/public/images/giving_iot_an_edge.png</imageurl>
-    </item>
 	</recent_newsletters>
 </items>
\ No newline at end of file
