diff --git a/bgpwtf/landing/pricing.html b/bgpwtf/landing/pricing.html
new file mode 100644
index 0000000..bea48b0
--- /dev/null
+++ b/bgpwtf/landing/pricing.html
@@ -0,0 +1,148 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <title>Warsaw Hackerspace Hosting Services</title>
+    <style type="text/css">
+body {
+  background-color: #f8f8f8;
+  font-family: courier, monospace;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+#page {
+  max-width: 50em;
+  font-size: 1.0em;
+  line-height: 1.5em;
+}
+h2 {
+  margin-top: 2.5em;
+}
+h3 {
+  margin-top: 2em;
+}
+    </style>
+  </head>
+  <body>
+    <div id="page">
+      <h1>Warsaw Hackerspace Hosting Services</h1>
+      <div style="float: right"><a href="/?lang=pl">PL</a> | <a href="/?lang=en">EN</a></div>
+      <p>
+        Nine Fives SLA for the masses.
+      </p>
+
+      <h2>What is this?</h2>
+      <p>
+        The <a href="https://hackerspace.pl/about_en">Warsaw Hackerspace</a> is a Non-Profit, Non-Governmental Organization from Warsaw that runs a bunch of infrastructure for its own needs. In order to make back some of our expenses (network connection, cooling, ...), we decided to start renting out some of our services to outside customers. All of the proceeds will go towards the statuatory goals of the Organization: maintaining and expanding our hackerspace, teaching and education, running classes and generally making the world a better place.
+      </p>
+      <p>
+        Give us money, receive rack space or dedicated servers. And most importantly, <b>a warm fuzzy feeling from supporting a hackerspace</b> &lt;3.
+      </p>
+      <p>
+        Remember, we're a Hackerspace. While we try to maintain as high as un uptime as possible, power and Internet interruptions are always an option, as we do not (yet) have any redundancy in place. So yeah, no warranty. Seriously. If we're down for more than 5% of a given month, your bill will be proportionately lowered to match our downtime - we're not monsters, after all.
+      </p>
+      <h2>Ordering</h2>
+      <p>
+        Contact us at <b>noc@hackerspace.pl</b> and tell us who you are and what you need. We'll respond with a final quote and our world famous NO WARRANTY, NO SLA, NO NOTHING agreement. What follows are list prices in EUR, <b>net (add 23% VAT unless you're a registered EU company with a VAT number)</b>.
+      </p>
+      <h2>Colocation</h2>
+      <p>
+        We can throw your hardware into one of our 42U racks. We'll provide you power and a way to monitor and manage it. Bring your own KVM/iKVM, or rely on lazy remote hands. We measure power usage via a kill-a-watt, and you're billed monthly based on the power you use.
+      </p>
+      <p>
+        <b>What you get</b>:
+        <ul>
+          <li>19" rack space <i>(we do not accept non-rack hardware unless it's something really cool)</i></li>
+          <li>230V AC 50Hz via a C14 plug on a 16A circuit</li>
+          <li>1GbE (copper) or 10GbE (SFP+) switch port <i>(includes best effort Internet access)</i></li>
+        </ul>
+        <b>Pricing</b>: €20 per month per rack unit. €0.25 per KWh.
+      </p>
+      <h2>Dedicated Servers</h2>
+      <p>
+        We have some servers that we can rent you out. We'll provide you with a way to manage the power on it, remotely reinstall the operating system. Some of the machines also come with integrated KVM.
+      </p>
+      <p>
+       <h3>BL-BASE</h3>
+        A Dell M610 blade server.
+        <ul>
+          <li>Xeon L5520 @2.27GHz, 8c/16t</li>
+          <li>24GB RAM ECC</li>
+          <li>2x 140GB SAS <i>(used - use RAID1!)</i></li>
+          <li>KVM <i>(power control, console, keyboard, mouse, ISO mount)</i></li>
+          <li>Hardware RAID controller with BBU(PERC)</li>
+          <li>2x Gigabit Ethernet</li>
+        </ul>
+        <b>Pricing</b>: €45 per month.
+      </p>
+      <p>
+       <h3>BL-64-SSD</h3>
+        A souped-up Dell M610 blade server.
+        <ul>
+          <li>Xeon L5520 @2.27GHz, 8c/16t</li>
+          <li>64GB RAM ECC</li>
+          <li>2x 480GB consumer MLC SSD</li>
+          <li>KVM <i>(power control, console, keyboard, mouse, ISO mount)</i></li>
+          <li>Hardware RAID controller with BBU (PERC)</li>
+          <li>2x Gigabit Ethernet</li>
+        </ul>
+        <b>Pricing</b>: €55 per month.
+      </p>
+      <p>
+       <h3>BL-64-HDD</h3>
+        A further souped-up Dell M610 blade server.
+        <ul>
+          <li>Xeon L5520 @2.27GHz, 8c/16t</li>
+          <li>64GB RAM ECC</li>
+          <li>2x 2TB consumer 2.5" HDD</li>
+          <li>KVM <i>(power control, console, keyboard, mouse, ISO mount)</i></li>
+          <li>Hardware RAID controller with BBU (PERC)</li>
+          <li>2x Gigabit Ethernet</li>
+        </ul>
+        <b>Pricing</b>: €65 per month.
+      </p>
+      <p>
+       <h3>KEKTOP</h3>
+        <p>
+          Way back when, the Hackerspace acquired a whole bunch a Nettop-class machines that used to display advertising in Warsaw taxicabs. After christening them as 'kektops' (hey, that was before the world went to shit), we have decided to rack them up in a custom enclosure with power management, and turned them into a perfect VPS-class dedicated server.
+        </p>
+        <p>
+          Even though the seem underpowered at first glance, they are fairly capable - much more so than a Raspberry Pi, for instance. They make perfect little servers for hosting a blog or small service. Just make sure to get two for redundancy :).
+        </p>
+        <ul>
+          <li>Intel Atom @1.60GHz, 1c/2t</li>
+          <li>2GB RAM</li>
+          <li>16GB SSD</li>
+          <li>Gigabit Ethernet</li>
+        </ul>
+        <b>Pricing</b>: €10 per month + Internet.
+      </p>
+      <h2>Internet Access</h2>
+      <p>
+        We provide upstream via <a href="https://bgp.wtf/">bgp.wtf/AS204880</a>, which has decent connectivity with Poland and to the world (upstreams are Level 3, Telia, GTT, RETN, DE-CIX). We also have direct peering with Google (AS15169), and are present in KleyReX and LocIX.
+      </p>
+      <p>
+         Currently our main upstream circuit is 1GbE, with plans to upgrade to 10GbE as soon as enough commitment is purchased by customers.
+      </p>
+      <p>
+        As we're a registered ISP, we are governed by laws requiring us to provide LEAs with identifying information about customers if a warrant is served for illegal activity. Thus, we will need to collect such some personal information from you (name, address, phone number). The Hackerspace is under the jurisdiction of Polish law.
+      </p>
+      <p>
+        We have a zero tolerance policy towards spam. Customers not responsive to abuse@ requests will have their contract immediately terminated.
+      <p>
+        <b>What you get</b>:
+        <ul>
+          <li>A public IPv4 address and a /64 or /48 of IPv6 addresses</li>
+          <li>Reverse DNS</li>
+          <li>Speed burstable to wire speed of the switch/machine</li>
+        </ul>
+        <b>Pricing</b>: €7 for every 10Mbps of Internet bandwidth committment (can be shared across all of your services).
+      </p>
+      <h2>Extra Features</h2>
+      <p>
+        Contact us for any extra features, like BGP routing, VLANs, extra addresses, ASN sponsorship, ...
+      </p>
+    </div>
+  </body>
+</html>
