You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ka...@apache.org on 2019/10/26 05:20:55 UTC

[airflow-site] branch aip-11 updated: Add blogpost page and markdown styles (#83)

This is an automated email from the ASF dual-hosted git repository.

kamilbregula pushed a commit to branch aip-11
in repository https://gitbox.apache.org/repos/asf/airflow-site.git


The following commit(s) were added to refs/heads/aip-11 by this push:
     new 60b35fd  Add blogpost page and markdown styles (#83)
60b35fd is described below

commit 60b35fd3778fd5770a547850c1f11f07d376f36a
Author: Kamil Gabryjelski <ka...@gmail.com>
AuthorDate: Sat Oct 26 07:20:49 2019 +0200

    Add blogpost page and markdown styles (#83)
---
 .../assets/scss/{_blog.scss => _blog-page.scss}    | 57 +++++++++++++++++++---
 .../{_paragraph.scss => _markdown-content.scss}    | 25 ++++++++--
 landing-pages/site/assets/scss/main-custom.scss    |  6 +--
 landing-pages/site/config.toml                     | 28 +++++++----
 .../Its-a-breeze-to-develop-apache-airflow.html    |  8 ---
 .../blog/Its-a-breeze-to-develop-apache-airflow.md | 38 +++++++++++++++
 .../Its-a-breeze-to-develop-apache-airflow2.html   |  8 ---
 .../Its-a-breeze-to-develop-apache-airflow2.md     | 38 +++++++++++++++
 .../Its-a-breeze-to-develop-apache-airflow3.html   |  8 ---
 .../Its-a-breeze-to-develop-apache-airflow3.md     | 38 +++++++++++++++
 .../Its-a-breeze-to-develop-apache-airflow4.html   |  8 ---
 .../Its-a-breeze-to-develop-apache-airflow4.md     | 38 +++++++++++++++
 .../Its-a-breeze-to-develop-apache-airflow5.html   |  8 ---
 .../Its-a-breeze-to-develop-apache-airflow5.md     | 38 +++++++++++++++
 .../content/en/case-studies/example-case1.html     | 27 ----------
 .../site/content/en/case-studies/example-case1.md  | 23 +++++++++
 .../content/en/case-studies/example-case2.html     | 27 ----------
 .../site/content/en/case-studies/example-case2.md  | 23 +++++++++
 .../content/en/case-studies/example-case3.html     | 27 ----------
 .../site/content/en/case-studies/example-case3.md  | 23 +++++++++
 .../content/en/case-studies/example-case4.html     | 27 ----------
 .../site/content/en/case-studies/example-case4.md  | 23 +++++++++
 .../content/en/case-studies/example-case5.html     | 27 ----------
 .../site/content/en/case-studies/example-case5.md  | 23 +++++++++
 .../content/en/case-studies/example-case6.html     | 27 ----------
 .../site/content/en/case-studies/example-case6.md  | 23 +++++++++
 .../layouts/{case-studies => blog}/content.html    | 15 ++++--
 .../paragraph.html => blog/single.html}            |  8 ++-
 .../site/layouts/case-studies/content.html         |  7 ++-
 .../content.html => partials/blog-pager.html}      | 20 ++++++--
 30 files changed, 459 insertions(+), 237 deletions(-)

diff --git a/landing-pages/site/assets/scss/_blog.scss b/landing-pages/site/assets/scss/_blog-page.scss
similarity index 50%
rename from landing-pages/site/assets/scss/_blog.scss
rename to landing-pages/site/assets/scss/_blog-page.scss
index 696d145..0c6f581 100644
--- a/landing-pages/site/assets/scss/_blog.scss
+++ b/landing-pages/site/assets/scss/_blog-page.scss
@@ -17,14 +17,59 @@
  * under the License.
  */
 
+@import "colors";
+
 .tag {
-  // TODO(kgabryje): when using @extend .bodytext__medium--cerulean-blue, scss builds stylesheet but throws errors
-  font-family: "Roboto", sans-serif;
-  font-weight: 400;
-  font-size: 16px;
-  line-height: 1.63;
-  color: #017cee;
+  @extend .bodytext__medium--cerulean-blue;
   background-color: #d9ebfc; // cerulean-blue + opacity 0.15
   padding: 1px 30px;
+  margin-right: 10px;
   border-radius: 5px;
 }
+
+.blogpost-content {
+  max-width: 790px;
+  margin: 0 auto;
+
+  &--header-wrapper {
+    border-bottom: solid 1px map-get($colors, very-light-pink);
+  }
+
+  &__metadata {
+    &--container {
+      display: flex;
+      flex-wrap: wrap;
+      justify-content: space-between;
+      margin-bottom: 30px;
+    }
+
+    &--title {
+      @extend .header__small--greyish-brown;
+      margin-bottom: 20px;
+    }
+
+    &--author {
+      @extend .bodytext__medium--cerulean-blue;
+      font-weight: 500;
+      margin-bottom: 30px;
+    }
+
+    &--description {
+      @extend .subtitle__large--brownish-grey;
+      font-weight: normal;
+      margin-bottom: 30px;
+    }
+  }
+}
+
+.blog-pager {
+  margin-top: 60px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+
+  .pager {
+    margin-top: 40px;
+    justify-content: center
+  }
+}
diff --git a/landing-pages/site/assets/scss/_paragraph.scss b/landing-pages/site/assets/scss/_markdown-content.scss
similarity index 69%
rename from landing-pages/site/assets/scss/_paragraph.scss
rename to landing-pages/site/assets/scss/_markdown-content.scss
index 70717d2..5d9bd32 100644
--- a/landing-pages/site/assets/scss/_paragraph.scss
+++ b/landing-pages/site/assets/scss/_markdown-content.scss
@@ -17,14 +17,31 @@
  * under the License.
  */
 
-.paragraph {
-  &--header {
+@import "colors";
+
+.markdown-content {
+  h1, h2, h3, h4, h5 {
     @extend .subtitle__large--greyish-brown;
     margin-top: 40px;
+    margin-bottom: 20px;
   }
 
-  &--text {
+  p, span {
     @extend .bodytext__medium--brownish-grey;
-    margin-top: 20px;
+    margin-bottom: 30px;
+  }
+
+  pre {
+    margin: 40px 0;
+    padding: 16px 20px;
+    background-color: transparent !important;
+    border: solid 1px map-get($colors, very-light-pink);
+    border-radius: 5px;
+    width: fit-content;
+    max-width: 100%;
+
+    span {
+      @extend .monotext--brownish-grey;
+    }
   }
 }
diff --git a/landing-pages/site/assets/scss/main-custom.scss b/landing-pages/site/assets/scss/main-custom.scss
index f39eef6..bcf14f7 100644
--- a/landing-pages/site/assets/scss/main-custom.scss
+++ b/landing-pages/site/assets/scss/main-custom.scss
@@ -18,7 +18,7 @@
  */
 
 @import url('https://fonts.googleapis.com/css?family=Rubik:500&display=swap');
-@import url('https://fonts.googleapis.com/css?family=Roboto:400,500,700&display=swap');
+@import url('https://fonts.googleapis.com/css?family=Roboto:400,400i,500,700&display=swap');
 @import url('https://fonts.googleapis.com/css?family=Roboto+Mono&display=swap');
 
 @import "typography";
@@ -30,9 +30,9 @@
 @import "quote";
 @import "pager";
 @import "case-study";
-@import "paragraph";
+@import "markdown-content";
 @import "base-layout";
 @import "feature";
 @import "text-with-icon";
 @import "video";
-@import "blog";
+@import "blog-page";
diff --git a/landing-pages/site/config.toml b/landing-pages/site/config.toml
index 60a6dfe..557b916 100644
--- a/landing-pages/site/config.toml
+++ b/landing-pages/site/config.toml
@@ -33,16 +33,7 @@ defaultContentLanguageInSubdir = false
 # Useful when translating.
 enableMissingTranslationPlaceholders = true
 
-disableKinds = []
-
-# Highlighting config
-pygmentsCodeFences = true
-pygmentsUseClasses = false
-# Use the new Chroma Go highlighter in Hugo.
-pygmentsUseClassic = false
-#pygmentsOptions = "linenos=table"
-# See https://help.farbox.com/pygments.html
-pygmentsStyle = "tango"
+pygmentsStyle = "vs"
 
 ## Configuration for BlackFriday markdown parser: https://github.com/russross/blackfriday
 [blackfriday]
@@ -160,3 +151,20 @@ no = 'Sorry to hear that. Please <a href="https://github.com/USERNAME/REPOSITORY
     url = "https://example.org/mail"
     icon = "fa fa-envelope"
     desc = "Discuss development issues around the project"
+
+[related]
+threshold = 50.0
+includeNewer = true
+toLower = false
+
+  [[related.indices]]
+  name = "keywords"
+  weight = 100.0
+
+  [[related.indices]]
+  name = "tags"
+  weight = 80.0
+
+  [[related.indices]]
+  name = "author"
+  weight = 50.0
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow.html b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow.html
deleted file mode 100644
index fea2e72..0000000
--- a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: "It's a breeze to develop Apache Airflow"
-linkTitle: "It's a breeze to develop Apache Airflow"
-author: "Jarek Potiuk"
-description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
-tags: ["Community"]
-date: 2019-09-24
----
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow.md b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow.md
new file mode 100644
index 0000000..cf7c326
--- /dev/null
+++ b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow.md
@@ -0,0 +1,38 @@
+---
+title: "It's a breeze to develop Apache Airflow"
+linkTitle: "It's a breeze to develop Apache Airflow"
+author: "Jarek Potiuk"
+description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
+tags: ["Community"]
+date: 2019-09-24
+---
+
+##### My journey to developer productivity
+It started at the beginning of my career with my older and more experienced colleague—one of the first “real” software engineers I had interacted with by then. I learned a lot from him. I specifically remember him saying: “When I develop code, I spend the first half of my time on developing tools to make my work 10x faster—that’s the key reason why I always deliver on time.” His words stuck with me. I’ve been a part of many successful projects in my career but they pretty much always loo [...]
+
+As an All-Stack-Engineer, I believe the best use of my time is to put my efforts not only to the code that I deliver but mainly to develop all the tools, DevOps setup, continuous integration, automated code analysis and everything essential for the developers. The best-case scenario is when your developers can use them independently and you don’t need to worry about them.
+
+{{< highlight js >}}
+// Synchronize user data and set up
+var currentUser = new Talk.User({
+    id: 79302,                      // user id
+    name: "George Looney",          // full name
+    email: "george@looney.net"      // for offline email fallback
+});
+var session = new Talk.Session({
+    appId: "9352938974",            // your TalkJS account id
+    me: currentUser                 // make George the active user
+});
+{{< /highlight >}}
+
+##### What do I mean by productivity
+How do you define productivity though? And how can you measure it? I have a possibly surprising answer—it’s not about a number of lines of code you’ve written or features you’ve delivered. Productivity is something rather different. It’s all about focusing on the present and the future rather than the past. Productivity is more of a bet that in the future your team will be able to deliver more at the same time. It has way more to do with your perceived speed and enjoying work as a develo [...]
+
+I could think of a number of projects where I followed that philosophy of work and where it boosted the productivity of my team. Today, however, I’d like to focus on Apache Airflow.
+
+##### The Apache Airflow project’s setup
+Initially, we started contributing to this fantastic open-source project with a team of three which then grew to five. When we kicked it off a year ago, I realized pretty soon where the biggest bottlenecks and areas for improvement in terms of productivity were. Even with the help of our client, who provided us with a “homegrown” development environment it took us literally days to set it up and learn some basics.
+
+Apache Airflow is a thoroughly tested project—it has almost 4,000 tests with around 80% coverage and varying complexity (from simple unit tests to end-to-end system tests). Airflow follows a modern software project philosophy: every single Pull Request can only be merged if all the tests pass. But that creates another problem—having to run all the tests for all the backends (there are 3 of them) and different python versions. At the time of starting the project we still supported 2.7, 3. [...]
+
+This is hardly acceptable to any developer. Usually you can work on several issues in parallel. Such waiting is not the worst thing that can happen, but there are always costs of context-switching, distractions, getting out of the flow and the good old “I already forgot what I was doing” phase by the time the build is completed. It’s even worse when you want to make a small Pull Request. For example, when you find a bug and have just one line of fix for it. You submit the Pull Request an [...]
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow2.html b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow2.html
deleted file mode 100644
index d8bb438..0000000
--- a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow2.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: "It's a breeze to develop Apache Airflow"
-linkTitle: "It's a breeze to develop Apache Airflow"
-author: "Jarek Potiuk"
-description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
-tags: ["Development"]
-date: 2019-09-24
----
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow2.md b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow2.md
new file mode 100644
index 0000000..f1984c3
--- /dev/null
+++ b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow2.md
@@ -0,0 +1,38 @@
+---
+title: "It's a breeze to develop Apache Airflow"
+linkTitle: "It's a breeze to develop Apache Airflow"
+author: "Jarek Potiuk"
+description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
+tags: ["Development"]
+date: 2019-09-24
+---
+
+##### My journey to developer productivity
+It started at the beginning of my career with my older and more experienced colleague—one of the first “real” software engineers I had interacted with by then. I learned a lot from him. I specifically remember him saying: “When I develop code, I spend the first half of my time on developing tools to make my work 10x faster—that’s the key reason why I always deliver on time.” His words stuck with me. I’ve been a part of many successful projects in my career but they pretty much always loo [...]
+
+As an All-Stack-Engineer, I believe the best use of my time is to put my efforts not only to the code that I deliver but mainly to develop all the tools, DevOps setup, continuous integration, automated code analysis and everything essential for the developers. The best-case scenario is when your developers can use them independently and you don’t need to worry about them.
+
+{{< highlight js >}}
+// Synchronize user data and set up
+var currentUser = new Talk.User({
+    id: 79302,                      // user id
+    name: "George Looney",          // full name
+    email: "george@looney.net"      // for offline email fallback
+});
+var session = new Talk.Session({
+    appId: "9352938974",            // your TalkJS account id
+    me: currentUser                 // make George the active user
+});
+{{< /highlight >}}
+
+##### What do I mean by productivity
+How do you define productivity though? And how can you measure it? I have a possibly surprising answer—it’s not about a number of lines of code you’ve written or features you’ve delivered. Productivity is something rather different. It’s all about focusing on the present and the future rather than the past. Productivity is more of a bet that in the future your team will be able to deliver more at the same time. It has way more to do with your perceived speed and enjoying work as a develo [...]
+
+I could think of a number of projects where I followed that philosophy of work and where it boosted the productivity of my team. Today, however, I’d like to focus on Apache Airflow.
+
+##### The Apache Airflow project’s setup
+Initially, we started contributing to this fantastic open-source project with a team of three which then grew to five. When we kicked it off a year ago, I realized pretty soon where the biggest bottlenecks and areas for improvement in terms of productivity were. Even with the help of our client, who provided us with a “homegrown” development environment it took us literally days to set it up and learn some basics.
+
+Apache Airflow is a thoroughly tested project—it has almost 4,000 tests with around 80% coverage and varying complexity (from simple unit tests to end-to-end system tests). Airflow follows a modern software project philosophy: every single Pull Request can only be merged if all the tests pass. But that creates another problem—having to run all the tests for all the backends (there are 3 of them) and different python versions. At the time of starting the project we still supported 2.7, 3. [...]
+
+This is hardly acceptable to any developer. Usually you can work on several issues in parallel. Such waiting is not the worst thing that can happen, but there are always costs of context-switching, distractions, getting out of the flow and the good old “I already forgot what I was doing” phase by the time the build is completed. It’s even worse when you want to make a small Pull Request. For example, when you find a bug and have just one line of fix for it. You submit the Pull Request an [...]
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow3.html b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow3.html
deleted file mode 100644
index a4970ab..0000000
--- a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow3.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: "It's a breeze to develop Apache Airflow"
-linkTitle: "It's a breeze to develop Apache Airflow"
-author: "Jarek Potiuk"
-description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
-tags: ["Python"]
-date: 2019-09-24
----
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow3.md b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow3.md
new file mode 100644
index 0000000..2e49886
--- /dev/null
+++ b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow3.md
@@ -0,0 +1,38 @@
+---
+title: "It's a breeze to develop Apache Airflow"
+linkTitle: "It's a breeze to develop Apache Airflow"
+author: "Jarek Potiuk"
+description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
+tags: ["Python"]
+date: 2019-09-24
+---
+
+##### My journey to developer productivity
+It started at the beginning of my career with my older and more experienced colleague—one of the first “real” software engineers I had interacted with by then. I learned a lot from him. I specifically remember him saying: “When I develop code, I spend the first half of my time on developing tools to make my work 10x faster—that’s the key reason why I always deliver on time.” His words stuck with me. I’ve been a part of many successful projects in my career but they pretty much always loo [...]
+
+As an All-Stack-Engineer, I believe the best use of my time is to put my efforts not only to the code that I deliver but mainly to develop all the tools, DevOps setup, continuous integration, automated code analysis and everything essential for the developers. The best-case scenario is when your developers can use them independently and you don’t need to worry about them.
+
+{{< highlight js >}}
+// Synchronize user data and set up
+var currentUser = new Talk.User({
+    id: 79302,                      // user id
+    name: "George Looney",          // full name
+    email: "george@looney.net"      // for offline email fallback
+});
+var session = new Talk.Session({
+    appId: "9352938974",            // your TalkJS account id
+    me: currentUser                 // make George the active user
+});
+{{< /highlight >}}
+
+##### What do I mean by productivity
+How do you define productivity though? And how can you measure it? I have a possibly surprising answer—it’s not about a number of lines of code you’ve written or features you’ve delivered. Productivity is something rather different. It’s all about focusing on the present and the future rather than the past. Productivity is more of a bet that in the future your team will be able to deliver more at the same time. It has way more to do with your perceived speed and enjoying work as a develo [...]
+
+I could think of a number of projects where I followed that philosophy of work and where it boosted the productivity of my team. Today, however, I’d like to focus on Apache Airflow.
+
+##### The Apache Airflow project’s setup
+Initially, we started contributing to this fantastic open-source project with a team of three which then grew to five. When we kicked it off a year ago, I realized pretty soon where the biggest bottlenecks and areas for improvement in terms of productivity were. Even with the help of our client, who provided us with a “homegrown” development environment it took us literally days to set it up and learn some basics.
+
+Apache Airflow is a thoroughly tested project—it has almost 4,000 tests with around 80% coverage and varying complexity (from simple unit tests to end-to-end system tests). Airflow follows a modern software project philosophy: every single Pull Request can only be merged if all the tests pass. But that creates another problem—having to run all the tests for all the backends (there are 3 of them) and different python versions. At the time of starting the project we still supported 2.7, 3. [...]
+
+This is hardly acceptable to any developer. Usually you can work on several issues in parallel. Such waiting is not the worst thing that can happen, but there are always costs of context-switching, distractions, getting out of the flow and the good old “I already forgot what I was doing” phase by the time the build is completed. It’s even worse when you want to make a small Pull Request. For example, when you find a bug and have just one line of fix for it. You submit the Pull Request an [...]
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow4.html b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow4.html
deleted file mode 100644
index fea2e72..0000000
--- a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow4.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: "It's a breeze to develop Apache Airflow"
-linkTitle: "It's a breeze to develop Apache Airflow"
-author: "Jarek Potiuk"
-description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
-tags: ["Community"]
-date: 2019-09-24
----
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow4.md b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow4.md
new file mode 100644
index 0000000..cf7c326
--- /dev/null
+++ b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow4.md
@@ -0,0 +1,38 @@
+---
+title: "It's a breeze to develop Apache Airflow"
+linkTitle: "It's a breeze to develop Apache Airflow"
+author: "Jarek Potiuk"
+description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
+tags: ["Community"]
+date: 2019-09-24
+---
+
+##### My journey to developer productivity
+It started at the beginning of my career with my older and more experienced colleague—one of the first “real” software engineers I had interacted with by then. I learned a lot from him. I specifically remember him saying: “When I develop code, I spend the first half of my time on developing tools to make my work 10x faster—that’s the key reason why I always deliver on time.” His words stuck with me. I’ve been a part of many successful projects in my career but they pretty much always loo [...]
+
+As an All-Stack-Engineer, I believe the best use of my time is to put my efforts not only to the code that I deliver but mainly to develop all the tools, DevOps setup, continuous integration, automated code analysis and everything essential for the developers. The best-case scenario is when your developers can use them independently and you don’t need to worry about them.
+
+{{< highlight js >}}
+// Synchronize user data and set up
+var currentUser = new Talk.User({
+    id: 79302,                      // user id
+    name: "George Looney",          // full name
+    email: "george@looney.net"      // for offline email fallback
+});
+var session = new Talk.Session({
+    appId: "9352938974",            // your TalkJS account id
+    me: currentUser                 // make George the active user
+});
+{{< /highlight >}}
+
+##### What do I mean by productivity
+How do you define productivity though? And how can you measure it? I have a possibly surprising answer—it’s not about a number of lines of code you’ve written or features you’ve delivered. Productivity is something rather different. It’s all about focusing on the present and the future rather than the past. Productivity is more of a bet that in the future your team will be able to deliver more at the same time. It has way more to do with your perceived speed and enjoying work as a develo [...]
+
+I could think of a number of projects where I followed that philosophy of work and where it boosted the productivity of my team. Today, however, I’d like to focus on Apache Airflow.
+
+##### The Apache Airflow project’s setup
+Initially, we started contributing to this fantastic open-source project with a team of three which then grew to five. When we kicked it off a year ago, I realized pretty soon where the biggest bottlenecks and areas for improvement in terms of productivity were. Even with the help of our client, who provided us with a “homegrown” development environment it took us literally days to set it up and learn some basics.
+
+Apache Airflow is a thoroughly tested project—it has almost 4,000 tests with around 80% coverage and varying complexity (from simple unit tests to end-to-end system tests). Airflow follows a modern software project philosophy: every single Pull Request can only be merged if all the tests pass. But that creates another problem—having to run all the tests for all the backends (there are 3 of them) and different python versions. At the time of starting the project we still supported 2.7, 3. [...]
+
+This is hardly acceptable to any developer. Usually you can work on several issues in parallel. Such waiting is not the worst thing that can happen, but there are always costs of context-switching, distractions, getting out of the flow and the good old “I already forgot what I was doing” phase by the time the build is completed. It’s even worse when you want to make a small Pull Request. For example, when you find a bug and have just one line of fix for it. You submit the Pull Request an [...]
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow5.html b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow5.html
deleted file mode 100644
index fea2e72..0000000
--- a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow5.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: "It's a breeze to develop Apache Airflow"
-linkTitle: "It's a breeze to develop Apache Airflow"
-author: "Jarek Potiuk"
-description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
-tags: ["Community"]
-date: 2019-09-24
----
diff --git a/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow5.md b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow5.md
new file mode 100644
index 0000000..cf7c326
--- /dev/null
+++ b/landing-pages/site/content/en/blog/Its-a-breeze-to-develop-apache-airflow5.md
@@ -0,0 +1,38 @@
+---
+title: "It's a breeze to develop Apache Airflow"
+linkTitle: "It's a breeze to develop Apache Airflow"
+author: "Jarek Potiuk"
+description: "Working on an Open Source project such as Apache Airflow is very demanding but also equally rewarding when you realize how many businesses use it every day."
+tags: ["Community"]
+date: 2019-09-24
+---
+
+##### My journey to developer productivity
+It started at the beginning of my career with my older and more experienced colleague—one of the first “real” software engineers I had interacted with by then. I learned a lot from him. I specifically remember him saying: “When I develop code, I spend the first half of my time on developing tools to make my work 10x faster—that’s the key reason why I always deliver on time.” His words stuck with me. I’ve been a part of many successful projects in my career but they pretty much always loo [...]
+
+As an All-Stack-Engineer, I believe the best use of my time is to put my efforts not only to the code that I deliver but mainly to develop all the tools, DevOps setup, continuous integration, automated code analysis and everything essential for the developers. The best-case scenario is when your developers can use them independently and you don’t need to worry about them.
+
+{{< highlight js >}}
+// Synchronize user data and set up
+var currentUser = new Talk.User({
+    id: 79302,                      // user id
+    name: "George Looney",          // full name
+    email: "george@looney.net"      // for offline email fallback
+});
+var session = new Talk.Session({
+    appId: "9352938974",            // your TalkJS account id
+    me: currentUser                 // make George the active user
+});
+{{< /highlight >}}
+
+##### What do I mean by productivity
+How do you define productivity though? And how can you measure it? I have a possibly surprising answer—it’s not about a number of lines of code you’ve written or features you’ve delivered. Productivity is something rather different. It’s all about focusing on the present and the future rather than the past. Productivity is more of a bet that in the future your team will be able to deliver more at the same time. It has way more to do with your perceived speed and enjoying work as a develo [...]
+
+I could think of a number of projects where I followed that philosophy of work and where it boosted the productivity of my team. Today, however, I’d like to focus on Apache Airflow.
+
+##### The Apache Airflow project’s setup
+Initially, we started contributing to this fantastic open-source project with a team of three which then grew to five. When we kicked it off a year ago, I realized pretty soon where the biggest bottlenecks and areas for improvement in terms of productivity were. Even with the help of our client, who provided us with a “homegrown” development environment it took us literally days to set it up and learn some basics.
+
+Apache Airflow is a thoroughly tested project—it has almost 4,000 tests with around 80% coverage and varying complexity (from simple unit tests to end-to-end system tests). Airflow follows a modern software project philosophy: every single Pull Request can only be merged if all the tests pass. But that creates another problem—having to run all the tests for all the backends (there are 3 of them) and different python versions. At the time of starting the project we still supported 2.7, 3. [...]
+
+This is hardly acceptable to any developer. Usually you can work on several issues in parallel. Such waiting is not the worst thing that can happen, but there are always costs of context-switching, distractions, getting out of the flow and the good old “I already forgot what I was doing” phase by the time the build is completed. It’s even worse when you want to make a small Pull Request. For example, when you find a bug and have just one line of fix for it. You submit the Pull Request an [...]
diff --git a/landing-pages/site/content/en/case-studies/example-case1.html b/landing-pages/site/content/en/case-studies/example-case1.html
deleted file mode 100644
index 3ccaa63..0000000
--- a/landing-pages/site/content/en/case-studies/example-case1.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Example 1"
-linkTitle: "Example 1"
-quote:
-    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
-    author: "Austin Benett, CTO at Spotify"
-logo_path: "icons/spotify-logo.svg"
----
-
-{{< paragraph header="What was the problem?" >}}
-    We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not process [...]
-{{</ paragraph >}}
-
-{{< paragraph header="How did Apache Airflow help to solve this problem?" >}}
-    Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus
-    on business outcomes.
-{{</ paragraph >}}
-
-{{< paragraph header="What are the results?" >}}
-    Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
-    community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
-    processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
-    waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
-    not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
-    follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
-    what is going on.
-{{</ paragraph >}}
diff --git a/landing-pages/site/content/en/case-studies/example-case1.md b/landing-pages/site/content/en/case-studies/example-case1.md
new file mode 100644
index 0000000..5c7dffb
--- /dev/null
+++ b/landing-pages/site/content/en/case-studies/example-case1.md
@@ -0,0 +1,23 @@
+---
+title: "Example 1"
+linkTitle: "Example 1"
+quote:
+    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
+    author: "Austin Benett, CTO at Spotify"
+logo_path: "icons/spotify-logo.svg"
+---
+
+##### What was the problem?
+We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not processing, [...]
+
+##### How did Apache Airflow help to solve this problem?
+Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus on business outcomes.
+
+##### What are the results?
+Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
+community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
+processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
+waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
+not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
+follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
+what is going on.
diff --git a/landing-pages/site/content/en/case-studies/example-case2.html b/landing-pages/site/content/en/case-studies/example-case2.html
deleted file mode 100644
index 8556393..0000000
--- a/landing-pages/site/content/en/case-studies/example-case2.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Example 2"
-linkTitle: "Example 2"
-quote:
-    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
-    author: "Austin Benett, CTO at Spotify"
-logo_path: "icons/dish-logo.svg"
----
-
-{{< paragraph header="What was the problem?" >}}
-    We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not process [...]
-{{</ paragraph >}}
-
-{{< paragraph header="How did Apache Airflow help to solve this problem?" >}}
-    Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus
-    on business outcomes.
-{{</ paragraph >}}
-
-{{< paragraph header="What are the results?" >}}
-    Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
-    community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
-    processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
-    waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
-    not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
-    follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
-    what is going on.
-{{</ paragraph >}}
diff --git a/landing-pages/site/content/en/case-studies/example-case2.md b/landing-pages/site/content/en/case-studies/example-case2.md
new file mode 100644
index 0000000..44a5b2f
--- /dev/null
+++ b/landing-pages/site/content/en/case-studies/example-case2.md
@@ -0,0 +1,23 @@
+---
+title: "Example 2"
+linkTitle: "Example 2"
+quote:
+    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
+    author: "Austin Benett, CTO at Spotify"
+logo_path: "icons/dish-logo.svg"
+---
+
+##### What was the problem?
+We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not processing, [...]
+
+##### How did Apache Airflow help to solve this problem?
+Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus on business outcomes.
+
+##### What are the results?
+Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
+community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
+processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
+waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
+not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
+follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
+what is going on.
diff --git a/landing-pages/site/content/en/case-studies/example-case3.html b/landing-pages/site/content/en/case-studies/example-case3.html
deleted file mode 100644
index e3458fa..0000000
--- a/landing-pages/site/content/en/case-studies/example-case3.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Example 3"
-linkTitle: "Example 3"
-quote:
-    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
-    author: "Austin Benett, CTO at Spotify"
-logo_path: "icons/spotify-logo.svg"
----
-
-{{< paragraph header="What was the problem?" >}}
-    We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not process [...]
-{{</ paragraph >}}
-
-{{< paragraph header="How did Apache Airflow help to solve this problem?" >}}
-    Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus
-    on business outcomes.
-{{</ paragraph >}}
-
-{{< paragraph header="What are the results?" >}}
-    Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
-    community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
-    processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
-    waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
-    not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
-    follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
-    what is going on.
-{{</ paragraph >}}
diff --git a/landing-pages/site/content/en/case-studies/example-case3.md b/landing-pages/site/content/en/case-studies/example-case3.md
new file mode 100644
index 0000000..84b69d7
--- /dev/null
+++ b/landing-pages/site/content/en/case-studies/example-case3.md
@@ -0,0 +1,23 @@
+---
+title: "Example 3"
+linkTitle: "Example 3"
+quote:
+    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
+    author: "Austin Benett, CTO at Spotify"
+logo_path: "icons/spotify-logo.svg"
+---
+
+##### What was the problem?
+We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not processing, [...]
+
+##### How did Apache Airflow help to solve this problem?
+Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus on business outcomes.
+
+##### What are the results?
+Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
+community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
+processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
+waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
+not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
+follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
+what is going on.
diff --git a/landing-pages/site/content/en/case-studies/example-case4.html b/landing-pages/site/content/en/case-studies/example-case4.html
deleted file mode 100644
index 4b4891e..0000000
--- a/landing-pages/site/content/en/case-studies/example-case4.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Example 4"
-linkTitle: "Example 4"
-quote:
-    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
-    author: "Austin Benett, CTO at Spotify"
-logo_path: "icons/spotify-logo.svg"
----
-
-{{< paragraph header="What was the problem?" >}}
-    We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not process [...]
-{{</ paragraph >}}
-
-{{< paragraph header="How did Apache Airflow help to solve this problem?" >}}
-    Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus
-    on business outcomes.
-{{</ paragraph >}}
-
-{{< paragraph header="What are the results?" >}}
-    Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
-    community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
-    processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
-    waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
-    not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
-    follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
-    what is going on.
-{{</ paragraph >}}
diff --git a/landing-pages/site/content/en/case-studies/example-case4.md b/landing-pages/site/content/en/case-studies/example-case4.md
new file mode 100644
index 0000000..144f917
--- /dev/null
+++ b/landing-pages/site/content/en/case-studies/example-case4.md
@@ -0,0 +1,23 @@
+---
+title: "Example 4"
+linkTitle: "Example 4"
+quote:
+    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
+    author: "Austin Benett, CTO at Spotify"
+logo_path: "icons/spotify-logo.svg"
+---
+
+##### What was the problem?
+We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not processing, [...]
+
+##### How did Apache Airflow help to solve this problem?
+Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus on business outcomes.
+
+##### What are the results?
+Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
+community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
+processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
+waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
+not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
+follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
+what is going on.
diff --git a/landing-pages/site/content/en/case-studies/example-case5.html b/landing-pages/site/content/en/case-studies/example-case5.html
deleted file mode 100644
index 7f13697..0000000
--- a/landing-pages/site/content/en/case-studies/example-case5.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Example 5"
-linkTitle: "Example 5"
-quote:
-    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
-    author: "Austin Benett, CTO at Spotify"
-logo_path: "icons/spotify-logo.svg"
----
-
-{{< paragraph header="What was the problem?" >}}
-    We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not process [...]
-{{</ paragraph >}}
-
-{{< paragraph header="How did Apache Airflow help to solve this problem?" >}}
-    Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus
-    on business outcomes.
-{{</ paragraph >}}
-
-{{< paragraph header="What are the results?" >}}
-    Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
-    community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
-    processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
-    waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
-    not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
-    follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
-    what is going on.
-{{</ paragraph >}}
diff --git a/landing-pages/site/content/en/case-studies/example-case5.md b/landing-pages/site/content/en/case-studies/example-case5.md
new file mode 100644
index 0000000..c42b5fd
--- /dev/null
+++ b/landing-pages/site/content/en/case-studies/example-case5.md
@@ -0,0 +1,23 @@
+---
+title: "Example 5"
+linkTitle: "Example 5"
+quote:
+    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
+    author: "Austin Benett, CTO at Spotify"
+logo_path: "icons/spotify-logo.svg"
+---
+
+##### What was the problem?
+We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not processing, [...]
+
+##### How did Apache Airflow help to solve this problem?
+Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus on business outcomes.
+
+##### What are the results?
+Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
+community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
+processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
+waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
+not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
+follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
+what is going on.
diff --git a/landing-pages/site/content/en/case-studies/example-case6.html b/landing-pages/site/content/en/case-studies/example-case6.html
deleted file mode 100644
index 7744ae4..0000000
--- a/landing-pages/site/content/en/case-studies/example-case6.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: "Example 6"
-linkTitle: "Example 6"
-quote:
-    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
-    author: "Austin Benett, CTO at Spotify"
-logo_path: "icons/dish-logo.svg"
----
-
-{{< paragraph header="What was the problem?" >}}
-    We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not process [...]
-{{</ paragraph >}}
-
-{{< paragraph header="How did Apache Airflow help to solve this problem?" >}}
-    Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus
-    on business outcomes.
-{{</ paragraph >}}
-
-{{< paragraph header="What are the results?" >}}
-    Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
-    community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
-    processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
-    waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
-    not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
-    follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
-    what is going on.
-{{</ paragraph >}}
diff --git a/landing-pages/site/content/en/case-studies/example-case6.md b/landing-pages/site/content/en/case-studies/example-case6.md
new file mode 100644
index 0000000..aee9a00
--- /dev/null
+++ b/landing-pages/site/content/en/case-studies/example-case6.md
@@ -0,0 +1,23 @@
+---
+title: "Example 6"
+linkTitle: "Example 6"
+quote:
+    text: "A great ecosystem and community that comes together to address about any batch data pipeline need."
+    author: "Austin Benett, CTO at Spotify"
+logo_path: "icons/dish-logo.svg"
+---
+
+##### What was the problem?
+We faced increasing complexity managing lengthy crontabs with scheduling being an issue, this required carefully planning timing due to resource constraints, usage patterns, and especially custom code needed for retry logic.  In the last case, having to verify success of previous jobs and/or steps prior to running the next.  Furthermore, time to results is important, but we were increasingly relying on buffers for processing, where things were effectively sitting idle and not processing, [...]
+
+##### How did Apache Airflow help to solve this problem?
+Relying on community built and existing hooks and operators to the majority of cloud services we use has allowed us to focus on business outcomes.
+
+##### What are the results?
+Airflow helps us manage many of our pain-points, letting us benefit from the overall ecosystem and
+community.  We are able to reduce time-to-end delivery of data products by being event-driven in our
+processing flows (in our first usage, for example, we were able to take out over 2 hours - on average - of various
+waiting between stages).  Furthermore, we are able to arrive at and iterate on products quicker as a result of
+not needing as much custom or roll-our-own solutions.  For Our code base is smaller and simpler, it is easier to
+follow, and to a large extent our DAGs serve as sufficient documentation for new contributors to understand
+what is going on.
diff --git a/landing-pages/site/layouts/case-studies/content.html b/landing-pages/site/layouts/blog/content.html
similarity index 56%
copy from landing-pages/site/layouts/case-studies/content.html
copy to landing-pages/site/layouts/blog/content.html
index c7a2037..d44d157 100644
--- a/landing-pages/site/layouts/case-studies/content.html
+++ b/landing-pages/site/layouts/blog/content.html
@@ -17,8 +17,17 @@
  under the License.
 */}}
 
-<div class="td-content">
-    {{ partial "quote" .Params}}
-    {{ with .Params.description }}<div class="lead">{{ . | markdownify }}</div>{{ end }}
+<div class="blogpost-content--header-wrapper">
+    <div class="blogpost-content__metadata--container">
+        {{ range .Params.tags }}
+            <a class="tag" href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a>
+        {{ end }}
+        <span class="bodytext__medium--brownish-grey">{{ .Date.Format "Mon, Jan 2, 2006" }}</span>
+    </div>
+    <p class="blogpost-content__metadata--title">{{ .Title }}</p>
+    <p class="blogpost-content__metadata--author">{{ .Params.author }}</p>
+    <p class="blogpost-content__metadata--description">{{ .Params.description }}</p>
+</div>
+<div class="markdown-content">
     {{ .Content }}
 </div>
diff --git a/landing-pages/site/layouts/shortcodes/paragraph.html b/landing-pages/site/layouts/blog/single.html
similarity index 84%
rename from landing-pages/site/layouts/shortcodes/paragraph.html
rename to landing-pages/site/layouts/blog/single.html
index fe5e358..6070848 100644
--- a/landing-pages/site/layouts/shortcodes/paragraph.html
+++ b/landing-pages/site/layouts/blog/single.html
@@ -17,5 +17,9 @@
  under the License.
 */}}
 
