diff --git a/.asf.yml b/.asf.yaml
similarity index 100%
rename from .asf.yml
rename to .asf.yaml
diff --git a/.gitignore b/.gitignore
index f40fbd8..a9cc8ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
 .jekyll-cache
 .jekyll-metadata
 vendor
+Gemfile.lock
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index 3cc0e98..0000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,80 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    addressable (2.7.0)
-      public_suffix (>= 2.0.2, < 5.0)
-    colorator (1.1.0)
-    concurrent-ruby (1.1.8)
-    em-websocket (0.5.2)
-      eventmachine (>= 0.12.9)
-      http_parser.rb (~> 0.6.0)
-    eventmachine (1.2.7)
-    ffi (1.14.2)
-    forwardable-extended (2.6.0)
-    http_parser.rb (0.6.0)
-    i18n (1.8.9)
-      concurrent-ruby (~> 1.0)
-    jekyll (4.2.0)
-      addressable (~> 2.4)
-      colorator (~> 1.0)
-      em-websocket (~> 0.5)
-      i18n (~> 1.0)
-      jekyll-sass-converter (~> 2.0)
-      jekyll-watch (~> 2.0)
-      kramdown (~> 2.3)
-      kramdown-parser-gfm (~> 1.0)
-      liquid (~> 4.0)
-      mercenary (~> 0.4.0)
-      pathutil (~> 0.9)
-      rouge (~> 3.0)
-      safe_yaml (~> 1.0)
-      terminal-table (~> 2.0)
-    jekyll-feed (0.15.1)
-      jekyll (>= 3.7, < 5.0)
-    jekyll-sass-converter (2.1.0)
-      sassc (> 2.0.1, < 3.0)
-    jekyll-seo-tag (2.7.1)
-      jekyll (>= 3.8, < 5.0)
-    jekyll-watch (2.2.1)
-      listen (~> 3.0)
-    kramdown (2.3.0)
-      rexml
-    kramdown-parser-gfm (1.1.0)
-      kramdown (~> 2.0)
-    liquid (4.0.3)
-    listen (3.4.1)
-      rb-fsevent (~> 0.10, >= 0.10.3)
-      rb-inotify (~> 0.9, >= 0.9.10)
-    mercenary (0.4.0)
-    minima (2.5.1)
-      jekyll (>= 3.5, < 5.0)
-      jekyll-feed (~> 0.9)
-      jekyll-seo-tag (~> 2.1)
-    pathutil (0.16.2)
-      forwardable-extended (~> 2.6)
-    public_suffix (4.0.6)
-    rb-fsevent (0.10.4)
-    rb-inotify (0.10.1)
-      ffi (~> 1.0)
-    rexml (3.2.4)
-    rouge (3.26.0)
-    safe_yaml (1.0.5)
-    sassc (2.4.0)
-      ffi (~> 1.9)
-    terminal-table (2.0.0)
-      unicode-display_width (~> 1.1, >= 1.1.1)
-    unicode-display_width (1.7.0)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  jekyll (~> 4.2.0)
-  jekyll-feed (~> 0.12)
-  minima (~> 2.5)
-  tzinfo (~> 1.2)
-  tzinfo-data
-  wdm (~> 0.1.1)
-
-BUNDLED WITH
-   1.17.3
diff --git a/README.md b/README.md
index a803510..be59f04 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
 you'll have to run this command:
 
 ```
-docker run --rm -p 4000:4000 -p 35729:35729 --mount type=bind,src=$PWD,dst=/root/build --mount type=volume,dst=/root/build/node_modules -it apache/privacy_apache_org serve --watch --incremental
+docker run --rm -p 4000:4000 --mount type=bind,src=$PWD,dst=/root/build --mount type=volume,dst=/root/build/node_modules -it apache/privacy_apache_org serve --watch --incremental
 ```
 
 Once it runs, you can reach your website at:
@@ -38,5 +38,5 @@
 and connect to it with this command:
 
 ```
-docker run --rm -p 4000:4000 -p 35729:35729 --mount type=bind,src=$PWD,dst=/root/build --mount type=volume,dst=/root/build/node_modules -it  --entrypoint "/bin/bash" apache/privacy_apache_org
+docker run --rm -p 4000:4000 --mount type=bind,src=$PWD,dst=/root/build --mount type=volume,dst=/root/build/node_modules -it  --entrypoint "/bin/bash" apache/privacy_apache_org
 ```
