<commit_before>extends layout

block content
	section
		header
			h1 Passwordless
			p Express middleware for authentication through one-time tokens via email, text, ... 
		section
			if error
				p= error
			form(action='/account/sendtoken', method='POST')
				p Curious how it works? Test our demo!
				p We will only use your email to send out the token. Still don't want to give your personal email? Simply use a  
					a(href='http://mailinator.com/') disposable address
				label(for='email') Email
				if validation && validation.user
					label(for='email') #{validation.user.msg}
				input(id='email', name='user', type='email', placeholder='<EMAIL>', 
					maxlength=200, minlength=1,
					value='#{ (validation && validation.user && validation.user.value) || "" }')
				input(type='submit', value='Login or Register')
		section
			header
				p Passwords are broken. Inspired by 
					a(href='http://twitter.com/ninjudd') <NAME>'s
					|  
					cite 
						a(href='https://medium.com/@ninjudd/passwords-are-obsolete-9ed56d483eb') Passwords are Obsolete
					|  Passwordless delivers an alternative that is faster for you as a developer, 
					| better for your users, and more secure
			article
				h2 Faster for you
				p One form and one text field. That's all the frontend you need to have your user 
					|registration and authentication solved. No need for separate registration, 
					| login, and lost password pages. If you need more user details, Passwordless 
					| will scale easily.
				p If you only have a handful of users (e.g. for your own blog) you can even skip 
					| the user database and just hardcode the relevant email addresses without
					| opening you up to any security risks.
			article
				h2 Better for your users
				p Type in an email address, click on the provided link, and your users are ready to go. 
					| No passwords to invent or to remember. Exactly the same when a user returns 
					| to your site. This eliminates a big hurdle to get them on board.
			article
				h2 More secure
				p '12345', 'password', ... Inventing great passwords is hard. So many users still 
					a(href='http://www.wired.com/2013/12/web-semantics-the-ten-thousand-worst-passwords/') 
						| don't do it
					| . Worse: the same passwords are repeated across several websites, so if one <commit_msg>Don't show login for logged in users<commit_after>extends layout

block content
	section
		header
			h1 Passwordless
			p Express middleware for authentication through one-time tokens via email, text, ... 
		section
			if error
				p= error
			if !user
				form(action='/account/sendtoken', method='POST')
					p Curious how it works? Test our demo!
					p We will only use your email to send out the token. Still don't want to give your personal email? Simply use a  
						a(href='http://mailinator.com/') disposable address
					label(for='email') Email
					if validation && validation.user
						label(for='email') #{validation.user.msg}
					input(id='email', name='user', type='email', placeholder='<EMAIL>', 
						maxlength=200, minlength=1,
						value='#{ (validation && validation.user && validation.user.value) || "" }')
					input(type='submit', value='Login or Register')
		section
			header
				p Passwords are broken. Inspired by 
					a(href='http://twitter.com/ninjudd') <NAME>'s
					|  
					cite 
						a(href='https://medium.com/@ninjudd/passwords-are-obsolete-9ed56d483eb') Passwords are Obsolete
					|  Passwordless delivers an alternative that is faster for you as a developer, 
					| better for your users, and more secure
			article
				h2 Faster for you
				p One form and one text field. That's all the frontend you need to have your user 
					|registration and authentication solved. No need for separate registration, 
					| login, and lost password pages. If you need more user details, Passwordless 
					| will scale easily.
				p If you only have a handful of users (e.g. for your own blog) you can even skip 
					| the user database and just hardcode the relevant email addresses without
					| opening you up to any security risks.
			article
				h2 Better for your users
				p Type in an email address, click on the provided link, and your users are ready to go. 
					| No passwords to invent or to remember. Exactly the same when a user returns 
					| to your site. This eliminates a big hurdle to get them on board.
			article
				h2 More secure
				p '12345', 'password', ... Inventing great passwords is hard. So many users still 
					a(href='http://www.wired.com/2013/12/web-semantics-the-ten-thousand-worst-passwords/') 
						| don't do it
					| . Worse: the same passwords are repeated across several websites, so if one 
{'fraction_non_alphanumeric': 0.08623619371282923, 'fraction_numerical': 0.010620220900594732, 'mean_word_length': 3.0351328191945157, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, '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': '7344439', 'n_tokens_mistral': 1678, 'n_tokens_neox': 1313, 'n_words': 568}