diff --git a/core/css/public.scss b/core/css/public.scss
new file mode 100644
index 0000000000000000000000000000000000000000..3651e701c343a9efa7005da5cc9f569a2aac2c80
--- /dev/null
+++ b/core/css/public.scss
@@ -0,0 +1,22 @@
+#body-public {
+  .header-right {
+
+    span:not(.popovermenu) a {
+      color: $color-primary-text;
+    }
+
+    .menutoggle,
+    #header-primary-action[class^='icon-'] {
+      padding: 14px;
+      padding-right: 40px;
+      background-position: right 15px center;
+      color: $color-primary-text;
+      cursor: pointer;
+    }
+
+    .menutoggle {
+      padding-right: 10px;
+    }
+
+  }
+}
\ No newline at end of file
diff --git a/core/css/server.scss b/core/css/server.scss
index 516220f2ad5ec865494221beca0bc0157d09e682..9b512038015944a950e93e8d3489cf6ed00abf6e 100644
--- a/core/css/server.scss
+++ b/core/css/server.scss
@@ -9,3 +9,4 @@
 @import 'multiselect.scss';
 @import 'mobile.scss';
 @import 'tooltip.scss';
+@import 'public.scss';
\ No newline at end of file
diff --git a/core/js/core.json b/core/js/core.json
index 6cf6a2489ed56b615a7572926d9f9896f7fabf51..9da91a7f6391b9a244d6232e79701017b7d8f71c 100644
--- a/core/js/core.json
+++ b/core/js/core.json
@@ -46,6 +46,7 @@
 		"config.js",
 		"public/appconfig.js",
 		"public/comments.js",
+		"public/publicpage.js",
 		"multiselect.js",
 		"oc-requesttoken.js",
 		"setupchecks.js",
diff --git a/core/js/public/publicpage.js b/core/js/public/publicpage.js
new file mode 100644
index 0000000000000000000000000000000000000000..31b862ba12a42ced2828b19f4de725a7884fd5cd
--- /dev/null
+++ b/core/js/public/publicpage.js
@@ -0,0 +1,29 @@
+/*
+ * @copyright Copyright (c) 2018 Julius HÃĪrtl <jus@bitgrid.net>
+ *
+ * @author Julius HÃĪrtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU Affero General Public License as
+ *  published by the Free Software Foundation, either version 3 of the
+ *  License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Affero General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Affero General Public License
+ *  along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+$(document).ready(function () {
+
+	console.log('public');
+	$('#body-public .header-right .menutoggle').click(function() {
+		$(this).next('.popovermenu').toggleClass('open');
+	});
+});
diff --git a/core/templates/layout.public.php b/core/templates/layout.public.php
new file mode 100644
index 0000000000000000000000000000000000000000..05f733a77e7ae11fa801e140988704d89d9d150e
--- /dev/null
+++ b/core/templates/layout.public.php
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" >
+<head data-user="<?php p($_['user_uid']); ?>" data-user-displayname="<?php p($_['user_displayname']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>">
+	<meta charset="utf-8">
+	<title>
+		<?php
+		p(!empty($_['application'])?$_['application'].' - ':'');
+		p($theme->getTitle());
+		?>
+	</title>
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<meta name="referrer" content="never">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
+	<meta name="apple-itunes-app" content="app-id=<?php p($theme->getiTunesAppId()); ?>">
+	<meta name="apple-mobile-web-app-capable" content="yes">
+	<meta name="apple-mobile-web-app-status-bar-style" content="black">
+	<meta name="apple-mobile-web-app-title" content="<?php p((!empty($_['application']) && $_['appid']!='files')? $_['application']:$theme->getTitle()); ?>">
+	<meta name="mobile-web-app-capable" content="yes">
+	<meta name="theme-color" content="<?php p($theme->getColorPrimary()); ?>">
+	<link rel="icon" href="<?php print_unescaped(image_path($_['appid'], 'favicon.ico')); /* IE11+ supports png */ ?>">
+	<link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path($_['appid'], 'favicon-touch.png')); ?>">
+	<link rel="mask-icon" sizes="any" href="<?php print_unescaped(image_path($_['appid'], 'favicon-mask.svg')); ?>" color="<?php p($theme->getColorPrimary()); ?>">
+	<link rel="manifest" href="<?php print_unescaped(image_path($_['appid'], 'manifest.json')); ?>">
+	<?php emit_css_loading_tags($_); ?>
+	<?php emit_script_loading_tags($_); ?>
+	<?php print_unescaped($_['headers']); ?>
+</head>
+<body id="<?php p($_['bodyid']);?>">
+<?php include('layout.noscript.warning.php'); ?>
+<header>
+	<div id="header" class="<?php p($_['header-classes']); ?>">
+		<div class="header-left">
+			<span id="nextcloud">
+				<div class="logo logo-icon svg"></div>
+				<h1 class="header-appname">
+					Public <?php p($template->getHeaderTitle()); ?>
+				</h1>
+				<div class="header-shared-by">
+					Public <?php p($template->getHeaderDetails()) ?>
+				</div>
+			</span>
+		</div>
+
+		<?php
+		/** @var \OCP\AppFramework\Http\Template\PublicTemplateResponse $template */
+		if($template->getActionCount() !== 0) {
+			$primary = $template->getPrimaryAction();
+			$others = $template->getOtherActions();
+			?>
+		<div class="header-right">
+			<span id="header-primary-action" class="<?php if($template->getActionCount() === 1) {  p($primary->getIcon()); } ?>">
+				<a href="<?php p($primary->getLink()); ?>">
+					<span class="share-menutoggle-text"><?php p($primary->getLabel()) ?></span>
+				</a>
+			</span>
+			<?php if($template->getActionCount()>1) { ?>
+			<span class="menutoggle icon-more-white"></span>
+			<div id="share-menu" class="menu">
+				<ul>
+					<?php
+						/** @var \OCP\AppFramework\Http\Template\IMenuAction $action */
+						foreach($template->getOtherActions() as $action) {
+							print_unescaped($action->render());
+						}
+					?>
+				</ul>
+			</div>
+			<?php } ?>
+		</div>
+		<?php } ?>
+	</div>
+</header>
+<div id="content-wrapper">
+	<div id="content" class="app-<?php p($_['appid']) ?>" role="main">
+		<?php print_unescaped($_['content']); ?>
+	</div>
+</div>
+
+</body>
+</html>