<strong>Small-Net</strong> is a social-movement born in the late 2010s and early 2020s focused on using & creating technology that serve and to put the needs of individuals first, before everything else
—
and in particular:
</p>
<ul>
<li>the needs of the individual with respect to his or her active relationship with his or her friends and family, and</li>
<li>the needs of the individual with respect to joining and actively participating in one or more (usually <em>smaller</em>) communities.</li>
</ul>
<p>
"<strong>Small-Net</strong>" is also sometimes written (without the hyphen) as "<strong>smallnet</strong>", and (with "small" written as "smol") as "<strong>smolnet</strong>".
</p>
<p>
Related to <strong>small-net</strong> is "<strong>small-web</strong>", which is also sometimes written (without the hyphen) as "<strong>smallweb</strong>", and (with "small" written as "smol") as "<strong>smolweb</strong>".
"<strong>Small-Web</strong>", in some contexts, can be be considered a sub-set of <strong>small-net</strong>; and in other contexts can be considered more or less synonymous with <strong>small-net</strong>.
</p>
</section>
<section>
<h2>Motivation</h2>
<p>
The <strong>small-net</strong> social-movement (as well as some other social-movements) was born out of a feeling that the modern (2010s and 2020s era) Internet, Web, and social-media are <em>broken</em>.
</p>
<p>
Reasons for feeling that the modern (2010s and 2020s era) Internet, Web, and social-media is broken include the ubiquity of individuals:
</p>
<ul>
<li>getting spied on,</li>
<li>getting tracked,</li>
<li>having their privacy taken away from them,</li>
<li>getting turned into a product, and sold,</li>
<li>getting their online identity taken away from them,</li>
<li>getting censored,</li>
<li>getting manipulated,</li>
<li>getting their source of income taken from them because it suits someone else's interests, and</li>
<li>getting controlled.</li>
</ul>
<p>
In addition to this, other reasons for feeling that the modern (2010s and 2020s era) Internet, Web, and social-media is broken include the ubiquity of and obtrusiveness of:
</p>
<ul>
<li>advertisements,</li>
<li>GDPR cookie consent pop-ups,</li>
<li>join-newsletter pop-ups, and</li>
<li>allow-notification pop-ups.</li>
</ul>
<p>
<strong>Small-Net</strong> is partially an attempt to fix these things by using and even creating alternatives to the modern (2010s and 2020s era) Internet, Web, and social-media.
</p>
</section>
<section>
<h2>Vintage Protocols</h2>
<p>
<strong>Small-Net</strong> enthusiasts are sometimes attracted to <em>vintage</em> computer networks protocols.
The <em>vintage</em> computer network protocols that tend to get a lot of attention from <strong>small-net</strong> enthusiasts include:
<li>the <strong>ZX80</strong> text format, and</li>
<li>the <strong>ZX81</strong> text format.</li>
</ul>
</section>
<section>
<h2>"Modernization"</h2>
<p>
Although many <strong>small-net</strong> enthusiasts are attracted to <em>vintage</em> protocols, some have found those <em>vintage</em> protocols difficult to work with and lacking features they feel as important.
A reaction to this is that there have been attempts to create "modernized" versions of these <em>vintage</em> protocols, while trying to avoid the mistakes of the modern (2010s and 2020s era) Internet, Web, and social-media.
<li>including support for Unicode <abbrtitle="Unicode Transformation Format — 8-bit">UTF-8</abbr>,</li>
<li>including support for <abbrtitle="Uniform Resource Locator">URL</abbr>s and <abbrtitle="Uniform Resource Identifier">URI</abbr>s,</li>
<li>including support for hypertext,</li>
<li>including support for rich-text, and</li>
<li>including support for media.</li>
</ul>
</section>
<section>
<h2>Retro Protocols</h2>
<p>
Some <em>retro</em> protocols — that are attempts to "modernize" specific <em>vintage</em> protocols — that have come out of the <strong>small-net</strong> communities include:
<li>the <strong>gemini</strong> protocol being an attempt to "moderize" the <strong>gopher</strong> protocol, while not enabling the same mistakes of the Web,</li>
<li>the <strong>mercury</strong> protocol more or less being the <strong>gemini</strong> protocol without TLS encryption,</li>
<li>the <strong>spartan</strong> protocol being an alternative to the <strong>gemini</strong> protocol that does less "modernizations", and</li>
<li>the <strong>nex</strong> protocol being an attempt to be even simpler than and even fixing some aspects of the <strong>gemini</strong> protocol.</li>
</ul>
</section>
<section>
<h2>Retro Data Formats</h2>
<p>
Some other <em>retro</em> file data formats — that are attempts to "modernize" specific <em>vintage</em> file data formats — that either have come out of the <strong>small-net</strong> communities or have drawn the attention of people in the <strong>small-net</strong> communities include:
</p>
<ul>
<li>the <strong>gemtext</strong> format,</li>
<li>the <strong>json feed</strong> format,</li>
<li>the <strong>markdown</strong> format,</li>
<li>the <strong>nex directory</strong> format, and</li>
<li>the <strong>twtxt</strong> format.</li>
</ul>
</section>
<section>
<h2>Other Protocols and Formats</h2>
<p>
Although <em>not</em> generally considered part of <strong>small-net</strong>, these protocols and file data formats are also often of interest to <strong>small-net</strong> enthusiasts:
There are a loose collection of <em>goals</em> that seem to be commonly desired by <strong>small-net</strong> enthusiasts.
These goals in part explain why certain protocols and file data formats are of interest.
</p>
<p>
Not all <strong>small-net</strong> enthusiasts desire all of these <em>goals</em>.
And some of these <em>goals</em> are even in conflict with each other.
</p>
<p>
But one does not have to satisfy all of these <em>goals</em> in the same protocol.
</p>
<p>
And also, noting all these different <em>goals</em> is important to understanding the <strong>small-net</strong> social-movement, even if some are in conflict.
<li>be servable from the most common computers — mobile phones, tablets, and laptops,</li>
<li>encourage archiving,</li>
<li>encourage mirroring,</li>
<li>include support for a single complete download of "everything",</li>
<li>include support for downloading just the "latest" updates,</li>
<li>make archiving automatic,</li>
<li>make mirroring automatic,</li>
<li>make it so a 'response' can be a full resource for a single request (ex: don't have to go download extra images, pages, CSS, JS, etc),</li>
<li>support a single download of many files,</li>
<li>support a an archival download of many files,</li>
</ul>
</section>
<section>
<h3>Better</h3>
<ul>
<li>be faster,</li>
<li>be more private,</li>
<li>be more secure,</li>
<li>support 'directories' (of files),</li>
<li>support machine-legible semantics,</li>
<li>support 'partials',</li>
<li>support parameterized 'partials',</li>
<li>support 'slots',</li>
<li>support the separation of content from navigation/UI,</li>
</ul>
</section>
<section>
<h3>Fix</h3>
<ul>
<li>be a "fixed" version of the e-mail protocols,</li>
<li>be a "fixed" version of the gopher protocol,</li>
<li>be a "fixed" version of the gemini protocol,</li>
<li>fix identity,</li>
<li>be a "fixed" version of the NNTP protocol,</li>
<li>fix payments,</li>
<li>fix the Internet,</li>
<li>be a "fixed" version of social-media,</li>
<li>be a "fixed" version of the Web,</li>
<li>be a "fixed" version of Usenet,</li>
</ul>
</section>
<section>
<h3>Legibility</h3>
<ul>
<li>the protocol should be programmer-legible,</li>
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to be able to create a (simple) working <em>client</em> as a weekend project,</li>
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to be able to create a (simple) working <em>server</em> as a weekend project,</li>
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to successively add advanced features to their <em>client</em> as a series a weekend projects,</li>
<li>the protocol should be simple enough for a competent software developer of 3 to 10 years of experience to successively add advanced features to their <em>server</em> as a series a weekend projects,</li>
<li>the default file data format to be easy enough to parse for a software developer of 3 to 10 years of experience,</li>
<li>the default file data format should be human-legible — i.e., legible by humans who aren't programmers,</li>
<li>the default file data format to be writable by the average computer-literate (non-programmer) person using just a text-editor (for some definition of "text),</li>
</ul>
</section>
<section>
<h3>Lifeboat</h3>
<ul>
<li>be a viable lifeboat for evacuees from big social-media,</li>
<li>be a viable lifeboat for evacuees from the Web,</li>
<li>encourage multiple server software implementations,</li>
<li>encourage a large number of client software implementations,</li>
<li>encourage a large number of server software implementations,</li>
<li>make creating <em>client</em> software a good learning exercise for students,</li>
<li>make creating <em>server</em> software a good learning exercise for students,</li>
<li>make creating your own <em>client</em> software easy to do for a a competent software developer of 3 to 10 years of experience,</li>
<li>make creating your own <em>server</em> software easy to do for a a competent software developer of 3 to 10 years of experience,</li>
<li>try to make it so multiple client software exists and new client software keeps on getting created, so that a malicious party doesn't have a single point of attack (i.., a single client) that if they compromise to compromise users' privacy,</li>
</ul>
</section>
<section>
<h3>Trust</h3>
<ul>
<li>avoid certificate authorities,</li>
<li>prevent or make 3rd-party content-modification detectable if not very difficult,</li>
<li>prevent or make man-in-the-middle (<abbrtitle="man-in-the-middle">MITM</abbr>) attacks very difficult,</li>
<li>prevent someone else from adding to your trusted keys,</li>
<li>prevent someone else deciding what your trusted keys are,</li>
<li>prevent someone else from replacing one or more of your trusted keys,</li>
<li>be able to (also) be viewed from a terminal-emulator,</li>
<li>be able to (also) be viewed and used without (necessarily) needing a mouse,</li>
<li>have the default file data format be easy enough that an average person could learn to write it using just a text-editor (for some definition of “text”).</li>