| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | <!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; | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 				margin-left: auto; | 
					
						
							|  |  |  | 				margin-right: auto; | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 			} | 
					
						
							|  |  |  | 			.dot { | 
					
						
							|  |  |  | 				width: 1em; | 
					
						
							|  |  |  | 				height: 1em; | 
					
						
							|  |  |  | 				cursor: pointer; | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2025-05-21 18:20:01 -04:00
										 |  |  | 			.w3-left, | 
					
						
							|  |  |  | 			.w3-right { | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 				cursor: pointer; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		</style> | 
					
						
							|  |  |  | 	</head> | 
					
						
							|  |  |  | 	<body | 
					
						
							| 
									
										
										
										
											2025-05-21 18:20:01 -04:00
										 |  |  | 		style=" | 
					
						
							|  |  |  | 			width: 100%; | 
					
						
							|  |  |  | 			height: 100%; | 
					
						
							|  |  |  | 			max-width: 100%; | 
					
						
							|  |  |  | 			max-height: 100%; | 
					
						
							|  |  |  | 			margin: 0; | 
					
						
							|  |  |  | 			padding: 0; | 
					
						
							|  |  |  | 			flex-direction: column; | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 			align-items: center; | 
					
						
							| 
									
										
										
										
											2025-05-21 18:20:01 -04:00
										 |  |  | 		" | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 		class="w3-flex w3-dark-gray w3-center" | 
					
						
							|  |  |  | 	> | 
					
						
							|  |  |  | 		<div | 
					
						
							| 
									
										
										
										
											2025-05-22 12:00:33 -04:00
										 |  |  | 			style=" | 
					
						
							|  |  |  | 				flex: 1 1 auto; | 
					
						
							|  |  |  | 				overflow: auto; | 
					
						
							|  |  |  | 				contain: content; | 
					
						
							|  |  |  | 				padding-top: 16px; | 
					
						
							|  |  |  | 				padding-bottom: 16px; | 
					
						
							|  |  |  | 			" | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 		> | 
					
						
							| 
									
										
										
										
											2025-05-22 12:00:33 -04:00
										 |  |  | 			<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> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 				</div> | 
					
						
							|  |  |  | 			</div> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:20:01 -04:00
										 |  |  | 			<div class="slide w3-card-4 w3-gray" style="width: 90%"> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 				<header class="w3-container w3-blue w3-xlarge"> | 
					
						
							|  |  |  | 					<h1>This brief tutorial will introduce:</h1> | 
					
						
							|  |  |  | 				</header> | 
					
						
							| 
									
										
										
										
											2025-05-22 12:00:33 -04:00
										 |  |  | 				<ul class="w3-large w3-left-align"> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 					<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"> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 					<button class="w3-button w3-yellow proceed">Onward</button> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 				</footer> | 
					
						
							|  |  |  | 			</div> | 
					
						
							|  |  |  | 			<div class="slide w3-gray" style="width: 90%"> | 
					
						
							|  |  |  | 				<div class="w3-card-4 w3-xlarge"> | 
					
						
							|  |  |  | 					<header class="w3-container w3-blue"> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 						<h1>💻Secure Scuttlebutt in a Nutshell🦀</h1> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 					</header> | 
					
						
							| 
									
										
										
										
											2025-05-22 12:00:33 -04:00
										 |  |  | 					<div class="w3-container w3-large w3-left-align"> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 						<p> | 
					
						
							|  |  |  | 							Secure Scuttlebutt is a social network whose technical operation | 
					
						
							|  |  |  | 							attempts to mirrors human social interaction. | 
					
						
							|  |  |  | 						</p> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 						<ul> | 
					
						
							|  |  |  | 							<li> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 								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. | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 							</li> | 
					
						
							|  |  |  | 							<li> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 								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>). | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 							</li> | 
					
						
							|  |  |  | 							<li> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 								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. | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 							</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 | 
					
						
							|  |  |  | 						> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 						<button class="w3-button w3-yellow proceed">Got It</button> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 					</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> | 
					
						
							| 
									
										
										
										
											2025-05-22 12:00:33 -04:00
										 |  |  | 					<div class="w3-container w3-large w3-left-align"> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 						<p> | 
					
						
							|  |  |  | 							Tilde Friends is an application platform that is an application of | 
					
						
							|  |  |  | 							its own. | 
					
						
							|  |  |  | 						</p> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 						<ul> | 
					
						
							|  |  |  | 							<li> | 
					
						
							|  |  |  | 								This intro is a Tilde Friends app. You can click <b>edit</b> at | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 								the top to look under the hood and make changes. | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 							</li> | 
					
						
							|  |  |  | 							<li> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 								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. | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 							</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"> | 
					
						
							| 
									
										
										
										
											2025-05-22 10:56:30 -04:00
										 |  |  | 						<button class="w3-button w3-yellow proceed">Okay</button> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 					</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> | 
					
						
							| 
									
										
										
										
											2025-05-22 12:00:33 -04:00
										 |  |  | 					<div class="w3-container w3-large w3-left-align"> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 						<p>The button below will take you to the Secure Scuttlebutt app.</p> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 						<ul> | 
					
						
							|  |  |  | 							<li> | 
					
						
							|  |  |  | 								Remember: | 
					
						
							|  |  |  | 								<ol> | 
					
						
							|  |  |  | 									<li>You are in charge. This is all on your device.</li> | 
					
						
							|  |  |  | 									<li> | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 										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. | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 									</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"> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 						<button class="w3-button w3-yellow" id="complete">Let's Go!</button> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 					</footer> | 
					
						
							|  |  |  | 				</div> | 
					
						
							|  |  |  | 			</div> | 
					
						
							|  |  |  | 		</div> | 
					
						
							|  |  |  | 		<div | 
					
						
							|  |  |  | 			class="w3-text-white w3-xlarge w3-center w3-flex" | 
					
						
							| 
									
										
										
										
											2025-05-22 11:49:58 -04:00
										 |  |  | 			style=" | 
					
						
							|  |  |  | 				width: 100%; | 
					
						
							|  |  |  | 				flex: 0 1; | 
					
						
							|  |  |  | 				flex-direction: row; | 
					
						
							|  |  |  | 				align-items: center; | 
					
						
							|  |  |  | 				gap: 8px; | 
					
						
							|  |  |  | 			" | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 		> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 			<div class="w3-jumbo" id="left" style="flex: 1 0; cursor: pointer"> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:20:01 -04:00
										 |  |  | 				❮ | 
					
						
							|  |  |  | 			</div> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 			<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"> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:20:01 -04:00
										 |  |  | 				❯ | 
					
						
							|  |  |  | 			</div> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 		</div> | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 		<script type="module"> | 
					
						
							|  |  |  | 			import * as tfrpc from '/static/tfrpc.js'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 			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'); | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 				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); | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 			document.getElementById('left').onclick = () => show(-1); | 
					
						
							|  |  |  | 			document.getElementById('right').onclick = () => show(1); | 
					
						
							|  |  |  | 			document.getElementById('complete').onclick = function () { | 
					
						
							|  |  |  | 				console.log('completing'); | 
					
						
							| 
									
										
										
										
											2025-05-22 07:04:57 -04:00
										 |  |  | 				tfrpc.rpc.complete().finally(function () { | 
					
						
							| 
									
										
										
										
											2025-05-21 18:48:29 -04:00
										 |  |  | 					console.log('completed'); | 
					
						
							|  |  |  | 					let a = document.createElement('a'); | 
					
						
							|  |  |  | 					a.href = '/~core/ssb/'; | 
					
						
							|  |  |  | 					a.target = '_top'; | 
					
						
							|  |  |  | 					document.body.appendChild(a); | 
					
						
							|  |  |  | 					a.click(); | 
					
						
							|  |  |  | 				}); | 
					
						
							|  |  |  | 			}; | 
					
						
							| 
									
										
										
										
											2025-05-21 18:20:01 -04:00
										 |  |  | 			window.addEventListener('keyup', function (event) { | 
					
						
							| 
									
										
										
										
											2025-05-21 18:08:08 -04:00
										 |  |  | 				if (event.key == 'ArrowLeft') { | 
					
						
							|  |  |  | 					show(-1); | 
					
						
							|  |  |  | 				} else if (event.key == 'ArrowRight') { | 
					
						
							|  |  |  | 					show(1); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 			show(0); | 
					
						
							|  |  |  | 		</script> | 
					
						
							|  |  |  | 	</body> | 
					
						
							|  |  |  | </html> |