forked from cory/tildefriends
		
	
		
			
				
	
	
		
			287 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			287 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype html>
 | |
| <html style="height: 100%; margin: 0; padding: 0; box-sizing: border-box">
 | |
| 	<head>
 | |
| 		<meta name="viewport" content="width=device-width, initial-scale=1" />
 | |
| 		<link rel="stylesheet" type="text/css" href="w3.css" />
 | |
| 		<style>
 | |
| 			.slide {
 | |
| 				display: none;
 | |
| 				margin-left: auto;
 | |
| 				margin-right: auto;
 | |
| 			}
 | |
| 			.dot {
 | |
| 				width: 1em;
 | |
| 				height: 1em;
 | |
| 				cursor: pointer;
 | |
| 			}
 | |
| 			.w3-left,
 | |
| 			.w3-right {
 | |
| 				cursor: pointer;
 | |
| 			}
 | |
| 		</style>
 | |
| 	</head>
 | |
| 	<body
 | |
| 		style="
 | |
| 			width: 100%;
 | |
| 			height: 100%;
 | |
| 			max-width: 100%;
 | |
| 			max-height: 100%;
 | |
| 			margin: 0;
 | |
| 			padding: 0;
 | |
| 			flex-direction: column;
 | |
| 			align-items: center;
 | |
| 		"
 | |
| 		class="w3-flex w3-dark-gray w3-center"
 | |
| 	>
 | |
| 		<div
 | |
| 			style="
 | |
| 				flex: 1 1 auto;
 | |
| 				overflow: auto;
 | |
| 				contain: content;
 | |
| 				padding-top: 16px;
 | |
| 				padding-bottom: 16px;
 | |
| 			"
 | |
| 		>
 | |
| 			<div class="slide">
 | |
| 				<div
 | |
| 					class="w3-content w3-xlarge w3-card-4 w3-blue w3-panel w3-padding-32 w3-round-xlarge"
 | |
| 					style="margin: 32px"
 | |
| 				>
 | |
| 					<div>
 | |
| 						<div>Welcome to</div>
 | |
| 						<div>~😎 Tilde Friends.</div>
 | |
| 					</div>
 | |
| 					<footer>
 | |
| 						<button class="w3-button w3-yellow proceed">Next</button>
 | |
| 					</footer>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 			<div class="slide w3-card-4 w3-gray" style="width: 90%">
 | |
| 				<header class="w3-container w3-blue w3-xlarge">
 | |
| 					<h1>This brief tutorial will introduce:</h1>
 | |
| 				</header>
 | |
| 				<ul class="w3-large w3-left-align">
 | |
| 					<li><b>Secure Scuttlebutt</b>, a decentralized social network.</li>
 | |
| 					<li>
 | |
| 						<b>Tilde Friends</b>, the application platform that you are using
 | |
| 						right now.
 | |
| 					</li>
 | |
| 					<li>
 | |
| 						<b>How to get started</b> if you want to get gossiping right away.
 | |
| 					</li>
 | |
| 				</ul>
 | |
| 				<footer class="w3-center w3-xlarge w3-padding">
 | |
| 					<button class="w3-button w3-yellow proceed">Onward</button>
 | |
| 				</footer>
 | |
| 			</div>
 | |
| 			<div class="slide w3-gray" style="width: 90%">
 | |
| 				<div class="w3-card-4 w3-xlarge">
 | |
| 					<header class="w3-container w3-blue">
 | |
| 						<h1>💻Secure Scuttlebutt in a Nutshell🦀</h1>
 | |
| 					</header>
 | |
| 					<div class="w3-container w3-large w3-left-align">
 | |
| 						<p>
 | |
| 							Secure Scuttlebutt is a social network whose technical operation
 | |
| 							attempts to mirror human social interaction.
 | |
| 						</p>
 | |
| 						<ul>
 | |
| 							<li>
 | |
| 								You can create your own account and post to your own feed on
 | |
| 								your own device. This is all <b>local</b> with no external
 | |
| 								communication. This puts you fully in control of your own words
 | |
| 								and actions.
 | |
| 							</li>
 | |
| 							<li>
 | |
| 								Before you can interact with others, you need to
 | |
| 								<b>connect over the network</b>, either directly to your friends
 | |
| 								(i.e., peer-to-peer between your phones on coffee shop Wi-Fi) or
 | |
