diff --git a/Idno/Core/Idno.php b/Idno/Core/Idno.php
index fcc129cdb2..929352a07a 100644
--- a/Idno/Core/Idno.php
+++ b/Idno/Core/Idno.php
@@ -149,6 +149,9 @@ function registerpages()
$this->addPageHandler('/share/?', '\Idno\Pages\Entity\Share');
$this->addPageHandler('/bookmarklet\.js', '\Idno\Pages\Entity\Bookmarklet', true);
+ /** Mobile integrations */
+ $this->addPageHandler('/chrome/manifest\.json', '\Idno\Pages\Chrome\Manifest', true);
+
/** Files */
$this->addPageHandler('/file/upload/?', '\Idno\Pages\File\Upload', true);
$this->addPageHandler('/file/picker/?', '\Idno\Pages\File\Picker', true);
diff --git a/Idno/Pages/Chrome/Manifest.php b/Idno/Pages/Chrome/Manifest.php
new file mode 100644
index 0000000000..4d1ebe7983
--- /dev/null
+++ b/Idno/Pages/Chrome/Manifest.php
@@ -0,0 +1,17 @@
+template()->draw('chrome/manifest');
+
+ }
+
+ }
+
+ }
\ No newline at end of file
diff --git a/chrome/service-worker.js b/chrome/service-worker.js
new file mode 100644
index 0000000000..b8d9a80e52
--- /dev/null
+++ b/chrome/service-worker.js
@@ -0,0 +1,3 @@
+/*
+ Nothing to see here ...
+ */
\ No newline at end of file
diff --git a/gfx/logos/logo_k_144.png b/gfx/logos/logo_k_144.png
new file mode 100644
index 0000000000..3cc8916991
Binary files /dev/null and b/gfx/logos/logo_k_144.png differ
diff --git a/gfx/logos/logo_k_192.png b/gfx/logos/logo_k_192.png
new file mode 100644
index 0000000000..3cbe0906ed
Binary files /dev/null and b/gfx/logos/logo_k_192.png differ
diff --git a/gfx/logos/logo_k_36.png b/gfx/logos/logo_k_36.png
new file mode 100644
index 0000000000..13db3bbe51
Binary files /dev/null and b/gfx/logos/logo_k_36.png differ
diff --git a/gfx/logos/logo_k_48.png b/gfx/logos/logo_k_48.png
new file mode 100644
index 0000000000..c32f91c536
Binary files /dev/null and b/gfx/logos/logo_k_48.png differ
diff --git a/gfx/logos/logo_k_72.png b/gfx/logos/logo_k_72.png
new file mode 100644
index 0000000000..23259d39b3
Binary files /dev/null and b/gfx/logos/logo_k_72.png differ
diff --git a/gfx/logos/logo_k_96.png b/gfx/logos/logo_k_96.png
new file mode 100644
index 0000000000..cf755352cf
Binary files /dev/null and b/gfx/logos/logo_k_96.png differ
diff --git a/templates/default/chrome/manifest.tpl.php b/templates/default/chrome/manifest.tpl.php
new file mode 100644
index 0000000000..be3670b51e
--- /dev/null
+++ b/templates/default/chrome/manifest.tpl.php
@@ -0,0 +1,43 @@
+
+{
+"name": "=htmlspecialchars(\Idno\Core\site()->config()->getTitle())?>",
+"short_name": "=htmlspecialchars(\Idno\Core\site()->config()->getTitle())?>",
+"icons": [
+{
+"src": "=\Idno\Core\site()->config()->getDisplayURL()?>gfx/logos/logo_k_36.png",
+"sizes": "36x36",
+"type": "image/png"
+},
+{
+"src": "=\Idno\Core\site()->config()->getDisplayURL()?>gfx/logos/logo_k_48.png",
+"sizes": "48x48",
+"type": "image/png"
+},
+{
+"src": "=\Idno\Core\site()->config()->getDisplayURL()?>gfx/logos/logo_k_72.png",
+"sizes": "72x72",
+"type": "image/png"
+},
+{
+"src": "=\Idno\Core\site()->config()->getDisplayURL()?>gfx/logos/logo_k_96.png",
+"sizes": "96x96",
+"type": "image/png"
+},
+{
+"src": "=\Idno\Core\site()->config()->getDisplayURL()?>gfx/logos/logo_k_144.png",
+"sizes": "144x144",
+"type": "image/png"
+},
+{
+"src": "=\Idno\Core\site()->config()->getDisplayURL()?>gfx/logos/logo_k_192.png",
+"sizes": "192x192",
+"type": "image/png"
+}
+],
+"start_url": "../",
+"display": "standalone"
+}
diff --git a/templates/default/shell.tpl.php b/templates/default/shell.tpl.php
index b1e5bf780a..57b01c67b6 100644
--- a/templates/default/shell.tpl.php
+++ b/templates/default/shell.tpl.php
@@ -25,6 +25,27 @@
= $this->draw('shell/favicon'); ?>
session()->isLoggedIn()) {
+
+ ?>
+
+
+ 'website',
'og:title' => htmlspecialchars(strip_tags($vars['title'])),