-<h5 class="paragraph--header">{{ .Get "header"}}</h5>
-<p class="paragraph--text">{{ .Inner }}</p>
+{{ define "main" }}
+    <div class="blogpost-content">
+        {{ .Render "content" }}
+    </div>
+    {{ partial "blog-pager" . }}
+{{ end }}
diff --git a/landing-pages/site/layouts/case-studies/content.html b/landing-pages/site/layouts/case-studies/content.html
index c7a2037..e26b4d5 100644
--- a/landing-pages/site/layouts/case-studies/content.html
+++ b/landing-pages/site/layouts/case-studies/content.html
@@ -19,6 +19,9 @@
 
 <div class="td-content">
     {{ partial "quote" .Params}}
-    {{ with .Params.description }}<div class="lead">{{ . | markdownify }}</div>{{ end }}
-    {{ .Content }}
+    {{ with .Params.description }}
+    <div class="lead">{{ . | markdownify }}</div>{{ end }}
+    <div class="markdown-content">
+        {{ .Content }}
+    </div>
 </div>
diff --git a/landing-pages/site/layouts/case-studies/content.html b/landing-pages/site/layouts/partials/blog-pager.html
similarity index 61%
copy from landing-pages/site/layouts/case-studies/content.html
copy to landing-pages/site/layouts/partials/blog-pager.html
index c7a2037..683bea5 100644
--- a/landing-pages/site/layouts/case-studies/content.html
+++ b/landing-pages/site/layouts/partials/blog-pager.html
@@ -17,8 +17,18 @@
  under the License.
 */}}
 
-<div class="td-content">
-    {{ partial "quote" .Params}}
-    {{ with .Params.description }}<div class="lead">{{ . | markdownify }}</div>{{ end }}
-    {{ .Content }}
-</div>
+{{ $related := .Site.RegularPages.Related . | first 2 }}
+{{ with $related }}
+    <div class="blog-pager">
+        <h5 class="header__xsmall--greyish-brown">Read also</h5>
+        <div class="pager">
+            <div class="list-items">
+                {{ range . }}
+                    <div class="list-item list-item--wide">
+                        {{ partial "boxes/blogpost" . }}
+                    </div>
+                {{ end }}
+            </div>
+        </div>
+    </div>
+{{ end }}