diff --git a/app.yaml b/app.yaml
index 4d3776f..f2e9fae 100644
--- a/app.yaml
+++ b/app.yaml
@@ -36,6 +36,15 @@ handlers:
- url: /
static_files: static/index.html
upload: static/index.html
+ expiration: 1m
+
+- url: /favicon.ico
+ static_files: static/favicon.ico
+ upload: static/favicon.ico
+
+- url: /robots.txt
+ static_files: static/robots.txt
+ upload: static/robots.txt
# dynamic
- url: /wm/.+
diff --git a/static/activitypub_logo.svg b/static/activitypub_logo.svg
new file mode 100644
index 0000000..f56d428
--- /dev/null
+++ b/static/activitypub_logo.svg
@@ -0,0 +1,288 @@
+
+
+
+
diff --git a/static/bridgy_logo.jpg b/static/bridgy_logo.jpg
new file mode 100644
index 0000000..9ac70de
Binary files /dev/null and b/static/bridgy_logo.jpg differ
diff --git a/static/favicon.ico b/static/favicon.ico
new file mode 100644
index 0000000..0aee3af
Binary files /dev/null and b/static/favicon.ico differ
diff --git a/static/index.html b/static/index.html
index 1333ed7..2042886 100644
--- a/static/index.html
+++ b/static/index.html
@@ -1 +1,68 @@
-TODO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bridgy Fed connects the IndieWeb with federated social networks using ActivityPub and OStatus:
+
+
+
+
+
+Docs: TODO
+
+
+
+
+
+
+
+
diff --git a/static/ostatus_logo.png b/static/ostatus_logo.png
new file mode 100644
index 0000000..6a69e25
Binary files /dev/null and b/static/ostatus_logo.png differ
diff --git a/static/robots.txt b/static/robots.txt
new file mode 100644
index 0000000..7153924
--- /dev/null
+++ b/static/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /*?*
diff --git a/static/style.css b/static/style.css
new file mode 100644
index 0000000..fc7fea2
--- /dev/null
+++ b/static/style.css
@@ -0,0 +1,92 @@
+#intro {
+ margin-top: 2em;
+}
+
+@media (max-width: 600px) {
+ #logo {
+ float: left;
+ }
+ #header {
+ float: none;
+ width: 100%;
+ }
+}
+
+.big {
+ font-size: 1.5em;
+}
+
+.small {
+ font-size: .8em;
+}
+
+#header {
+ text-align: left;
+}
+
+#header br {
+ display: none;
+}
+
+@media (min-width: 768px) {
+ #header br {
+ display: inline;
+ }
+}
+
+#title {
+ font-weight: normal;
+}
+
+.row {
+ text-align: center;
+}
+
+#top {
+ margin-bottom: 1em;
+}
+
+label {
+ /* override Bootstrap style */
+ font-weight: 300;
+}
+
+#sites li {
+ display: inline;
+}
+
+#sites li::before {
+ content: "\2022 \00A0";
+}
+
+#sites li:first-child::before {
+ content: none;
+}
+
+#footer {
+ margin-top: 2em;
+ margin-bottom: 1em;
+ text-align: right;
+}
+
+.shadow {
+ -moz-box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
+ -webkit-box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
+ /* CSS3 */
+ box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
+ /* For IE 8 */
+ -ms-filter: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color='#666666');
+ /* For IE 5.5 - 7 */
+ filter: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color='#666666');
+}
+
+.shadow:hover {
+ -moz-box-shadow: 2px 2px 4px rgba(0,0,0,0.8);
+ -webkit-box-shadow: 2px 2px 4px rgba(0,0,0,0.8);
+ /* CSS3 */
+ box-shadow: 2px 2px 4px rgba(0,0,0,0.8);
+ /* For IE 8 */
+ -ms-filter: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color='#222222');
+ /* For IE 5.5 - 7 */
+ filter: progid:DXImageTransform.Microsoft.Shadow(Strength=2,Direction=135,Color='#222222');
+}