diff --git a/_includes/asf-logo.svg b/_includes/asf-logo.svg
deleted file mode 100644
index d58ba5c..0000000
--- a/_includes/asf-logo.svg
+++ /dev/null
@@ -1,207 +0,0 @@
-<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 7127.6 2890" enable-background="new 0 0 7127.6 2890" xml:space="preserve">
-<path fill="#6D6E71" d="M7104.7,847.8c15.3,15.3,22.9,33.7,22.9,55.2c0,21.5-7.6,39.9-22.9,55.4c-15.3,15.4-33.8,23.1-55.6,23.1
-	c-21.8,0-40.2-7.6-55.4-22.9c-15.1-15.3-22.7-33.7-22.7-55.2c0-21.5,7.6-39.9,22.9-55.4c15.3-15.4,33.7-23.1,55.4-23.1
-	C7070.9,824.9,7089.4,832.5,7104.7,847.8z M7098.1,951.9c13.3-13.6,20-29.8,20-48.7s-6.6-35-19.8-48.5
-	c-13.2-13.4-29.4-20.1-48.6-20.1c-19.2,0-35.4,6.7-48.7,20.2c-13.3,13.5-19.9,29.7-19.9,48.7c0,19,6.6,35.2,19.7,48.6
-	c13.1,13.4,29.3,20.1,48.5,20.1S7084.7,965.4,7098.1,951.9z M7087.1,888.1c0,14-6.1,22.8-18.4,26.4l22.5,30.5h-18.2l-20.3-28.3
-	h-18.6v28.3h-14.7v-84.6h31.8c12.8,0,22,2.2,27.6,6.6C7084.4,871.4,7087.1,878.4,7087.1,888.1z M7068.2,900c3-2.4,4.4-6.5,4.4-12
-	c0-5.5-1.5-9.4-4.5-11.6c-3-2.2-8.4-3.2-16-3.2h-18v30.5h17.5C7059.7,903.6,7065.3,902.4,7068.2,900z"/>
-<path fill="#6D6E71" d="M1803.6,499.8v155.4h-20V499.8h-56.8v-19.2h133.9v19.2H1803.6z"/>
-<path fill="#6D6E71" d="M2082.2,655.2v-76.9h-105.2v76.9h-20V480.5h20v78.9h105.2v-78.9h20v174.7H2082.2z"/>
-<path fill="#6D6E71" d="M2241.4,499.8v57.4h88.1v19.2h-88.1v59.8h101.8v19h-121.8V480.5H2340v19.2H2241.4z"/>
-<path fill="#D22128" d="M1574.5,1852.4l417.3-997.6h80.1l417.3,997.6h-105.4l-129.3-311.9h-448.2l-127.9,311.9H1574.5z M2032.6,970
-	l-205.1,493.2h404.7L2032.6,970z"/>
-<path fill="#D22128" d="M2596.9,1852.4V854.8H3010c171.4,0,295.1,158.8,295.1,313.3c0,163-115.2,316.1-286.6,316.1h-324.6v368.1
-	H2596.9z M2693.9,1397.1h318.9c118,0,193.9-108.2,193.9-229c0-125.1-92.7-226.2-202.3-226.2h-310.5V1397.1z"/>
-<path fill="#D22128" d="M3250.5,1852.4l417.3-997.6h80.1l417.3,997.6h-105.4l-129.3-311.9h-448.2l-127.9,311.9H3250.5z M3708.6,970
-	l-205.1,493.2h404.7L3708.6,970z"/>
-<path fill="#D22128" d="M4637.3,849.1c177,0,306.3,89.9,368.1,217.8l-78.7,47.8c-63.2-132.1-186.9-177-295.1-177
-	c-238.9,0-369.5,213.6-369.5,414.5c0,220.6,161.6,420.1,373.7,420.1c112.4,0,244.5-56.2,307.7-185.5l81.5,42.1
-	c-64.6,148.9-241.7,231.8-394.8,231.8c-274,0-466.5-261.3-466.5-514.2C4163.8,1106.3,4336.6,849.1,4637.3,849.1z"/>
-<path fill="#D22128" d="M5949.1,854.8v997.6h-98.4v-466.5h-591.5v466.5h-96.9V854.8h96.9v444h591.5v-444H5949.1z"/>
-<path fill="#D22128" d="M6844.6,1765.2v87.1h-670.2V854.8H6832v87.1h-560.6v359.7h489v82.9h-489v380.8H6844.6z"/>
-<path fill="#6D6E71" d="M1667.6,2063.6c11.8,3.5,22.2,8.3,31,14.2l-10.3,22.6c-9-6-18.6-10.4-28.9-13.4c-10.2-2.9-20-4.4-29.2-4.4
-	c-13.6,0-24.5,2.4-32.6,7.3c-8.1,4.9-12.2,11.8-12.2,20.7c0,7.6,2.3,14,6.8,19c4.5,5,10.2,8.9,17,11.7c6.8,2.8,16.1,6,28,9.6
-	c14.4,4.6,26,8.9,34.7,12.9c8.8,4,16.3,9.9,22.5,17.8c6.2,7.8,9.3,18.2,9.3,31c0,11.7-3.2,21.8-9.5,30.6
-	c-6.3,8.7-15.3,15.5-26.8,20.3c-11.6,4.8-24.9,7.2-40,7.2c-15.1,0-29.7-2.9-43.9-8.7c-14.2-5.8-26.4-13.6-36.6-23.4l10.7-21.6
-	c9.6,9.4,20.7,16.7,33.3,21.9c12.6,5.2,24.8,7.8,36.8,7.8c15.3,0,27.3-3,36.1-8.9c8.8-5.9,13.2-13.9,13.2-23.9
-	c0-7.8-2.3-14.3-6.9-19.4c-4.6-5.1-10.3-9-17.1-11.9c-6.8-2.8-16.1-6-28-9.6c-14.2-4.2-25.7-8.3-34.6-12.2
-	c-8.9-3.9-16.4-9.7-22.5-17.5c-6.1-7.7-9.2-17.9-9.2-30.6c0-10.9,3-20.4,9-28.6c6-8.2,14.6-14.6,25.6-19.1
-	c11.1-4.5,23.8-6.8,38.2-6.8C1643.8,2058.3,1655.7,2060.1,1667.6,2063.6z"/>
-<path fill="#6D6E71" d="M1980.1,2072.8c16.8,9.4,30.2,22.3,40,38.4c9.8,16.2,14.8,33.9,14.8,53.3c0,19.5-4.9,37.4-14.8,53.6
-	c-9.8,16.3-23.2,29.1-40,38.6c-16.8,9.5-35.3,14.3-55.2,14.3c-20.3,0-38.8-4.7-55.7-14.3c-16.8-9.5-30.2-22.4-40-38.6
-	c-9.8-16.3-14.8-34.1-14.8-53.6c0-19.5,4.9-37.3,14.8-53.5c9.8-16.2,23.2-29,40-38.3c16.8-9.4,35.4-14,55.7-14
-	C1944.8,2058.6,1963.2,2063.3,1980.1,2072.8z M1881.9,2092.7c-13.1,7.4-23.6,17.5-31.4,30.1c-7.8,12.6-11.8,26.5-11.8,41.7
-	c0,15.3,3.9,29.3,11.8,42c7.8,12.7,18.3,22.8,31.4,30.2c13.1,7.4,27.4,11.1,42.9,11.1c15.5,0,29.7-3.7,42.7-11.1
-	c13-7.4,23.3-17.4,31.1-30.2c7.7-12.7,11.6-26.7,11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30
-	c-13-7.4-27.2-11.2-42.6-11.2C1909.4,2081.5,1895.1,2085.2,1881.9,2092.7z"/>
-<path fill="#6D6E71" d="M2186.5,2082.4v74h98.4v23.2h-98.4v90.2h-24.1v-210.6h133.8v23.2H2186.5z"/>
-<path fill="#6D6E71" d="M2491.6,2082.4v187.4h-24.1v-187.4h-68.4v-23.2h161.4v23.2H2491.6z"/>
-<path fill="#6D6E71" d="M2871.8,2269.8l-56.8-177.4l-57.6,177.4h-24.5l-70.5-210.6h25.9l57.9,182.7l57.1-182.4l24.1-0.3l57.7,182.7
-	l57.1-182.7h25l-70.6,210.6H2871.8z"/>
-<path fill="#6D6E71" d="M3087.3,2216.6l-23.5,53.2h-25.6l94.4-210.6h25l94.1,210.6h-26.1l-23.5-53.2H3087.3z M3144.5,2086.6
-	l-46.9,106.8h94.4L3144.5,2086.6z"/>
-<path fill="#6D6E71" d="M3461.1,2202.7c-6,0.4-10.7,0.6-14.1,0.6h-56v66.5H3367v-210.6h80c26.2,0,46.6,6.2,61.2,18.5
-	c14.5,12.3,21.8,29.8,21.8,52.3c0,17.2-4.1,31.7-12.2,43.3c-8.1,11.6-19.8,20-35,25l49.2,71.5h-27.3L3461.1,2202.7z M3491.3,2167.6
-	c10.3-8.4,15.5-20.8,15.5-37c0-15.9-5.2-27.9-15.5-36c-10.3-8.1-25.1-12.2-44.3-12.2h-56v97.8h56
-	C3466.2,2180.2,3481,2176,3491.3,2167.6z"/>
-<path fill="#6D6E71" d="M3688.3,2082.4v69.2h106.2v23.2h-106.2v72.1h122.8v22.9h-146.9v-210.6h142.9v23.2H3688.3z"/>
-<path fill="#6D6E71" d="M4147,2082.4v74h98.4v23.2H4147v90.2h-24.1v-210.6h133.8v23.2H4147z"/>
-<path fill="#6D6E71" d="M4523.3,2072.8c16.8,9.4,30.2,22.3,40,38.4c9.8,16.2,14.8,33.9,14.8,53.3c0,19.5-4.9,37.4-14.8,53.6
-	c-9.8,16.3-23.2,29.1-40,38.6c-16.8,9.5-35.3,14.3-55.2,14.3c-20.3,0-38.8-4.7-55.7-14.3c-16.8-9.5-30.2-22.4-40-38.6
-	c-9.8-16.3-14.8-34.1-14.8-53.6c0-19.5,4.9-37.3,14.8-53.5c9.8-16.2,23.2-29,40-38.3c16.8-9.4,35.4-14,55.7-14
-	C4488.1,2058.6,4506.5,2063.3,4523.3,2072.8z M4425.2,2092.7c-13.1,7.4-23.6,17.5-31.4,30.1c-7.8,12.6-11.8,26.5-11.8,41.7
-	c0,15.3,3.9,29.3,11.8,42c7.8,12.7,18.3,22.8,31.4,30.2c13.1,7.4,27.4,11.1,42.9,11.1c15.5,0,29.7-3.7,42.7-11.1
-	c13-7.4,23.3-17.4,31.1-30.2c7.7-12.7,11.6-26.7,11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30
-	c-13-7.4-27.2-11.2-42.6-11.2C4452.6,2081.5,4438.3,2085.2,4425.2,2092.7z"/>
-<path fill="#6D6E71" d="M4854.7,2247.7c-15.7,15.5-37.3,23.3-64.8,23.3c-27.7,0-49.4-7.8-65.1-23.3c-15.7-15.5-23.6-37-23.6-64.6
-	v-124h24.1v124c0,20.3,5.8,36.1,17.3,47.5c11.6,11.4,27.3,17.1,47.3,17.1c20.1,0,35.8-5.7,47.1-17c11.4-11.3,17-27.2,17-47.7v-124
-	h24.1v124C4878.2,2210.7,4870.4,2232.2,4854.7,2247.7z"/>
-<path fill="#6D6E71" d="M5169.5,2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3,169.3v-169.3h23.8v210.6H5169.5z"/>
-<path fill="#6D6E71" d="M5478.4,2073.1c16.4,9.3,29.4,21.9,38.9,37.9c9.6,16,14.3,33.9,14.3,53.5s-4.8,37.6-14.3,53.6
-	c-9.5,16.1-22.6,28.7-39.3,37.9c-16.6,9.2-35.2,13.8-55.5,13.8h-84.3v-210.6h85.2C5443.7,2059.2,5462,2063.8,5478.4,2073.1z
-	 M5362.3,2246.9h61.4c15.5,0,29.6-3.5,42.3-10.6c12.7-7.1,22.8-16.9,30.2-29.5c7.4-12.5,11.1-26.5,11.1-42
-	c0-15.5-3.8-29.4-11.3-41.9c-7.5-12.5-17.7-22.3-30.6-29.6c-12.8-7.2-27-10.9-42.6-10.9h-60.5V2246.9z"/>
-<path fill="#6D6E71" d="M5668.6,2216.6l-23.5,53.2h-25.6l94.4-210.6h25l94.1,210.6H5807l-23.5-53.2H5668.6z M5725.8,2086.6
-	l-46.9,106.8h94.4L5725.8,2086.6z"/>
-<path fill="#6D6E71" d="M5991,2082.4v187.4H5967v-187.4h-68.4v-23.2h161.4v23.2H5991z"/>
-<path fill="#6D6E71" d="M6175.9,2269.8v-210.6h24.1v210.6H6175.9z"/>
-<path fill="#6D6E71" d="M6493.7,2072.8c16.8,9.4,30.2,22.3,40,38.4c9.8,16.2,14.8,33.9,14.8,53.3c0,19.5-4.9,37.4-14.8,53.6
-	c-9.8,16.3-23.2,29.1-40,38.6c-16.8,9.5-35.3,14.3-55.2,14.3c-20.3,0-38.8-4.7-55.7-14.3c-16.8-9.5-30.2-22.4-40-38.6
-	c-9.8-16.3-14.8-34.1-14.8-53.6c0-19.5,4.9-37.3,14.8-53.5c9.8-16.2,23.2-29,40-38.3c16.8-9.4,35.4-14,55.7-14
-	C6458.5,2058.6,6476.9,2063.3,6493.7,2072.8z M6395.6,2092.7c-13.1,7.4-23.6,17.5-31.4,30.1c-7.8,12.6-11.8,26.5-11.8,41.7
-	c0,15.3,3.9,29.3,11.8,42c7.8,12.7,18.3,22.8,31.4,30.2c13.1,7.4,27.4,11.1,42.9,11.1c15.5,0,29.7-3.7,42.7-11.1
-	c13-7.4,23.3-17.4,31.1-30.2c7.7-12.7,11.6-26.7,11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30
-	c-13-7.4-27.2-11.2-42.6-11.2C6423,2081.5,6408.8,2085.2,6395.6,2092.7z"/>
-<path fill="#6D6E71" d="M6826.5,2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3,169.3v-169.3h23.8v210.6H6826.5z"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-4516.6152" y1="-2338.7222" x2="-4108.4111" y2="-1861.3982" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0" style="stop-color:#F69923"/>
-	<stop  offset="0.3123" style="stop-color:#F79A23"/>
-	<stop  offset="0.8383" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M1230.1,13.7c-45.3,26.8-120.6,102.5-210.5,212.3l82.6,155.9c58-82.9,116.9-157.5,176.3-221.2
-	c4.6-5.1,7-7.5,7-7.5c-2.3,2.5-4.6,5-7,7.5c-19.2,21.2-77.5,89.2-165.5,224.4c84.7-4.2,214.9-21.6,321.1-39.7
-	c31.6-177-31-258-31-258S1323.4-41.4,1230.1,13.7z"/>
-<path fill="none" d="M1090.2,903.1c0.6-0.1,1.2-0.2,1.8-0.3l-11.9,1.3c-0.7,0.3-1.4,0.7-2.1,1
-	C1082.1,904.4,1086.2,903.7,1090.2,903.1z"/>
-<path fill="none" d="M1005.9,1182.3c-6.7,1.5-13.7,2.7-20.7,3.7C992.3,1185,999.2,1183.8,1005.9,1182.3z"/>
-<path fill="none" d="M432.9,1808.8c0.9-2.3,1.8-4.7,2.6-7c18.2-48,36.2-94.7,54-140.1c20-51,39.8-100.4,59.3-148.3
-	c20.6-50.4,40.9-99.2,60.9-146.3c21-49.4,41.7-97,62-142.8c16.5-37.3,32.8-73.4,48.9-108.3c5.4-11.7,10.7-23.2,16-34.6
-	c10.5-22.7,21-44.8,31.3-66.5c9.5-20,19-39.6,28.3-58.8c3.1-6.4,6.2-12.8,9.3-19.1c0.5-1,1-2,1.5-3.1l-10.2,1.1l-8-15.9
-	c-0.8,1.6-1.6,3.1-2.4,4.6c-14.5,28.8-28.9,57.9-43.1,87.2c-8.2,16.9-16.4,34-24.6,51c-22.6,47.4-44.8,95.2-66.6,143.3
-	c-22.1,48.6-43.7,97.5-64.9,146.5c-20.8,48.1-41.3,96.2-61.2,144.2c-20,48-39.5,95.7-58.5,143.2c-19.9,49.5-39.2,98.7-58,147.2
-	c-4.2,10.9-8.5,21.9-12.7,32.8c-15,39.2-29.7,77.8-44,116l12.7,25.1l11.4-1.2c0.4-1.1,0.8-2.3,1.3-3.4
-	C396.7,1905.4,414.9,1856.4,432.9,1808.8z"/>
-<path fill="none" d="M980,1186.8L980,1186.8c0.1,0,0.1,0,0.1-0.1C980.1,1186.8,980.1,1186.8,980,1186.8z"/>
-<path fill="#BE202E" d="M952.6,1323c-10.6,1.9-21.4,3.8-32.5,5.7c-0.1,0-0.1,0.1-0.2,0.1c5.6-0.8,11.2-1.7,16.6-2.6
-	C942,1325.2,947.3,1324.1,952.6,1323z"/>
-<path opacity="0.35" fill="#BE202E" d="M952.6,1323c-10.6,1.9-21.4,3.8-32.5,5.7c-0.1,0-0.1,0.1-0.2,0.1c5.6-0.8,11.2-1.7,16.6-2.6
-	C942,1325.2,947.3,1324.1,952.6,1323z"/>
-<path fill="#BE202E" d="M980.3,1186.7C980.2,1186.7,980.2,1186.7,980.3,1186.7c-0.1,0.1-0.2,0.1-0.2,0.1c1.8-0.2,3.5-0.5,5.2-0.8
-	c7-1,13.9-2.2,20.7-3.7C997.5,1183.8,989,1185.2,980.3,1186.7L980.3,1186.7L980.3,1186.7z"/>
-<path opacity="0.35" fill="#BE202E" d="M980.3,1186.7C980.2,1186.7,980.2,1186.7,980.3,1186.7c-0.1,0.1-0.2,0.1-0.2,0.1
-	c1.8-0.2,3.5-0.5,5.2-0.8c7-1,13.9-2.2,20.7-3.7C997.5,1183.8,989,1185.2,980.3,1186.7L980.3,1186.7L980.3,1186.7z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-7537.7339" y1="-2391.4075" x2="-4625.4141" y2="-2391.4075" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0.3233" style="stop-color:#9E2064"/>
-	<stop  offset="0.6302" style="stop-color:#C92037"/>
-	<stop  offset="0.7514" style="stop-color:#CD2335"/>
-	<stop  offset="1" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_2_)" d="M858.6,784.7c25.1-46.9,50.5-92.8,76.2-137.4c26.7-46.4,53.7-91.3,80.9-134.7
-	c1.6-2.6,3.2-5.2,4.8-7.7c27-42.7,54.2-83.7,81.6-122.9L1019.5,226c-6.2,7.6-12.5,15.3-18.8,23.2c-23.8,29.7-48.6,61.6-73.9,95.5
-	c-28.6,38.2-58,78.9-87.8,121.7c-27.6,39.5-55.5,80.9-83.5,123.7c-23.8,36.5-47.7,74-71.4,112.5c-0.9,1.4-1.8,2.9-2.6,4.3
-	l107.5,212.3C811.8,873.6,835.1,828.7,858.6,784.7z"/>
-<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-7186.1777" y1="-2099.3059" x2="-5450.7183" y2="-2099.3059" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0" style="stop-color:#282662"/>
-	<stop  offset="9.548390e-02" style="stop-color:#662E8D"/>
-	<stop  offset="0.7882" style="stop-color:#9F2064"/>
-	<stop  offset="0.9487" style="stop-color:#CD2032"/>
-</linearGradient>
-<path fill="url(#SVGID_3_)" d="M369,1981c-14.2,39.1-28.5,78.9-42.9,119.6c-0.2,0.6-0.4,1.2-0.6,1.8c-2,5.7-4.1,11.5-6.1,17.2
-	c-9.7,27.4-18,52.1-37.3,108.2c31.7,14.5,57.1,52.5,81.1,95.6c-2.6-44.7-21-86.6-56.2-119.1c156.1,7,290.6-32.4,360.1-146.6
-	c6.2-10.2,11.9-20.9,17-32.2c-31.6,40.1-70.8,57.1-144.5,53c-0.2,0.1-0.3,0.1-0.5,0.2c0.2-0.1,0.3-0.1,0.5-0.2
-	c108.6-48.6,163.1-95.3,211.2-172.6c11.4-18.3,22.5-38.4,33.8-60.6c-94.9,97.5-205,125.3-320.9,104.2l-86.9,9.5
-	C374.4,1966.3,371.7,1973.6,369,1981z"/>
-<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2418.5454" x2="-4461.8428" y2="-2418.5454" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0.3233" style="stop-color:#9E2064"/>
-	<stop  offset="0.6302" style="stop-color:#C92037"/>
-	<stop  offset="0.7514" style="stop-color:#CD2335"/>
-	<stop  offset="1" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_4_)" d="M409.6,1786.3c18.8-48.5,38.1-97.7,58-147.2c19-47.4,38.5-95.2,58.5-143.2
-	c20-48,40.4-96.1,61.2-144.2c21.2-49,42.9-97.8,64.9-146.5c21.8-48.1,44-95.9,66.6-143.3c8.1-17.1,16.3-34.1,24.6-51
-	c14.2-29.3,28.6-58.4,43.1-87.2c0.8-1.6,1.6-3.1,2.4-4.6L681.4,706.8c-1.8,2.9-3.5,5.8-5.3,8.6c-25.1,40.9-50,82.7-74.4,125.4
-	c-24.7,43.1-49,87.1-72.7,131.7c-20,37.6-39.6,75.6-58.6,113.9c-3.8,7.8-7.6,15.5-11.3,23.2c-23.4,48.2-44.6,94.8-63.7,139.5
-	c-21.7,50.7-40.7,99.2-57.5,145.1c-11,30.2-21,59.4-30.1,87.4c-7.5,24-14.7,47.9-21.5,71.8c-16,56.3-29.9,112.4-41.2,168.3
-	L353,1935.1c14.3-38.1,28.9-76.8,44-116C401.1,1808.2,405.4,1797.3,409.6,1786.3z"/>
-<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-7161.7642" y1="-2379.1431" x2="-5631.2524" y2="-2379.1431" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0" style="stop-color:#282662"/>
-	<stop  offset="9.548390e-02" style="stop-color:#662E8D"/>
-	<stop  offset="0.7882" style="stop-color:#9F2064"/>
-	<stop  offset="0.9487" style="stop-color:#CD2032"/>
-</linearGradient>
-<path fill="url(#SVGID_5_)" d="M243.5,1729.4c-13.6,68.2-23.2,136.2-28,203.8c-0.2,2.4-0.4,4.7-0.5,7.1
-	c-33.7-54-124-106.8-123.8-106.2c64.6,93.7,113.7,186.7,120.9,278c-34.6,7.1-82-3.2-136.8-23.3c57.1,52.5,100,67,116.7,70.9
-	c-52.5,3.3-107.1,39.3-162.1,80.8c80.5-32.8,145.5-45.8,192.1-35.3C148.1,2414.2,74.1,2645,0,2890c22.7-6.7,36.2-21.9,43.9-42.6
-	c13.2-44.4,100.8-335.6,238-718.2c3.9-10.9,7.8-21.8,11.8-32.9c1.1-3,2.2-6.1,3.3-9.2c14.5-40.1,29.5-81.1,45.1-122.9
-	c3.5-9.5,7.1-19,10.7-28.6c0.1-0.2,0.1-0.4,0.2-0.6l-107.9-213.2C244.6,1724.4,244,1726.9,243.5,1729.4z"/>
-<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2117.1309" x2="-4461.8428" y2="-2117.1309" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0.3233" style="stop-color:#9E2064"/>
-	<stop  offset="0.6302" style="stop-color:#C92037"/>
-	<stop  offset="0.7514" style="stop-color:#CD2335"/>
-	<stop  offset="1" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_6_)" d="M805.6,937c-3.1,6.3-6.2,12.7-9.3,19.1c-9.3,19.2-18.8,38.8-28.3,58.8
-	c-10.3,21.7-20.7,43.9-31.3,66.5c-5.3,11.4-10.6,22.9-16,34.6c-16.1,35-32.4,71.1-48.9,108.3c-20.3,45.8-41,93.4-62,142.8
-	c-20,47.1-40.3,95.9-60.9,146.3c-19.5,47.9-39.3,97.3-59.3,148.3c-17.8,45.4-35.9,92.1-54,140.1c-0.9,2.3-1.8,4.7-2.6,7
-	c-18,47.6-36.2,96.6-54.6,146.8c-0.4,1.1-0.8,2.3-1.3,3.4l86.9-9.5c-1.7-0.3-3.5-0.5-5.2-0.9c103.9-13,242.1-90.6,331.4-186.5
-	c41.1-44.2,78.5-96.3,113-157.3c25.7-45.4,49.8-95.8,72.8-151.5c20.1-48.7,39.4-101.4,58-158.6c-23.9,12.6-51.2,21.8-81.4,28.2
-	c-5.3,1.1-10.7,2.2-16.1,3.1c-5.5,1-11,1.8-16.6,2.6l0,0l0,0c0.1,0,0.1-0.1,0.2-0.1c96.9-37.3,158-109.2,202.4-197.4
-	c-25.5,17.4-66.9,40.1-116.6,51.1c-6.7,1.5-13.7,2.7-20.7,3.7c-1.7,0.3-3.5,0.6-5.2,0.8l0,0l0,0c0.1,0,0.1,0,0.1-0.1
-	c0,0,0.1,0,0.1,0l0,0c33.6-14.1,62-29.8,86.6-48.4c5.3-4,10.4-8.1,15.3-12.3c7.5-6.5,14.7-13.3,21.5-20.5c4.4-4.6,8.6-9.3,12.7-14.2
-	c9.6-11.5,18.7-23.9,27.1-37.3c2.6-4.1,5.1-8.3,7.6-12.6c3.2-6.2,6.3-12.3,9.3-18.3c13.5-27.2,24.4-51.5,33-72.8
-	c4.3-10.6,8.1-20.5,11.3-29.7c1.3-3.7,2.5-7.2,3.7-10.6c3.4-10.2,6.2-19.3,8.4-27.3c3.3-12,5.3-21.5,6.4-28.4l0,0l0,0
-	c-3.3,2.6-7.1,5.2-11.3,7.7c-29.3,17.5-79.5,33.4-119.9,40.8l79.8-8.8l-79.8,8.8c-0.6,0.1-1.2,0.2-1.8,0.3c-4,0.7-8.1,1.3-12.2,2
-	c0.7-0.3,1.4-0.7,2.1-1l-273,29.9C806.6,935,806.1,936,805.6,937z"/>
-<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-7554.8232" y1="-2132.0981" x2="-4642.5034" y2="-2132.0981" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0.3233" style="stop-color:#9E2064"/>
-	<stop  offset="0.6302" style="stop-color:#C92037"/>
-	<stop  offset="0.7514" style="stop-color:#CD2335"/>
-	<stop  offset="1" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_7_)" d="M1112.9,385.1c-24.3,37.3-50.8,79.6-79.4,127.5c-1.5,2.5-3,5.1-4.5,7.6
-	c-24.6,41.5-50.8,87.1-78.3,137c-23.8,43.1-48.5,89.3-74.3,139c-22.4,43.3-45.6,89.2-69.4,137.8l273-29.9
-	c79.5-36.6,115.1-69.7,149.6-117.6c9.2-13.2,18.4-27,27.5-41.3c28-43.8,55.6-92,80.1-139.9c23.7-46.3,44.7-92.2,60.7-133.5
-	c10.2-26.3,18.4-50.8,24.1-72.3c5-19,8.9-36.9,11.9-54.1C1327.9,363.5,1197.6,380.9,1112.9,385.1z"/>
-<path fill="#BE202E" d="M936.5,1326.1c-5.5,1-11,1.8-16.6,2.6l0,0C925.5,1328,931,1327.1,936.5,1326.1z"/>
-<path opacity="0.35" fill="#BE202E" d="M936.5,1326.1c-5.5,1-11,1.8-16.6,2.6l0,0C925.5,1328,931,1327.1,936.5,1326.1z"/>
-<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2027.484" x2="-4461.8433" y2="-2027.484" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0.3233" style="stop-color:#9E2064"/>
-	<stop  offset="0.6302" style="stop-color:#C92037"/>
-	<stop  offset="0.7514" style="stop-color:#CD2335"/>
-	<stop  offset="1" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_8_)" d="M936.5,1326.1c-5.5,1-11,1.8-16.6,2.6l0,0C925.5,1328,931,1327.1,936.5,1326.1z"/>
-<path fill="#BE202E" d="M980,1186.8c1.8-0.2,3.5-0.5,5.2-0.8C983.5,1186.3,981.8,1186.6,980,1186.8L980,1186.8z"/>
-<path opacity="0.35" fill="#BE202E" d="M980,1186.8c1.8-0.2,3.5-0.5,5.2-0.8C983.5,1186.3,981.8,1186.6,980,1186.8L980,1186.8z"/>
-<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2037.7417" x2="-4461.8433" y2="-2037.7417" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0.3233" style="stop-color:#9E2064"/>
-	<stop  offset="0.6302" style="stop-color:#C92037"/>
-	<stop  offset="0.7514" style="stop-color:#CD2335"/>
-	<stop  offset="1" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_9_)" d="M980,1186.8c1.8-0.2,3.5-0.5,5.2-0.8C983.5,1186.3,981.8,1186.6,980,1186.8L980,1186.8z"/>
-<path fill="#BE202E" d="M980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7L980.2,1186.7L980.2,1186.7L980.2,1186.7
-	C980.2,1186.7,980.2,1186.7,980.2,1186.7z"/>
-<path opacity="0.35" fill="#BE202E" d="M980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7L980.2,1186.7L980.2,1186.7
-	L980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7z"/>
-<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-5738.0635" y1="-2039.799" x2="-5094.3457" y2="-2039.799" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">
-	<stop  offset="0.3233" style="stop-color:#9E2064"/>
-	<stop  offset="0.6302" style="stop-color:#C92037"/>
-	<stop  offset="0.7514" style="stop-color:#CD2335"/>
-	<stop  offset="1" style="stop-color:#E97826"/>
-</linearGradient>
-<path fill="url(#SVGID_10_)" d="M980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7L980.2,1186.7L980.2,1186.7L980.2,1186.7
-	C980.2,1186.7,980.2,1186.7,980.2,1186.7z"/>
-</svg>
diff --git a/_includes/header.html b/_includes/header.html
index 8be1e0a..cdcb403 100644
--- a/_includes/header.html
+++ b/_includes/header.html
@@ -1,4 +1,22 @@
 <header>
