<commit_before>extends ../templates/layout/base

block nav

block intro
	.home-hero: .container
		h1 Node.js CMS and web application platform built on express and mongo.
		p.buttons
			a(href='/getting-started', title='KeystoneJS getting started guide').btn.btn-lg.btn-primary
				span.hidden-xs Get Started
				span.visible-xs Start
			a(href='http://demo.keystonejs.com', target='_blank', title='Demo Website (new window)').btn.btn-lg.btn-link.hidden-xs Try the demo
			
			//- Clutter?
			//- a(href='/examples', title='Sample Applications').btn.btn-lg.btn-link Examples
			
		ul.list-inline.list-links
			li Current version #{version}
			li: a(href='https://github.com/JedWatson/keystone/blob/master/HISTORY.md', target='_blank', title='View Changelog on GitHub') What’s New
			li: a(href='/examples', title='Sample Applications').hidden-xs Examples
			li: a(href='http://github.com/JedWatson/keystone', target='_blank') GitHub Project
			
		//- MIT Licence metioned in the subheader and footer
		//- .mit-licence
			a(href='http://opensource.org/licenses/MIT', target='_blank').licence-badge MIT Licence
			span.licence-text Keystone is free and open source.

	include ../templates/includes/page-subheader

block content
	//- section.intro-section.whatis-section: .container
		.section-header
			h2 What is KeystoneJS
			p.lead Keystone is the easiest way to build a web application or content-managed website in Node.js
	section.intro-section.building-section: .container
		.section-header
			h2 Get a head-start on the features you need
			p.lead Keystone is the easiest way to build database-driven websites, applications and APIs in Node.js.
		.row
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-leaf
					.feature-content
						h4 Express.js and Mongo
						p Keystone will configure express - the de facto web server for node.js - for you and connect to your mongo database using mongoose, the leading ODM package.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-shuffle
					.feature-content
						h4 Dynamic Routes
						p Keystone starts with best practices for setting up your MV* application, and makes it easy to manage your templates, views and routes.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-picture
					.feature-content
						h4 Database Fields
						p IDs, Strings, Booleans, Dates and Numbers are the building blocks of your database. Keystone builds on these with useful, real-world field types like name, email, password, address, image and relationship fields (and more)
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-light-bulb
					.feature-content
						h4 Auto-generated Admin UI
						p Whether you use it while you're building out your application, or in production as a database content management system, Keystone's Admin UI will save you time and make managing your data easy.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-pencil
					.feature-content
						h4 Simpler Code
						p Sometimes, async code can get complicated to do simple things. Keystone helps keep simple things - like loading data before displaying it in a view - simple.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-docs
					.feature-content
						h4 Form Processing
						p Want to validate a form, upload an image, and update your database with a single line? Keystone can do that, based on the data models you've already defined.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-users
					.feature-content
						h4 Session Management
						p Keystone comes ready out of the box with session management and authentication features, including automatic encryption for password fields.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-paper-plane
					.feature-content
						h4 Email Sending
						p Keystone makes it easy to set up, preview and send template-based emails for your application. It also integrates with Mandrill (Mailchimp's excellent transaction email sending service)
			.col-sm-6.col-md-4.col-lg-3.hidden-sm.hidden-lg
				.feature-panel
					span.feature-icon.entypo.entypo-publish
					.feature-content
						h4 Managed Updates
						p Keystone includes an optional updates framework, that can take care of running update scripts for you, making it easy to transition from development to production.
	
	
	section.intro-section.feedback-section
		.container: .section-header
			h2 Community Feedback
			p.lead What people have been saying about KeystoneJS
			.row
				.col-md-6
					blockquote.twitter-tweet(lang='en')
						p
							| Wow&excl;
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| is saving me days of work right now&excl;
							a(href='https://twitter.com/search?q=%23api&src=hash') &num;api
							a(href='https://twitter.com/search?q=%23backend&src=hash') &num;backend
							a(href='https://twitter.com/search?q=%23dev&src=hash') &num;dev
							a(href='https://twitter.com/search?q=%23webdev&src=hash') &num;webdev
							a(href='https://twitter.com/search?q=%23admin&src=hash') &num;admin
							a(href='https://twitter.com/search?q=%23cms&src=hash') &num;cms
						| &mdash; Fille &lpar;&commat;bobmoff&rpar;
						a(href='https://twitter.com/bobmoff/statuses/437940871200526336') February 24&comma; 2014
						| &bullet;&bullet;&bullet;
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| wants to be your best
							a(href='https://twitter.com/search?q=%23NodeJS&src=hash') &num;NodeJS
							| framework and must have a place in your project&period;
						| &mdash; <NAME> &lpar;&commat;buguibuguibuda&rpar;
						a(href='https://twitter.com/buguibuguibuda/statuses/438008795461988352') February 24&comma; 2014
						| &bullet;&bullet;&bullet;
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/KeystoneJS') &commat;Keystonejs
							a(href='https://twitter.com/sydjs') &commat;sydjs
							| A big thank you for making such a great CMS based on express and mongo&excl; It has got us up and running quickly&excl;
							a(href='https://twitter.com/corkdev') &commat;corkdev
						| &mdash; corkdev&period;io &lpar;&commat;corkdev&rpar;
						a(href='https://twitter.com/corkdev/statuses/430649427703771136') February 4&comma; 2014
						| &bullet;&bullet;&bullet;
				.col-md-6
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| the more I play with KeystoneJS the more I love it&period;
							a(href='https://twitter.com/search?q=%23JavaScript&src=hash') &num;JavaScript
						| &mdash; EvLSnoopY &lpar;&commat;EvLSnoopY&rpar;
						a(href='https://twitter.com/EvLSnoopY/statuses/423932889613340672') January 16&comma; 2014
						| &bullet;&bullet;&bullet;
					blockquote.twitter-tweet(lang='en')
						p
							| I&apos;m starting to like
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| &period; Its an extremly simple but flexible Framework for creating a
							a(href='https://twitter.com/search?q=%23NodeJS&src=hash') &num;NodeJS
							| based CMS&period; &VerticalLine;
							a(href='https://twitter.com/search?q=%23webdev&src=hash') &num;webdev
							a(href='https://twitter.com/search?q=%23javascript&src=hash') &num;javascript
						| &mdash; <NAME>&period; Pauls &lpar;&commat;rob&UnderBar;k&UnderBar;p&rpar;
						a(href='https://twitter.com/rob_k_p/statuses/434760545351528448') February 15&comma; 2014
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| haha&comma; you just made my day&excl;
						| &mdash; Fille &lpar;&commat;bobmoff&rpar;
						a(href='https://twitter.com/bobmoff/statuses/437973561547186177') February 24&comma; 2014
						| &bullet;&bullet;&bullet;
			hr
			a(href="https://twitter.com/keystonejs", class="twitter-follow-button", data-show-count="true", data-size="large") Follow @keystonejs
			
	section.intro-section.admin-section
		.container: .section-header
			h2 Admin Interface
			p.lead Keystone gives you a beautiful, customisable Admin UI based on your models
		.container.admin-image-full
			img(src='/images/home/admin-interface.png').img-responsive
		//- .container-sm
			.row
				.col-sm-6
					h3 Everything you need
					p Create, manage, edit, delete. Keystone's Admin UI takes care of the basics so you don't have to.
					p Configure which fields are editable, which models are creatable, and customise everything to your heart's content.
				.col-sm-6
					.admin-image: img(src='/images/home/inline-item-creation.png').img-responsive.img-circle
			.row
				.col-sm-6.col-sm-push-6
					h3 Responsive &amp; Themeable
					p Want to use your CMS on the go? with Keystone you can.
					p Keystone's Admin UI is built on Bootstrap 3, and works with all screen sizes and devices.
					p You can also change the theme (or remove ours) using one of the most popular css frameworks on the internet.
				.col-sm-6.col-sm-pull-6
					.admin-image: img(src='/images/home/responsive-design.png').img-responsive.img-circle<commit_msg>Updated tweets on website homepage<commit_after>extends ../templates/layout/base

block nav

block intro
	.home-hero: .container
		h1 Node.js CMS and web application platform built on express and mongo.
		p.buttons
			a(href='/getting-started', title='KeystoneJS getting started guide').btn.btn-lg.btn-primary
				span.hidden-xs Get Started
				span.visible-xs Start
			a(href='http://demo.keystonejs.com', target='_blank', title='Demo Website (new window)').btn.btn-lg.btn-link.hidden-xs Try the demo
			
			//- Clutter?
			//- a(href='/examples', title='Sample Applications').btn.btn-lg.btn-link Examples
			
		ul.list-inline.list-links
			li Current version #{version}
			li: a(href='https://github.com/JedWatson/keystone/blob/master/HISTORY.md', target='_blank', title='View Changelog on GitHub') What’s New
			li: a(href='/examples', title='Sample Applications').hidden-xs Examples
			li: a(href='http://github.com/JedWatson/keystone', target='_blank') GitHub Project
			
		//- MIT Licence metioned in the subheader and footer
		//- .mit-licence
			a(href='http://opensource.org/licenses/MIT', target='_blank').licence-badge MIT Licence
			span.licence-text Keystone is free and open source.

	include ../templates/includes/page-subheader

block content
	//- section.intro-section.whatis-section: .container
		.section-header
			h2 What is KeystoneJS
			p.lead Keystone is the easiest way to build a web application or content-managed website in Node.js
	section.intro-section.building-section: .container
		.section-header
			h2 Get a head-start on the features you need
			p.lead Keystone is the easiest way to build database-driven websites, applications and APIs in Node.js.
		.row
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-leaf
					.feature-content
						h4 Express.js and Mongo
						p Keystone will configure express - the de facto web server for node.js - for you and connect to your mongo database using mongoose, the leading ODM package.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-shuffle
					.feature-content
						h4 Dynamic Routes
						p Keystone starts with best practices for setting up your MV* application, and makes it easy to manage your templates, views and routes.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-picture
					.feature-content
						h4 Database Fields
						p IDs, Strings, Booleans, Dates and Numbers are the building blocks of your database. Keystone builds on these with useful, real-world field types like name, email, password, address, image and relationship fields (and more)
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-light-bulb
					.feature-content
						h4 Auto-generated Admin UI
						p Whether you use it while you're building out your application, or in production as a database content management system, Keystone's Admin UI will save you time and make managing your data easy.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-pencil
					.feature-content
						h4 Simpler Code
						p Sometimes, async code can get complicated to do simple things. Keystone helps keep simple things - like loading data before displaying it in a view - simple.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-docs
					.feature-content
						h4 Form Processing
						p Want to validate a form, upload an image, and update your database with a single line? Keystone can do that, based on the data models you've already defined.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-users
					.feature-content
						h4 Session Management
						p Keystone comes ready out of the box with session management and authentication features, including automatic encryption for password fields.
			.col-sm-6.col-md-4.col-lg-3
				.feature-panel
					span.feature-icon.entypo.entypo-paper-plane
					.feature-content
						h4 Email Sending
						p Keystone makes it easy to set up, preview and send template-based emails for your application. It also integrates with Mandrill (Mailchimp's excellent transaction email sending service)
			.col-sm-6.col-md-4.col-lg-3.hidden-sm.hidden-lg
				.feature-panel
					span.feature-icon.entypo.entypo-publish
					.feature-content
						h4 Managed Updates
						p Keystone includes an optional updates framework, that can take care of running update scripts for you, making it easy to transition from development to production.
	
	
	section.intro-section.feedback-section
		.container: .section-header
			h2 Community Feedback
			p.lead What people have been saying about KeystoneJS
			.row
				.col-md-6
					
					blockquote.twitter-tweet(lang='en')
						p
							| I just checked out
							a(href='https://twitter.com/KeystoneJS') @KeystoneJS
							| (node CMS) from
							a(href='https://twitter.com/JedWatson') @JedWatson
							| . Pretty cool stuff. :)
						| — getify (@getify)
						a(href='https://twitter.com/getify/statuses/423866181603172352') January 16, 2014
					
					blockquote.twitter-tweet(lang='en')
						p
							| Very cool CMS platform built on Express & Mongo
							a(href='http://t.co/K9TGzgGzLk') http://t.co/K9TGzgGzLk
							a(href='https://twitter.com/search?q=%23nodejs&src=hash') #nodejs
							a(href='https://twitter.com/search?q=%23mongodb&src=hash') #mongodb
							a(href='https://twitter.com/search?q=%23javascript&src=hash') #javascript
							a(href='https://twitter.com/KeystoneJS') @KeystoneJS
						| — <NAME> (@dabit3)
						a(href='https://twitter.com/dabit3/statuses/429348159215529985') January 31, 2014
					
					blockquote.twitter-tweet(lang='en')
						p
							| Wow&excl;
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| is saving me days of work right now&excl;
							a(href='https://twitter.com/search?q=%23api&src=hash') &num;api
							a(href='https://twitter.com/search?q=%23backend&src=hash') &num;backend
							a(href='https://twitter.com/search?q=%23dev&src=hash') &num;dev
							a(href='https://twitter.com/search?q=%23webdev&src=hash') &num;webdev
							a(href='https://twitter.com/search?q=%23admin&src=hash') &num;admin
							a(href='https://twitter.com/search?q=%23cms&src=hash') &num;cms
						| &mdash; Fille &lpar;&commat;bobmoff&rpar;
						a(href='https://twitter.com/bobmoff/statuses/437940871200526336') February 24&comma; 2014
						| &bullet;&bullet;&bullet;
					
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/KeystoneJS') &commat;Keystonejs
							a(href='https://twitter.com/sydjs') &commat;sydjs
							| A big thank you for making such a great CMS based on express and mongo&excl; It has got us up and running quickly&excl;
							a(href='https://twitter.com/corkdev') &commat;corkdev
						| &mdash; corkdev&period;io &lpar;&commat;corkdev&rpar;
						a(href='https://twitter.com/corkdev/statuses/430649427703771136') February 4&comma; 2014
						| &bullet;&bullet;&bullet;
				
				.col-md-6
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| the more I play with KeystoneJS the more I love it&period;
							a(href='https://twitter.com/search?q=%23JavaScript&src=hash') &num;JavaScript
						| &mdash; EvLSnoopY &lpar;&commat;EvLSnoopY&rpar;
						a(href='https://twitter.com/EvLSnoopY/statuses/423932889613340672') January 16&comma; 2014
						| &bullet;&bullet;&bullet;
					
					blockquote.twitter-tweet(lang='en')
						p
							| I&apos;m starting to like
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| &period; Its an extremly simple but flexible Framework for creating a
							a(href='https://twitter.com/search?q=%23NodeJS&src=hash') &num;NodeJS
							| based CMS&period; &VerticalLine;
							a(href='https://twitter.com/search?q=%23webdev&src=hash') &num;webdev
							a(href='https://twitter.com/search?q=%23javascript&src=hash') &num;javascript
						| &mdash; <NAME>&period; Pauls &lpar;&commat;rob&UnderBar;k&UnderBar;p&rpar;
						a(href='https://twitter.com/rob_k_p/statuses/434760545351528448') February 15&comma; 2014
					
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/JedWatson') @JedWatson
							| great demo keystone. Cool to see the future of CMS before it was cool :)
							a(href='https://twitter.com/search?q=%23keystonejs&src=hash') #keystonejs
							a(href='https://twitter.com/search?q=%23cms&src=hash') #cms
							a(href='https://twitter.com/search?q=%23nodejs&src=hash') #nodejs
							a(href='https://twitter.com/search?q=%23mongodb&src=hash') #mongodb
						| — JP (@hawmps)
						a(href='https://twitter.com/hawmps/statuses/438243937535275008') February 25, 2014
						
					blockquote.twitter-tweet(lang='en')
						p
							a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
							| wants to be your best
							a(href='https://twitter.com/search?q=%23NodeJS&src=hash') &num;NodeJS
							| framework and must have a place in your project&period;
						| &mdash; <NAME>;rrez &lpar;&commat;buguibuguibuda&rpar;
						a(href='https://twitter.com/buguibuguibuda/statuses/438008795461988352') February 24&comma; 2014
						| &bullet;&bullet;&bullet;
						
					//- blockquote.twitter-tweet(lang='en')
					//- 	p
					//- 		a(href='https://twitter.com/KeystoneJS') @KeystoneJS
					//- 		| Brilliant, i'm stick with Keystone now :)
					//- 	| — Herve (@htatche21)
					//- 	a(href='https://twitter.com/htatche21/statuses/437981898011189248') February 24, 2014
					
					//- blockquote.twitter-tweet(lang='en')
					//- 	p
					//- 		a(href='https://twitter.com/KeystoneJS') &commat;KeystoneJS
					//- 		| haha&comma; you just made my day&excl;
					//- 	| &mdash; Fille &lpar;&commat;bobmoff&rpar;
					//- 	a(href='https://twitter.com/bobmoff/statuses/437973561547186177') February 24&comma; 2014
					//- 	| &bullet;&bullet;&bullet;
			
			hr
			a(href="https://twitter.com/keystonejs", class="twitter-follow-button", data-show-count="true", data-size="large") Follow @keystonejs
			
	section.intro-section.admin-section
		.container: .section-header
			h2 Admin Interface
			p.lead Keystone gives you a beautiful, customisable Admin UI based on your models
		.container.admin-image-full
			img(src='/images/home/admin-interface.png').img-responsive
		//- .container-sm
			.row
				.col-sm-6
					h3 Everything you need
					p Create, manage, edit, delete. Keystone's Admin UI takes care of the basics so you don't have to.
					p Configure which fields are editable, which models are creatable, and customise everything to your heart's content.
				.col-sm-6
					.admin-image: img(src='/images/home/inline-item-creation.png').img-responsive.img-circle
			.row
				.col-sm-6.col-sm-push-6
					h3 Responsive &amp; Themeable
					p Want to use your CMS on the go? with Keystone you can.
					p Keystone's Admin UI is built on Bootstrap 3, and works with all screen sizes and devices.
					p You can also change the theme (or remove ours) using one of the most popular css frameworks on the internet.
				.col-sm-6.col-sm-pull-6
					.admin-image: img(src='/images/home/responsive-design.png').img-responsive.img-circle
{'fraction_non_alphanumeric': 0.1251328630785583, 'fraction_numerical': 0.026669243405159918, 'mean_word_length': 3.2251479893855888, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 70, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2461098', 'n_tokens_mistral': 8769, 'n_tokens_neox': 6685, 'n_words': 1667}