diff --git a/_projectCommon.php b/_projectCommon.php
deleted file mode 100644
index 0fe02c9..0000000
--- a/_projectCommon.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/*******************************************************************************
- * Copyright (c) 2014 Eclipse Foundation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Christopher Guindon (Eclipse Foundation) - Initial implementation
- *******************************************************************************/
-
-  # Set the theme for your project's web pages.
-  # See the Committer Tools "Phoenix" secion in the How Do I? for list of themes
-  # https://dev.eclipse.org/committers/
-  $theme = "solstice";
-
-  # Define your project-wide Nav bars here.
-  # Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank).
-  $Nav->addNavSeparator("Solstice",   "/eclipse.org-common/themes/solstice/docs/");
-  $Nav->addCustomNav("Documentation", "/eclipse.org-common/themes/solstice/docs/", "_self", NULL);
-  $Nav->addCustomNav("Source code", "http://git.eclipse.org/c/www.eclipse.org/eclipse.org-common.git/tree/themes/solstice/", "_self", NULL);
-  $Nav->addCustomNav("Using Phoenix", "http://wiki.eclipse.org/Using_Phoenix", "_self", NULL);
diff --git a/content/en_index.php b/content/en_index.php
deleted file mode 100644
index f4e6422..0000000
--- a/content/en_index.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/*******************************************************************************
- * Copyright (c) 2014 Eclipse Foundation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Christopher Guindon (Eclipse Foundation) - Initial implementation
- *******************************************************************************/
-?>
-
-<!-- Main content area -->
-<div id="midcolumn">
-  <h1><?php print $pageTitle;?></h1>
-  <p><a href="solstice-starterkit.zip" class="btn btn-warning">Download Starterkit</a></p>
-</div>
-<!-- ./end  #midcolumn -->
-
-<!-- Start of the right column -->
-<div id="rightcolumn">
-  <div class="sideitem">
-    <h2>Related Links</h2>
-    <ul>
-      <li><a target="_self" href="/eclipse.org-common/themes/solstice/docs/">Documentation</a></li>
-    </ul>
-  </div>
-</div>
-<!-- ./end  #rightcolumn -->
diff --git a/description.html b/description.html
deleted file mode 100644
index 55ccfca..0000000
--- a/description.html
+++ /dev/null
@@ -1 +0,0 @@
-This project was just provisioned, so there isn't much to see here. You can find links to the propsal on this page.  Stay tuned for great things! 
\ No newline at end of file
diff --git a/favicon.png b/favicon.png
new file mode 100644
index 0000000..92d3dc6
--- /dev/null
+++ b/favicon.png
Binary files differ
diff --git a/index.css b/index.css
new file mode 100644
index 0000000..8db3986
--- /dev/null
+++ b/index.css
@@ -0,0 +1,33 @@
+html { height:100%; padding: 0; margin: 0; }
+body {
+    height:100%; padding: 0; margin: 0;
+    font-family: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
+    font-size: 16px;
+    line-height: 1.42857143;
+    color: #ffffff;
+    background-color: #007BAF
+}
+
+a {
+    color: #ffffff;
+}
+
+.logo {
+    width: 248px;
+    height: 69px;
+}
+
+#header-container {
+    padding: 40px;
+    background-color: #ffffff;
+    border-bottom: 10px solid #005D89;
+}
+
+#header-content {
+    padding-left: 85px;
+    padding-right: 85px;
+}
+
+#header-logo {
+    padding-left: 50px;
+}
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..05b91eb
--- /dev/null
+++ b/index.html
@@ -0,0 +1,84 @@
+<html>
+<head>
+<link href="index.css" rel="stylesheet" type="text/css">
+<style type="text/css">@font-face { font-family: "ibm-plex-sans"; src: url("https://1.www.s81c.com/common/fonts/plex/v1/ibmplexsans-regular.woff2") format("woff2"), url("https://1.www.s81c.com/common/fonts/plex/v1/ibmplexsans-regular.woff") format("woff"); font-weight: 400; font-style: normal; }#teconsent { position: fixed; display: block; height: 40px; background-color: #ffffff; z-index: 999; bottom: 0; right: 0; margin: 0; padding: 0 16px; line-height: 40px; vertical-align: middle } #teconsent a { font-family: ibm-plex-sans; font-size: 12pt; color: #3d3d3d; text-decoration: none }</style>
+<link rel="shortcut icon" href="favicon.png" type="image/png">
+<meta name="description" content="Eclipse Codewind">
+<meta name="keywords" content="Codewind, docker, container, devops, applications, development, iteration, microservices, cloud, services, rapid, integrated"/>
+<title>Eclipse Codewind</title>
+
+<!-- Global site tag (gtag.js) - Google Analytics -->
+<script async src="https://www.googletagmanager.com/gtag/js?id=UA-112407000-2"></script>
+<script>
+  window.dataLayer = window.dataLayer || [];
+  function gtag(){dataLayer.push(arguments);}
+  gtag('js', new Date());
+
+  gtag('config', 'UA-112407000-2');
+</script>
+
+</head>
+<body>
+    <header id="header-container">
+        <div id="header-logo">
+            <img class="logo" src="logo.png"/>
+        </div>
+    </header>
+    <div id="header-content">
+
+    <h2>Under Construction:</h2>
+    <p>We are in the processing of unpacking our bags and making Eclipse our new home. Expect a more detailed project page to follow soon. Additional details can be found at our Eclipse Project Management Infrastructure page: <a href="https://projects.eclipse.org/projects/ecd.codewind" target="_blank">https://projects.eclipse.org/projects/ecd.codewind</a> </p>
+
+    <h2>Background:</h2> 
+    <p>Traditionally, applications have been created on the developer's desktop, debugged locally, and then built and deployed through an automated devops pipeline. There are often numerous differences between these environments, including operating system, runtime or package versions, and environment.</p>
+    <p>The advent of Docker allowed the runtime to be packaged and moved between environments with repeatability, and Kubernetes has emerged as the deployment and management system of choice for large-scale Docker deployments. However, development is still usually done on a local environment without using these technologies and taking advatage of this new deployment platform.</p>
+    <p>Likewise, the Eclipse Foundation hosts both a classic desktop IDE (Eclipse platform) and a cloud-hosted IDE on Kubernetes (Eclipse Che), but no tools that help develop, debug, or deploy applications for Kubernetes, nor consistency in creating cloud-native applications regardless of your IDE.</p>
+
+
+    <h2>Scope:</h2>
+    <p>The goal of Eclipse Codewind is to provide tools to help building high-quality cloud-native applications for Kubernetes, regardless of which IDE or language you use. This includes the capability to rapidly create an application from template or sample, support for launching, updating, testing, and debugging in Docker containers on the desktop, and support for the same directly on Kubernetes regardless of where the source is. The tools will also provide help to move an existing application to Docker and Kuberenetes, and validation to ensure that applications follow best practises.</p>
+    
+    <p>To support this, Codewind will include plugins to the Eclipse platform and Eclipse Che, and a VisualStudio Code extension. A common library will be used by all of these tools to provide the function (e.g. creating, testing, and deploying applications) in a consistent way across the IDEs.</p>
+    
+    <h2>Description:</h2>
+    Eclipse Codewind will start by providing an IDE-agnostic library for tools required for cloud application development:
+    <ul>
+    <li>Generating projects from templates </li>
+    <li>Creating a template or example from a current project</li>
+    <li>On the desktop: starting projects in Docker</li>
+    <li>Deploying applications to Kubernetes</li>
+    <li>Incremental update of applications running in Docker or Kubernetes</li>
+    <li>Debug and other support for these deployed projects</li>
+    <li>Application performance testing tools</li>
+    <li>Codewind will also provide Eclipse platform and Eclipse Che plugins, and a VisualStudio extension (and possibly others in the future) to allow users of these popular IDEs to create and deploy cloud-native applications in a consistent way from directly within their IDE.</li>
+    </ul>
+    
+    <h2>Why Here?: </h2>
+    The Eclipse Foundation has a strong history and community around building vendor-agnostic developer tools. Eclipse also hosts two of the main IDEs which we plan to extend, making it a natural fit for Codewind.
+    
+    <h2>Licenses: </h2>
+    <a href="https://projects.eclipse.org/license/epl-2.0" target="_blank">Eclipse Public License 2.0</a>
+
+    <h2>Legal Issues: </h2>
+    The initial contribution that will form the basis for Codewind will come from the IBM Microclimate project (http://microclimate.dev). The Eclipse platform and VisualStudio Code plugins are already open source and licensed under EPL 2. The common library that these depend on is not open source yet, but it has been legally cleared recently and will be fully donated by IBM under EPL 2. We do not expect any legal issues bringing it to Eclipse.
+    
+    <h2>Project Scheduling: </h2>
+    <p>Tech preview & beta: 3Q2019</p>
+    
+    <p>First release: 4Q2019</p>
+    
+    <h2>Future Work: </h2>
+    Although the major peices will be in place after the initial contribution, we do not expect Codewind to be 'complete' at this point. Some of the main areas that need to be investigated:
+    
+    <ul>
+    <li>Improving incremental development support for more languages</li>
+    <li>Support in other IDEs or development tools</li>
+    <li>Tools for helping with automated testing, and other aspects of app development that may change in cloud</li>
+    <li>Adoption of a vendor-neutral Kubernetes dev CLI</li>
+    <li>IBM will continue to invest in evolving Codewind and addressing these concerns, but welcomes additional participation in these areas or others.</li>
+    </ul>
+
+    </div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/index_for_custom_site.php b/index_for_custom_site.php
deleted file mode 100644
index a3739bb..0000000
--- a/index_for_custom_site.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/*******************************************************************************
- * Copyright (c) 2014 Eclipse Foundation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Christopher Guindon (Eclipse Foundation) - Initial implementation
- *******************************************************************************/
-
-  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
-  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
-  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
-
-  $App   = new App();
-  $Nav  = new Nav();
-  $Menu   = new Menu();
-
-  # Shared variables/configs for all pages of your website.
-  require_once('_projectCommon.php');
-
-  # Begin: page-specific settings.  Change these.
-  $pageTitle = "Starterkit Template";
-  $pageKeywords = "Add maximal 20 keywords and seperate them from each other by a comma en a space.";
-  $pageAuthor = "Christopher Guindon";
-
-  # Initialize custom solstice $variables.
-  $variables = array();
-
-  # Add classes to <body>. (String)
-  $variables['body_classes'] = '';
-
-  # Insert custom HTML in the breadcrumb region. (String)
-  $variables['breadcrumbs_html'] = "";
-
-  # Hide the breadcrumbs. (Bool)
-  $variables['hide_breadcrumbs'] = FALSE;
-
-  # Insert HTML before the left nav. (String)
-  $variables['leftnav_html'] = '';
-
-  # Update the main container class (String)
-  $variables['main_container_classes'] = 'container';
-
-  # Insert HTML after opening the main content container, before the left sidebar. (String)
-  $variables['main_container_html'] = '';
-
-  # Set Solstice theme variables. (Array)
-  $App->setThemeVariables($variables);
-
-  # Place your html content in a file called content/en_pagename.php
-  ob_start();
-  include("content/en_" . $App->getScriptName());
-  $html = ob_get_clean();
-
-  # Insert extra html before closing </head> tag.
-  //$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="style.css" media="screen" />');
-
-  # Insert script/html before closing </body> tag.
-  //$App->AddExtraJSFooter('<script type="text/javascript" src="script.min.js"></script>');
-
-  # Generate the web page
-  $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-
diff --git a/logo.png b/logo.png
new file mode 100644
index 0000000..e0f11f2
--- /dev/null
+++ b/logo.png
Binary files differ