-    <div class="header-logo">{% include asf-logo.svg %}</div>
-    <div class="header-text">Data Privacy</div>
-</header>
\ No newline at end of file
+    <div class="header-logo"><img src="/images/asf-logo.png"/>
+        <div class="header-text">ASF Data Privacy</div>
+    </div>
+
+    <nav>
+    <label for="show-menu" class="show-menu">Show Menu</label>
+	<input type="checkbox" id="show-menu" role="button">
+        <ul id="menu">
+            <li><a href="/">Home</a></li>
+            <li><a href="/policies">Policies</a></li>
+            <li>
+                <a href="#">FAQ &#9660;</a>
+                <ul class="hidden">
+                    <li><a href="/faq/committers.html">Committers' FAQ</a></li>
+                    <li><a href="/faq/infrastructure.html">Infrastructure FAQ</a></li>
+                </ul>
+            </li>
+            <li><a href="http://www.apache.org/foundation/">About the ASF</a></li>
+        </ul>
+    </nav>
+</header>
diff --git a/_layouts/default.html b/_layouts/default.html
index de5163d..40aa0eb 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -28,7 +28,7 @@
         <meta name="description" content="{{page.description}}"/>
         {% endif %}
         <link rel="alternate" type="application/rss+xml" title="Apache Software Foundation - Data Privacy RSS" href="/rss.xml" />
