You have successfully created your Nette Framework project.

Explore
source
codes

See source code of this page template, layout template and corresponding presenter. And feel free to modify them!

Manage
database
tables

Manage your database using pre-installed tool Adminer with an easy to use GUI.

Read
Quick-start
tutorial

If you are exploring Nette Framework for the first time, you should read the Quick Start, documentation, tutorials and forum.

We hope you enjoy this framework!

This page template located at app/presenters/templates/Homepage/default.latte

{* This is the welcome page, you can delete it *}

{block content}
<div id="banner">
	<h1 n:block=title>Congratulations!</h1>
</div>

<div id="content">
	<h2>You have successfully created your Nette Framework project.</h2>

	<div class="boxes">
		<div>
			<h2><img src="data:image/png;base64,…==" alt="">Explore<br> source<br> codes</h2>
			<p>See source code of <a href="#template">this page template</a>, <a href="#layout">layout template</a> and
			<a href="#presenter">corresponding presenter</a>. And feel free to modify them!</p>
		</div>

		<div>
			<h2><a href="{$basePath}/adminer/"><img src="data:image/png;base64,…==" alt="">Manage<br> database<br> tables</a></h2>
			<p>Manage your database using pre-installed <a href="{$basePath}/adminer/">tool Adminer</a> with an easy to use GUI.<p>
		</div>

		<div>
			<h2><a href="https://doc.nette.org/quickstart"><img src="data:image/png;base64,…=" alt="">Read<br> Quick-start<br> tutorial</a></h2>
			<p>If you are exploring Nette Framework for the first time, you should read the
			<a href="https://doc.nette.org/quickstart">Quick Start</a>, <a href="https://doc.nette.org">documentation</a>,
			<a href="https://pla.nette.org">tutorials</a> and <a href="https://forum.nette.org">forum</a>.</p>
		</div>
	</div>

	<h2>We hope you enjoy this framework!</h2>

	<section id="template">
		<h2>This page template located at <span>{strstr($presenter->template->getFile(), app)}</span></h2>

		<pre><code class="jush">{file_get_contents($presenter->template->getFile())|replacere:'#[\w+/]{60,}#':'…'}</code></pre>
	</section>

	<section id="layout">
		<h2>Layout template located at <span>{strstr($template->getName(), app)}</span></h2>

		<pre><code class="jush">{file_get_contents($template->getName())}</code></pre>
	</section>

	<section id="presenter">
		<h2>Current presenter located at <span>{strstr($presenter->getReflection()->getFileName(), app)}</span></h2>

		<pre><code class="jush-php">{file_get_contents($presenter->getReflection()->getFileName())}</code></pre>
	</section>
</div>
{/block}

{block scripts}
{include parent}
<script src="https://files.nette.org/sandbox/jush.js"></script>
<script>
	jush.create_links = false;
	jush.highlight_tag('code');
	$('code.jush').each(function(){ $(this).html($(this).html().replace(/\x7B[/$\w].*?\}/g, '<span class="jush-latte">$&</span>')) });

	$('a[href^=#]').click(function(){
		$('html,body').animate({ scrollTop: $($(this).attr('href')).show().offset().top - 5 }, 'fast');
		return false;
	});
</script>
{/block}