| 								to 🚪<i>rooms</i> and 🍻<i>pubs</i> (hint: search the web for
 | |
| 								<i>#ssbroom</i>).
 | |
| 							</li>
 | |
| 							<li>
 | |
| 								Who you choose to <b>follow</b> determines what you see, with
 | |
| 								most people choosing to see messages from friends and friends of
 | |
| 								those friends. If you encounter content you'd rather not see,
 | |
| 								<b>block</b> the offending account to improve the experience for
 | |
| 								you and your followers.
 | |
| 							</li>
 | |
| 							<li>
 | |
| 								Your feed is an <b>immutable</b> log of your activity. Post with
 | |
| 								care, because like your words in real life, posts can't be taken
 | |
| 								back.
 | |
| 							</li>
 | |
| 						</ul>
 | |
| 					</div>
 | |
| 					<footer class="w3-center w3-xlarge w3-padding">
 | |
| 						<a
 | |
| 							class="w3-button w3-light-gray"
 | |
| 							href="https://scuttlebutt.nz/"
 | |
| 							target="_blank"
 | |
| 							>See scuttlebutt.nz</a
 | |
| 						>
 | |
| 						<button class="w3-button w3-yellow proceed">Got It</button>
 | |
| 					</footer>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 			<div class="slide w3-gray" style="width: 90%">
 | |
| 				<div class="w3-card-4 w3-xlarge">
 | |
| 					<header class="w3-container w3-blue w3-center">
 | |
| 						<h1>~😎 Let's Talk Tilde Friends ~😎</h1>
 | |
| 					</header>
 | |
| 					<div class="w3-container w3-large w3-left-align">
 | |
| 						<p>
 | |
| 							Tilde Friends is an application platform that is an application of
 | |
| 							its own.
 | |
| 						</p>
 | |
| 						<ul>
 | |
| 							<li>
 | |
| 								This intro is a Tilde Friends app. You can click <b>edit</b> at
 | |
| 								the top to look under the hood and make changes.
 | |
| 							</li>
 | |
| 							<li>
 | |
| 								It is already possible to make and share new applications using
 | |
| 								only Tilde Friends and Secure Scuttlebutt without having to set
 | |
| 								up development environments, configure web servers, register
 | |
| 								domain names, or pay for hosting services.
 | |
| 							</li>
 | |
| 							<li>
 | |
| 								But it's also set up so that you can't just break an app that
 | |
| 								everybody is using or do malicious things with personal content.
 | |
| 								There are <b>protections</b> in place like an operating system.
 | |
| 								The intent is also for it to be <b>safe</b> to run strange apps
 | |
| 								without worrying about adverse effects.
 | |
| 							</li>
 | |
| 							<li>
 | |
| 								But this is all a big 🚧work in progress🚧 and
 | |
| 								<b>experiment</b>. Let's see where it takes us.
 | |
| 							</li>
 | |
| 						</ul>
 | |
| 					</div>
 | |
| 					<footer class="w3-center w3-xlarge w3-padding">
 | |
| 						<button class="w3-button w3-yellow proceed">Okay</button>
 | |
| 					</footer>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 			<div class="slide w3-gray" style="width: 90%">
 | |
| 				<div class="w3-card-4 w3-xlarge">
 | |
| 					<header class="w3-container w3-blue w3-center">
 | |
| 						<h1>🦀Let's Get this Tilde Friends Party Started🎉</h1>
 | |
| 					</header>
 | |
| 					<div class="w3-container w3-large w3-left-align">
 | |
| 						<p>The button below will take you to the Secure Scuttlebutt app.</p>
 | |
| 						<ul>
 | |
| 							<li>
 | |
| 								Remember:
 | |
| 								<ol>
 | |
| 									<li>You are in charge. This is all on your device.</li>
 | |
| 									<li>
 | |
| 										Make network connections to exchange messages with others.
 | |
| 									</li>
 | |
| 									<li>
 | |
| 										Follow more accounts to see more content, and block those
 | |
| 										posting content you'd rather not see.
 | |
| 									</li>
 | |
| 									<li>
 | |
| 										Be respectful, and consider the consequences of what you
 | |
| 										post.
 | |
| 									</li>
 | |
| 									<li>
 | |
| 										This is all under active development. Exercise patience, and
 | |
| 										report issues encountered.
 | |
| 									</li>
 | |
| 								</ol>
 | |
| 							</li>
 | |
| 							<li>
 | |
| 								To see this tutorial again later, select <b>apps</b> ->
 | |
| 								<b>Core Apps</b> -> <b>intro</b>.
 | |
| 							</li>
 | |
| 						</ul>
 | |
| 					</div>
 | |
| 					<footer class="w3-center w3-xlarge w3-padding">
 | |
| 						<button class="w3-button w3-yellow" id="complete">Let's Go!</button>
 | |
| 					</footer>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 		<div
 | |
| 			class="w3-text-white w3-xlarge w3-center w3-flex"
 | |
| 			style="
 | |
| 				width: 100%;
 | |
| 				flex: 0 1;
 | |
| 				flex-direction: row;
 | |
| 				align-items: center;
 | |
| 				gap: 8px;
 | |
| 			"
 | |
| 		>
 | |
| 			<div class="w3-jumbo" id="left" style="flex: 1 0; cursor: pointer">
 | |
| 				❮
 | |
| 			</div>
 | |
| 			<span class="w3-badge dot w3-border w3-hover-yellow"></span>
 | |
| 			<span class="w3-badge dot w3-border w3-hover-yellow"></span>
 | |
| 			<span class="w3-badge dot w3-border w3-hover-yellow"></span>
 | |
| 			<span class="w3-badge dot w3-border w3-hover-yellow"></span>
 | |
| 			<span class="w3-badge dot w3-border w3-hover-yellow"></span>
 | |
| 			<div class="w3-jumbo" style="flex: 1 0; cursor: pointer" id="right">
 | |
| 				❯
 | |
| 			</div>
 | |
| 		</div>
 | |
| 		<script type="module">
 | |
| 			import * as tfrpc from '/static/tfrpc.js';
 | |
| 
 | |
| 			let index = 0;
 | |
| 			function set(i) {
 | |
| 				show(i - index);
 | |
| 			}
 | |
| 			function show(delta) {
 | |
| 				let slides = [...document.getElementsByClassName('slide')];
 | |
| 				let dots = [...document.getElementsByClassName('dot')];
 | |
| 				index = (index + delta + slides.length) % slides.length;
 | |
| 				for (let slide of slides) {
 | |
| 					slide.style.display =
 | |
| 						slides.indexOf(slide) == index ? 'block' : 'none';
 | |
| 				}
 | |
| 				for (let dot of dots) {
 | |
| 					if (dots.indexOf(dot) == index) {
 | |
| 						dot.classList.add('w3-white');
 | |
| 					} else {
 | |
| 						dot.classList.remove('w3-white');
 | |
| 					}
 | |
| 				}
 | |
| 				document.getElementById('left').style.visibility =
 | |
| 					index == 0 ? 'hidden' : 'visible';
 | |
| 				document.getElementById('right').style.visibility =
 | |
| 					index == slides.length - 1 ? 'hidden' : 'visible';
 | |
| 			}
 | |
| 
 | |
| 			let dots = [...document.getElementsByClassName('dot')];
 | |
| 			for (let dot of dots) {
 | |
| 				dot.onclick = () => set(dots.indexOf(dot));
 | |
| 			}
 | |
| 			for (let button of document.getElementsByClassName('proceed')) {
 | |
| 				button.onclick = () => show(1);
 | |
| 			}
 | |
| 			document.getElementById('left').onclick = () => show(-1);
 | |
| 			document.getElementById('right').onclick = () => show(1);
 | |
| 			document.getElementById('complete').onclick = function () {
 | |
| 				console.log('completing');
 | |
| 				tfrpc.rpc.complete().finally(function () {
 | |
| 					console.log('completed');
 | |
| 					let a = document.createElement('a');
 | |
| 					a.href = '/~core/ssb/';
 | |
| 					a.target = '_top';
 | |
| 					document.body.appendChild(a);
 | |
| 					a.click();
 | |
| 				});
 | |
| 			};
 | |
| 			window.addEventListener('keyup', function (event) {
 | |
| 				if (event.key == 'ArrowLeft') {
 | |
| 					show(-1);
 | |
| 				} else if (event.key == 'ArrowRight') {
 | |
| 					show(1);
 | |
| 				}
 | |
| 			});
 | |
| 			show(0);
 | |
| 		</script>
 | |
| 	</body>
 | |
| </html>
 |