-        <link rel="stylesheet" href="css/main.css">
+        <link rel="stylesheet" href="/css/main.css">
         <title>{{ page.title }}</title>
     </head>
     <body>
diff --git a/_sass/main.scss b/_sass/main.scss
index dce0b22..095b2d2 100644
--- a/_sass/main.scss
+++ b/_sass/main.scss
@@ -17,10 +17,22 @@
 under the License.
 */
 
+$font: Helvetica, Arial, sans-serif;
+$main_background_color: #fff;
+$body_background_color: #f8f8f8;
+$color_text: #444;
+$color_link: #4643aa;
+$color_dropdown: #eee;
+$color_nav_item: #2f3036;
+$color_nav_hover: #1989c5;
+$color_header_text: #eee;
+
+
 html, body {
     width: 100%;
     height: 100%;
     margin: 0 auto;
+    background: $body_background_color;
 }
 
 body {
@@ -32,33 +44,142 @@
 
 header {
     display: grid;
-    grid-template-columns: 20% 80%;
-    border-top: 1em solid #282661;
-    padding: 0.5em;
+    grid-template-columns: 30% auto;
+    background: $color_nav_item;
+    padding: 0;
 
     .header-logo {
         display: flex;
     }
 
-    .header-logo svg {
-        max-height: 100px;
+    .header-logo img {
+        max-height: 48px;
     }
 
     .header-text {
         display: flex;
         align-items: center;
         font-size: 24px;
-        font-family: Helvetica, Arial, sans-serif;
+        font-family: $font;
+        color: $color_header_text;
+        padding-left: 20px;
+    }
+
+    @media screen and (max-width : 810px){
+            grid-template-columns: auto;
+            .header-logo {
+                width: 100%;
+                display: block;
+            }
+            .header-text {
+                display: block;
+            }
+            .header-logo img {
+                display: none;
+            }
+        }
+
+    nav {
+        ul {
+            list-style-type:none;
+            margin:0;
+            padding:0;
+            position: absolute;
+        }
+        li {
+            display:inline-block;
+            float: left;
+            margin-right: 1px;
+        }
+        li a {
+            display:block;
+            min-width:140px;
+            height: 48px;
+            text-align: center;
+            line-height: 48px;
+            font-family: $font;
+            color: #fff;
+            background: $color_nav_item;
+            text-decoration: none;
+        }
+
+        li:hover a {
+            background: $color_nav_hover;
+        }
+
+        li:hover ul a {
+            background: $color_dropdown;
+            color: $color_text;
+            height: 40px;
+            line-height: 40px;
+        }
+        li:hover ul a:hover {
+            background: $color_nav_hover;
+            color: #fff;
+        }
+        li ul {
+            display: none;
+        }
+        li ul li {
+            display: block;
+            float: none;
+        }
+        li ul li a {
+            width: auto;
+            min-width: 100px;
+            padding: 0 20px;
+        }
+        ul li a:hover + .hidden, .hidden:hover {
+            display: block;
+        }
+
+        .show-menu {
+            font-family: $font;
+            text-decoration: none;
+            color: #fff;
+            background: $color_nav_hover;
+            text-align: center;
+            padding: 10px 0;
+            display: none;
+        }
+        input[type=checkbox]{
+            display: none;
+            -webkit-appearance: none;
+        }
+        input[type=checkbox]:checked ~ #menu{
+            display: block;
+        }
+
+        @media screen and (max-width : 810px){
+            ul {
+                position: static;
+                display: none;
+            }
+            li {
+                margin-bottom: 1px;
+            }
+            ul li, li a {
+                width: 100%;
+            }
+            .show-menu {
+                display:block;
+            }
+        }
     }
 }
 
 footer {
-    background-color: #282661;
+    background-color: $color_nav_item;
     color: white;
     min-height: 100px;
 }
 
 main {
     padding: 0.5em;
-    font-family: Helvetica, Arial, sans-serif;
+    margin: 0 auto;
+    max-width: 85%;
+    min-width: 85%;
+    color: $color_text;
+    background: $main_background_color;
+    font-family: $font;
 }
diff --git a/faq/committers.md b/faq/committers.md
new file mode 100644
index 0000000..c77bf9a
--- /dev/null
+++ b/faq/committers.md
@@ -0,0 +1,107 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+# Committers FAQ
+
+## General Privacy Questions
+
+### What, if we receive a data removal request?
+
+If you receive removal requests for mailing lists or of a generic kind,
+please forward this message to privacy@apache.org. If you feel the email
+is of a sensitive kind or did not arrive on a mailing list, 
+please forward this message to vp-privacy@apache.org.
+
+You can reply to the original message that you have forwarded this request,
+but don't reply with any further information (confirmation of deletions etc).
+
+In example:
+
+"Dear sender,
+
+we have forwarded your message to Apache Software Foundation privacy committee,
+which will handle your request. You can always reach out to VP Data Privacy (vp-privacy@apache.org)
+or to the comittee directly (privacy@apache.org) if you have further questions.
+
+Kind regards,"
+
+
+
+## Project Websites
+
+### Can I use Google Analytics?
+
+The Apache Software Foundation discourages the use of Google Analytics.
+
+Google Analytics can only be used if:
+
+ - the users IP addressed would be anonymized before transmitting data
+ - the user approved the use of Google Analytics it was loaded
+
+Court decision around Google Analytics have changed various times
+in the past years and made it's use uncertain.
+
+### Can I use Google Fonts?
+
+You can use Google Fonts, but please host the fonts on ASF servers.
+
+ASF projects don't have any reasons to load Google Fonts from
+Google servers. Even [performance wise](https://wicki.io/posts/2020-11-goodbye-google-fonts/)
+there is no reason to use Google CDNs.
+
+To prevent any data being transmitted to a third party, please
+[download the fonts and host them with your project website](https://github.com/google/fonts#self-host-fonts-available-from-google-fonts).
+
+### Can I embed Google Maps?
+
+Yes, you can use Google Maps, but they should only be activated after the user
+actively wants to use them. This can be done by showing a placeholder first
+and load the map when the user clicks on it. Please make it transparent
+that users will load a Google Map with their click.
+
+### Can I embed videos (from YouTube, Vimeo, etc.)?
+
+Yes, you can embed videos on the website, but they should be loaded
+only after the user actively wants them to load. This can be done 
+by showing a placeholder first and load the video, when the user
+clicks on the placeholder. Please make it transparent that users
+will load video embeds from a third party.
+
+If you don't want placeholders please consider self-hosted videos
+and using an open source player like [Plyr on GitHub](https://github.com/sampotts/plyr).
+
+### Can I embed social plugins (in example Like-Buttons)?
+
+Yes, but you can only load them when users actively want them
+to load. There is multiple open source solutions helping with
+that problem, like [Shariff on GitHub](https://github.com/heiseonline/shariff).
+
+### Can we haven an official Facebook fan page?
+
+No. 
+
+You cannot run an official ASF Facebook page.
+
+The german [Datenschutzkonferenz decided on 2019-04-01](https://www.datenschutzkonferenz-online.de/media/dskb/20190405_positionierung_facebook_fanpages.pdf) that you cannot fulfill [Art. 5 §2](https://gdpr-info.eu/art-5-gdpr/). Also, it is not compatible with Art. 26. 
+
+### Can I add a Facebook/Twitter etc custom pixel for creating a custom audience?
+
+No, not without approval from your user.
diff --git a/faq/infrastructure.md b/faq/infrastructure.md
new file mode 100644
index 0000000..769a4cb
--- /dev/null
+++ b/faq/infrastructure.md
@@ -0,0 +1,49 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+# Infrastructure FAQ
+
+## When should I notify privacy@?
+
+All changes which may require an update in our terms or other privacy related
+documentation need to be reported to privacy@apache.org. In best case, with some 
+time between announcement and change.
+
+Examples for changes which may require privacy policy updates:
+
+ - adding a new service, like webhost server company
+ - removing a service, which may not be any longer in the terms
+ - changes to logfiles, in example when IP addresses are logged (which werent't before)
+ - moving data with PI to other services like a managed service
+ - a new domain was registered, transferred or removed
+
+Other notifications may be sent when:
+
+ - another office or committee requests user data from infra, which they may not access (like running analytics on diversification with a 3rd party)
+ - a security issue happened and user addresses and password have been stolen (data leaks in general)
+
+No notification is required when:
+
+ - new VMs are started or reorganized with companies which we already have an DPA for
+ - data is migrated from an outdated database version to a new version
+ - a CDN is setup with a company which we already have a DPA for and which is already mentioned in the terms
+ - a new project subdomain was created or removed
+ - a new user account was created or removed
diff --git a/images/asf-logo.png b/images/asf-logo.png
new file mode 100644
index 0000000..8a8e911
--- /dev/null
+++ b/images/asf-logo.png
Binary files differ
diff --git a/policies/asf-domains.md b/policies/asf-domains.md
new file mode 100644
index 0000000..25d0e34
--- /dev/null
+++ b/policies/asf-domains.md
@@ -0,0 +1,69 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+# Domains controlled by The Apache Software Foundation
+
+The following list represents all domains currently owned, maintained and
+controlled by The Apache Software Foundation:
+ 
+ - any23.com
+ - any23.org
+ - apache-extras.org
+ - apache.org
+ - apachecon.com
+ - apachecon.org
+ - apacheextras.org
+ - apachextras.org
+ - cloudstack.com
+ - cloudstack.org
+ - codehaus.org
+ - couchapp.com
+ - couchapp.org
+ - couchhack.org
+ - deltaspike.org
+ - feathercast.org
+ - freemarker.org
+ - gremlint.com
+ - groovy-lang.org
+ - ignite.run
+ - jclouds.com
+ - jclouds.net
+ - jclouds.org
+ - jspwiki.org
+ - libcloud.com
+ - libcloud.net
+ - libcloud.org
+ - modssl.com
+ - modssl.net
+ - myfaces.org
+ - netbeans.org
+ - ofbiz.org
+ - openoffice.org
+ - openwhisk.com
+ - openwhisk.net
+ - openwhisk.org
+ - projectgeode.org
+ - qi4j.org
+ - spamassassin.org
+ - subversion.com
+ - subversion.net
+ - subversion.org
+ - tinkerpop.com
diff --git a/policies/index.md b/policies/index.md
new file mode 100644
index 0000000..e8736e3
--- /dev/null
+++ b/policies/index.md
@@ -0,0 +1,32 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+# Available Policies
+
+## Privacy Policies 
+
+ - [Privacy Policy for public services](/policies/privacy-policy-public.html)
+ - Privacy Policy for committers
+
+## Internal Policies
+
+ - [Website Policy](/policies/website-policy.html)
+ - [Mailing List Policy](/policies/mailinglist-policy.html)
\ No newline at end of file
diff --git a/policies/mailinglist-policy.md b/policies/mailinglist-policy.md
new file mode 100644
index 0000000..e5fed01
--- /dev/null
+++ b/policies/mailinglist-policy.md
@@ -0,0 +1,82 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+**---> DRAFT VERSION**
+
+This policy describes restrictions for mailing lists managed by the
+ASF or hosted on ASF servers.
+
+## 1) Subscription Information
+
+When a user subscribes to a new mailing list, the following text need to be included 
+when asking for subscription confirmation:
+
+"By subscribing to this mailing list you agree to the privacy policies of 
+The Apache Software Foundation. The privacy policies can be found at:
+https://privacy.apache.org/policies/
+
+The subscriber is fully aware that message may be posted in public and distributed by 3rd parties. The subscriber is also aware, that private message lists will also be read by multiple people with appropriate access rights, like - but not exclusively - Foundation Members, Board Members, Officers etc..
+
+The subscriber is also fully aware that messages may not be (fully) removed from our archives if there is no strong reason to do so; also, we may decide to only remove parts of a message."
+
+## 2) Email distribution
+
+Every email send from our mailing list servers have a footer message with the text:
+"You receive this message because you are subscribed to &lt;listname&gt;. You can unsubscribe any time by sending a blank message to: &lt;listname&gt;-unsubscribe@&lt;subdomain&gt;.apache.org
+
+## 3) Message/Data removal
+
+Messages are only edited in rare occassions and when necessary from a privacy perspective.
+
+Messages need to be edited or removed, when personal information according to the GDPR or CCPA is disclosed and need to be removed. 
+
+This includes all data which makes it possible to identify a person. In example:
+
+ - full name
+ - email address
+ - phone number
+ - address, city, country of origin
+ - ethnicity
+ - medical conditions
+ - etc
+
+Messages are not considered for removal when data is not related to a person:
+
+ - login names (if it is not a real name) 
+ - ssh passwords
+ - production IP addresses
+ - machine names 
+ - URLs 
+
+Please not that any edit to our archives does not automatically edit the archives of 3rd party services which mirror our archives. A requestors will need to contact mirror services themselves.
+
+## 4) Procedures for archive modifications
+
+A removal request need to be sent to privacy@apache.org (private, but archived list) or directly sent to vp-privacy@apache.org. Please note that you request will be documented for future reference.
+
+Please include the following:
+
+ - country of residence, to apply the right data privacy laws
+ - the list of messages to be removed or edited
+
+After submitting the request, VP Data Privacy will confirm it's receipt and discuss appropriate solutions with the Infrastructure team.
+
+Please note: The Apache Software Foundation is a volunteer organization; we do our best to handle each request as quickly as we can.
\ No newline at end of file
diff --git a/policies/privacy-policy-committer.md b/policies/privacy-policy-committer.md
new file mode 100644
index 0000000..fb82ce3
--- /dev/null
+++ b/policies/privacy-policy-committer.md
@@ -0,0 +1,43 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+**---> DRAFT VERSION**
+
+
+This Privacy Policy clarifies the nature, scope and purpose of the processing of personal data (hereinafter referred to as "Data") within our online offering and the related websites, features and content, as well as external online presence, e.g. our social media profiles on. (collectively referred to as "online offer"). With regard to the terminology used, e.g. "Processing" or "Responsible", we refer to the definitions in Article 4 of the General Data Protection Regulation (GDPR).
+
+## 1.  Name and contact details of the controller and the company data protection officer
+
+This privacy policy applies to data processing by:
+
+Responsible:    
+
+The Apache Software Foundation  
+V. P. Data Privacy  
+1000 N West Street, Suite 1200  
+Wilmington, DE  19801  
+U.S.A.  
+
+E-Mail: vp-privacy@apache.org
+
+##  2. Collection and storage of personal data and the nature and purpose of their use
+
+TODO
diff --git a/policies/privacy-policy-public.md b/policies/privacy-policy-public.md
new file mode 100644
index 0000000..dc2a40b
--- /dev/null
+++ b/policies/privacy-policy-public.md
@@ -0,0 +1,193 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+**---> DRAFT VERSION**
+
+
+This Privacy Policy clarifies the nature, scope and purpose of the processing of personal data (hereinafter referred to as "Data") within our online offering and the related websites, features and content, as well as external online presence, e.g. our social media profiles on. (collectively referred to as "online offer"). With regard to the terminology used, e.g. "Processing" or "Responsible", we refer to the definitions in Article 4 of the General Data Protection Regulation (GDPR).
+
+## 1.  Name and contact details of the controller and the company data protection officer
+
+This privacy policy applies to data processing by:
+
+Responsible:    
+
+The Apache Software Foundation  
+V. P. Data Privacy  
+1000 N West Street, Suite 1200  
+Wilmington, DE  19801  
+U.S.A.  
+
+E-Mail: vp-privacy@apache.org
+
+##  2. Collection and storage of personal data and the nature and purpose of their use
+
+### a) When visiting the website
+
+When you visit our websites ([full list of websites](/policies/asf-domains.html)) or one of our subdomains, the browser used on your device automatically sends information to the server of our website. This information is temporarily stored in a so-called log file. The following information will be collected without your intervention and stored until automated deletion:
+
+ - IP address of the requesting computer,
+ - date and time of access,
+ - name and URL of the retrieved file,
+ - website from which access is made (referrer URL),
+ - the geo information from which access is made,
+ - The browser used and, if applicable, the operating system of your computer and the name of your access provider.
+
+The data mentioned are processed by us for the following purposes:
+
+ - ensuring a smooth connection of the website,
+ - ensuring comfortable use of our website,
+ - Evaluation of system security and stability as well
+ - for further administrative purposes.
+
+The retention time for this data is 90 days.
+
+The legal basis for data processing is Art. 6 para. 1 p. 1 lit. f GDPR. Our legitimate interest follows from the data collection purposes listed above. In no case we use the collected data for the purpose of drawing conclusions about you.
+In addition, we use cookies and analysis services when visiting our website. Further details can be found under no. 4 and 5 of this privacy policy.
+
+### b) When registering for our newsletter and mailing lists
+
+If, pursuant to Art. 6 para. 1 sentence 1 lit. a GDPR have expressly consented, we use your e-mail address to regularly send you our newsletter. For the receipt of the newsletter the indication of an e-mail address is sufficient.
+
+We inform our visitors at regular intervals through newsletters about news and offers from The Apache Software Foundation.
+
+The newsletter of our company can only be received if (1) the data subject has a valid e-mail address and (2) the person concerned registers for the newsletter. For legal reasons, a confirmation e-mail will be sent to the e-mail address entered by an affected person for the first time for newsletter mailing using the double-opt-in procedure. This confirmation email is used to check whether the owner of the e-mail address as the person concerned authorized the receipt of the newsletter.
+
+When subscribing to the newsletter, we store the date and time of registration and the email address. The collection of this data is necessary in order to understand the (possible) misuse of an affected person's e-mail address at a later date and therefore serves as legal safeguards for the controller.
+
+The personal data collected in the context of registering for the newsletter will be used exclusively to send our newsletter. 
+
+Subscribers may also be notified by e-mail if this is necessary for the operation of the newsletter service or registration, as might be the case in the event of changes to the newsletter/mailing list or technical changes. 
+
+There will be no transfer of the personal data collected as part of the newsletter service to third parties.
+
+Subscription to our newsletter may be terminated by the person concerned at any time. The consent to the storage of personal data that the data subject has given us for the newsletter dispatch can be revoked at any time. For the purpose of revoking the consent, instructions are given by the end of any email. 
+
+### c) When registering for our mailing lists
+
+If, pursuant to Art. 6 para. 1 sentence 1 lit. a GDPR have expressly consented, we use your e-mail address to send you messages arriving at our mailing lists. For the receipt of the mailing list message the indication of an e-mail address is sufficient.
+
+Visitors may communicate with us through our mailing lists.
+
+The mailing list messages of our organisation can only be received if (1) the data subject has a valid e-mail address and (2) the person concerned registers for the mailing list. For legal reasons, a confirmation e-mail will be sent to the e-mail address entered by an affected person for the first time using the double-opt-in procedure. This confirmation email is used to check whether the owner of the e-mail address as the person concerned authorized the receipt of the mailing list messages.
+
+When subscribing to the mailing list, we store the date and time of registration and the email address. The collection of this data is necessary in order to understand the (possible) misuse of an affected person's e-mail address at a later date and therefore serves as legal safeguards for the controller. When a mailing list is archived, the log file will be deleted.
+
+The personal data collected in the context of registering for the mailing list will be used exclusively to send messages arriving at the mailing list. The personal data collected in the context of registering for a mailing list will be used exclusively to send messages arriving at our mailing list. 
+
+Subscribers may also be notified by e-mail if this is necessary for the operation of the mailing list service or registration, as might be the case in the event of changes to the mailing list or technical changes. 
+
+We will not actively transfer any personal data as part of the mailing list service to third parties. However, almost all of our mailing lists are of public nature.
+
+This means, your name and email may be exposed to the public. Also, all information you send to a mailing list will be exposed to the public. Third parties may collect this information and process separately. The sender of messages is responsible for exposing their data to the public.
+
+All content sent to mailing lists are archived indefinitely. By using our mailing list service, you agree that any content is archived in that way.
+
+Subscription to our mailing lists may be terminated by the person concerned at any time. The consent to the storage of personal data that the data subject has given us for the mailing list dispatch can be revoked at any time. For the purpose of revoking the consent, instructions are given by the end of any email. 
+
+## 3. Disclosure of data
+
+A transfer of your personal data to third parties for purposes other than those listed below does not take place.
+We only share your personal information with third parties if:
+
+ - You your according to Art. 6 para. 1 p. 1 lit. a GDPR have given express consent to this
+ - disclosure pursuant to Art. 6 para. 1 sentence 1 lit. f GDPR is required to assert, exercise or defend legal claims and there is no reason to assume that you have a predominantly legitimate interest in not disclosing your data,
+ - in the event that disclosure pursuant to Art. 6 para. 1 sentence 1 lit. c GDPR is a legal obligation, as well
+ - as permitted by law and according to Art. 6 para. 1 sentence 1 lit. b GDPR is required for the settlement of contractual relationships with you.
+
+## 4. External service providers
+
+The Apache Software Foundation uses the following external service providers who help to optimize the service. Insofar as these service providers process data on behalf of The Apache Software Foundation, agreements have been concluded with them which set the European data protection standards as binding and in particular prohibit the use of the data for other purposes. If we commission third parties to process data on the basis of a so-called "contract processing contract", this is done on the basis of Art. 28 GDPR.
+
+### (a) Hetzner: Hosting 
+
+The Apache Software Foundation uses the Hetzner Data Centers (Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Germany) for maintaining our servers. The servers are located in Finland and used for hosting databases and webcontent. 
+
+### (b) Amazon Web Services: DNS
+The Apache Software Foundation uses the Amazon Web Services ("AWS") service of Amazon Web Services, Inc. (P.O. Box 81226, Seattle, WA 98108-1226, USA), for hosting DNS records. As by the nature of DNS, the data is stored in several server accross the globe. AWS data centers are certified to ISO 27001, 27017 and 2018 as well as PCI DSS Level 1.
+
+### (c) LeaseWeb: Hosting 
+
+The Apache Software Foundation uses the LeaseWeb Data Centers (Leaseweb USA, Inc., 9301 Innovation Drive / Suite 100, Manassas, VA 20110) for maintaining our servers. The servers are located in the USA and used for hosting databases and webcontent. LeaseWeb fully supports the GDPR. Details and privacy statements can be found [here](https://www.leaseweb.us/legal/personal-data-protection-acts).
+
+### (d) Microsoft Azure: Hosting 
+
+The Apache Software Foundation uses the Microsoft Azure Data Centers (Microsoft Corporation, One Microsoft Way, Redmond, Washington 98052 USA) for maintaining our servers. The servers are located in the USA and used for hosting databases and webcontent. Microsoft fully supports the GDPR. Details and privacy statements can be found [here](https://www.microsoftvolumelicensing.com/DocumentSearch.aspx?Mode=3&DocumentTypeId=67).
+
+### (d) Online.net (Scaleway): Hosting 
+
+The Apache Software Foundation uses the Scaleway Data Centers (Scaleway S.A.S., 8 rue de la Ville l’Evêque, 75008 Paris) for maintaining our servers. The servers are located in Europe and used for hosting databases and webcontent. Scaleway fully supports the GDPR. Details and privacy statements can be found [here](https://images-www.scaleway.com/wp-content/uploads/2021/05/05103001/DPA_EN_2020.pdf).
+
+
+### (e) GitHub: Source Code Hosting 
+
+The Apache Software Foundation uses the GitHub Services (GitHub Inc., 88 Colin P. Kelly Jr. Street, San Francisco, California 94107 USA) for serving and maintaining source code. GitHub fully supports the GDPR. Details and privacy statements can be found [here](https://github.com/enterprise-legal/github-addendum-to-microsoft-dpa).
+
+### (f) Fastly: CDN
+
+The Apache Software Foundation uses the GitHub Services (Fastly Inc., PO Box 78266, San Francisco, California, 94107, United States of America) for serving our services. Fastly fully supports the GDPR. Details and privacy statements can be found [here](https://www.fastly.com/data-processing).
+
+
+## 5. Social Media Plug-ins
+
+We rely on our website on the basis of Art. 6 para. 1 sentence 1 lit. f GDPR social plug-ins from the social networks Facebook, Twitter and Instagram to make our company better known. The underlying commercial purpose is to be regarded as a legitimate interest within the meaning of the GDPR. Responsibility for the operation compliant with data protection is to be guaranteed by their respective providers. The integration of these plug-ins by us is done by means of the so-called two-click method to protect visitors to our website in the best possible way.
+
+### a) Youtube
+
+On our website we have integrated components from YouTube. YouTube is an internet video portal that allows video publishers to freely watch video clips and other users for free viewing, rating and commenting. YouTube allows the publication of all types of videos, so that both complete film and television broadcasts, but also music videos, trailers or user-made videos via the Internet portal are available.
+
+YouTube's operating company is YouTube, LLC, 901 Cherry Ave., San Bruno, CA 94066, USA. YouTube, LLC is a subsidiary of Google Inc., 1600 Amphitheater Pkwy, Mountain View, CA 94043-1351, USA.
+
+Each visit to one of the pages of this site operated by the controller and incorporating a YouTube component (YouTube video) will automatically cause the Internet browser on the subject's information technology system to be represented by the respective YouTube component to download an illustration of the corresponding YouTube component from YouTube. More information about YouTube can be found at https://www.youtube.com/yt/about/en/. As part of this technical process, YouTube and Google are aware of the specific bottom of our site visited by the person concerned.
+If the data subject is logged in to YouTube at the same time, YouTube recognizes by calling a sub-page containing a YouTube video, which specific bottom of our website the affected person visits. This information is collected by YouTube and Google and associated with the individual YouTube account.
+
+YouTube and Google will always receive information through the YouTube component that the data subject has visited our website if the data subject is simultaneously logged into YouTube at the time of access to our website; this happens regardless of whether the person clicks on a YouTube video or not. If such transmission of this information to YouTube and Google is not wanted by the data subject, it can prevent the transmission by logging out of their YouTube account before calling our website.
+
+YouTube's privacy policy, available at https://www.google.com/intl/en/policies/privacy/, identifies the collection, processing, and use of personally identifiable information by YouTube and Google.
+
+## 7. Affected rights
+
+You have the right:
+
+ - in accordance with Art. 15 GDPR, to request information about your personal data processed by us. In particular, you can provide information on the processing purposes, the category of personal data, the categories of recipients to whom your data has been disclosed, the planned retention period, the right to rectification, deletion, limitation of processing or opposition, the existence of a The right to complain, the source of their data, if not collected from us, and the existence of automated decision-making including profiling and, where appropriate, meaningful information about their details;
+ - in accordance with Art. 16 GDPR, immediately demand the correction of incorrect or complete personal data stored with us;
+ - in accordance with Art. 17 GDPR, to demand the deletion of your personal data stored by us, unless the processing for the exercise of the right to freedom of expression and information, for the fulfillment of a legal obligation, for reasons of public interest or for the assertion, exercise or defense of Legal claims is required;
+ - to demand the restriction of the processing of your personal data according to Art. 18 GDPR, as far as the accuracy of the data is disputed by you, the processing is unlawful, but you reject its deletion and we no longer need the data, but you assert this, Exercise or defense of legal claims or you have objected to the processing in accordance with Art. 21 GDPR;
+ - in accordance with Art. 20 GDPR, to receive your personal data provided to us in a structured, standard and machine-readable format or to request transmission to another person responsible;
+ - according to Art. 7 para. 3 GDPR, to revoke your once given consent to us at any time. As a result, we are not allowed to continue the data processing based on this consent for the future and
+ - to complain to a supervisory authority pursuant to Art. 77 GDPR. As a rule, you can contact the supervisory authority of your usual place of residence or work or our office.
+
+## 8. Right to object
+
+If your personal data are based on legitimate interests in accordance with Art. 6 para. 1 sentence 1 lit. f GDPR are processed, you have the right to file an objection against the processing of your personal data in accordance with Art. 21 GDPR, provided that there are reasons for this arising from your particular situation or the objection is directed against direct mail. In the latter case, you have a general right of objection, which is implemented by us without specifying any particular situation.
+If you would like to exercise your right of revocation or objection, please send an e-mail to vp-privacy@apache.org.
+
+## 9. Data security
+
+We use the popular SSL (Secure Socket Layer) method within the site visit, in conjunction with the highest level of encryption supported by your browser. In general, this is a 256-bit encryption. If your browser does not support 256-bit encryption, we'll use 128-bit v3 technology instead. Whether a single page of our website is encrypted is shown by the closed representation of the key or lock icon in the lower status bar of your browser.
+
+We also take appropriate technical and organizational security measures to protect your data against accidental or intentional manipulation, partial or total loss, destruction or against unauthorized access by third parties. Our security measures are continuously improved in line with technological developments.
+
+## 10. Updating and changing this privacy policy
+
+This privacy policy is currently valid and is valid as of **TODO: VALIDITY DATE**.
+
+As a result of the further development of our website and offers thereof or due to changed legal or official requirements, it may be necessary to change this privacy policy. The current privacy policy can be viewed and printed by you at any time on the website at https://privacy.apache.org/policies/privacy-policy-public.html.
\ No newline at end of file
diff --git a/policies/website-policy.md b/policies/website-policy.md
new file mode 100644
index 0000000..991bcfb
--- /dev/null
+++ b/policies/website-policy.md
@@ -0,0 +1,63 @@
+---
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+layout: default
+---
+
+**---> DRAFT VERSION**
+
+This policy describes restrictions for websites managed by the
+ASF or hosted on ASF servers.
+
+## 1) Analytics
+
+All analytics software embedded on a website needs to be confirmed by
+V.P. Data Privacy. Analytics software need to support the GDPR and a
+DPA need to be signed before it can be used. 
+
+Note: Google Analytics cannot be used on any ASF website because
+of Schrems-II.
+
+## 2) YouTube
+
+YouTube content can be embedded only when the user gave consent before loading
+any file from YouTube.
+
+## 3) Cookies
+
+No cookies are allowed, except the user gave consent before setting the cookie.
+
+If the cookie is not used for tracking, but used for managing a so called session, no user content is necessary.
+
+## 4) Using Assets from other Domains
+
+Assets (JS, Images, Fonts, CSS etc) from other domains cannot be loaded. Assets
+need to be hosted on ASF servers.
+
+## 5) (Google) Maps 
+
+(Google) can usually be used, when the user gave consent before loading.
+
+## 6) Social Media
+
+Social Media buttons (Facebook Like, showing Instagram embeds, Twitter pixel) can
+only be used when the user gave consent before loading.
+
+## 7) Facebook Pages
+
+ASF Projects cannot run Facebook pages due to Art. 5 §2 and Art. 26 of the GDPR.