{block head}
<style>
	html { overflow-y: scroll; }
	body { font: 14px/1.65 Verdana, "Geneva CE", lucida, sans-serif; background: #3484d2; color: #333; margin: 38px auto; max-width: 940px; min-width: 420px; }

	h1, h2 { font: normal 150%/1.3 Georgia, "New York CE", utopia, serif; color: #1e5eb6; -webkit-text-stroke: 1px rgba(0,0,0,0); }

	img { border: none; }

	a { color: #006aeb; padding: 3px 1px; }

	a:hover, a:active, a:focus { background-color: #006aeb; text-decoration: none; color: white; }

	#banner { border-radius: 12px 12px 0 0; background-image: url(data:image/png;base64,…); }
	#banner h1 { color: white; font-size: 50px; line-height: 121px; margin: 0; padding-left: 4%; background: url(data:image/png;base64,…==) no-repeat 95%; text-shadow: 1px 1px 0 rgba(0, 0, 0, .9); }
	@media (max-width: 600px) {
		#banner h1 { background: none; }
	}

	#content { background: white; border: 1px solid #eff4f7; border-radius: 0 0 12px 12px; padding: 10px 4%; overflow: hidden; }
	#content > h2 { font-size: 130%; color: #666; clear: both; padding: 1.2em 0; margin: 0; }

	h2 span { color: #87A7D5; }
	h2 a { text-decoration: none; background: transparent; }

	.boxes { -webkit-justify-content: space-between; justify-content: space-between; display: -webkit-flex; display: flex; margin-right: -2em; }
	.boxes > div { background: #f0f0f0; border: 1px solid #e6e6e6; border-radius: 5px; -webkit-flex: 1; flex: 1; margin-right: 2em; }
	.boxes h2 { text-align: right; margin: 1em; }
	.boxes img { float: left; }
	.boxes p { clear: both; margin: 1em; }
	.boxes p a { color: #006aeb; background: #f7f7f7; padding: 1px 3px; border-radius: 3px; text-decoration: none; box-shadow: 0 2px 5px rgba(0, 0, 0, .10); }
	.boxes p a:hover, .boxes p a:active, .boxes p a:focus { color: white; background-color: #006aeb; }
	.boxes > div:nth-child(3n - 2) h2 { color: #00a6e5; }
	.boxes > div:nth-child(3n - 2) img { margin: -1em -1em 0 -1em; }
	.boxes > div:nth-child(3n - 1) h2 a { color: #db8e34; background: transparent; }
	.boxes > div:nth-child(3n) h2 a { color: #578404; background: transparent; }
	@media (max-width: 760px) {
		.boxes { -webkit-flex-direction: column; flex-direction: column; }
		.boxes > div { margin-bottom: 1em; flex-basis: auto; }
		.boxes h2 br { display: none; }
	}

	section { display: none; }

	pre { font-size: 12px; line-height: 1.4; padding: 10px; margin: 1.3em 0; overflow: auto; max-height: 500px; background: #F1F5FB; border-radius: 5px; box-shadow: 0 1px 1px rgba(0, 0, 0, .1); }

	.jush-com, .jush-php_doc { color: #929292; }
	.jush-tag, .jush-tag_js { color: #6A8527; font-weight: bold; }
	.jush-att { color: #8CA315 }
	.jush-att_quo { color: #448CCB; font-weight: bold; }
	.jush-php_var { color: #d59401; font-weight: bold; }
	.jush-php_apo { color: green; }
	.jush-php_new { font-weight: bold; }
	.jush-php_fun { color: #254DB3; }
	.jush-js, .jush-css { color: #333333; }
	.jush-css_val { color: #448CCB; }
	.jush-clr { color: #007800; }
	.jush a { color: inherit; background: transparent; }
	.jush-latte { color: #D59401; font-weight: bold }
</style>
{/block}

Layout template located at app/presenters/templates/@layout.latte

{**
 * @param string   $basePath web base path
 * @param array    $flashes  flash messages
 *}
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">

	<title>{ifset title}{include title|striptags} | {/ifset}Nette Sandbox</title>

	<link rel="stylesheet" href="{$basePath}/css/style.css">
	<meta name="viewport" content="width=device-width">
	{block head}{/block}
</head>

<body>
	<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>

	{include content}

	{block scripts}
	<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
	<script src="https://nette.github.io/resources/js/netteForms.min.js"></script>
	<script src="{$basePath}/js/main.js"></script>
	{/block}
</body>
</html>

Current presenter located at app/presenters/HomepagePresenter.php

<?php

namespace App\Presenters;

use Nette;
use App\Model;


class HomepagePresenter extends BasePresenter
{

	public function renderDefault()
	{
		$this->template->anyVariable = 'any value';
	}

}