<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.
</p>
<p>
These <em>goals</em> seem to be (in alphabetical order based on category):
</p>
<section>
<h3>Alternative</h3>
<ul>
<li>be an alterative platform for cross-platform application development,</li>
<li>be an alterative platform for static files (rather than applications),</li>
<li>be an alterative to BBS,</li>
<li>be an alterative to the e-mail protocols,</li>
<li>be an alterative to the finger protocol,</li>
<li>be an alterative to the gopher protocol,</li>
<li>be an alterative to big social-media,</li>
<li>be an alterative to the telnet protocol,</li>
<li>be an alterative to the modern Web,</li>
</ul>
</section>
<section>
<h3>Archivism</h3>
<ul>
<li>be accommodating to servers with intermittent up-time,</li>
<li>(also) be available via non-Internet means in a seamless way,</li>
<li>be aware of archives,</li>
<li>be aware of mirrors,</li>
<li>be easy to archive,</li>
<li>be easy to mirror,</li>
<li>be off-line first,</li>
<li>be resistant to censorship,</li>
<li>be resistant to Internet domain-name expiration,</li>
<li>be resistant to Internet domain-name seizure,</li>
<li>be resistant to link-rot,</li>
<li>be resistant to server seizure,</li>
<li>be resistant to server termination,</li>
<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>be a viable lifeboat for micro-blogging,</li>
</ul>
</section>
<section>
<h3>Modernizations</h3>
<ul>
<li>be a "modernized" version of <strong>BBS</strong> protocol (for some definition of "modernized"),</li>
<li>be a "modernized" version of the <strong>finger</strong> protocol (for some definition of "modernized"),</li>
<li>be a "modernized" version of the <strong>gopher</strong> protocol (for some definition of "modernized"),</li>
<li>be a "modernized" version of the <strong>telnet</strong> protocol (for some definition of "modernized"),</li>
<li>include support for content-addressing,</li>
<li>include support for hypertext,</li>
<li>include support for media (audio, images, video, etc),</li>
<li>include support for rich-text,</li>
<li>include support for Unicode <abbrtitle="Unicode Transformation Format — 8-bit">UTF-8</abbr>,</li>
<li>include support for <abbrtitle="Uniform Resource Locator">URL</abbr>s and <abbrtitle="Uniform Resource Identifier">URI</abbr>s,</li>
</ul>
</section>
<section>
<h3>Nostalgia</h3>
<ul>
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 2000s</li>
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 1990s</li>
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 1980s</li>
<li>be nostalgic to those who were on-line (on the Internet, BBS, or elsewhere) in the 1970s</li>
</ul>
</section>
<section>
<h3>Revive</h3>
<ul>
<li>revive ASCII-art,</li>
<li>revive ANSI-art,</li>
<li>revive blogging,</li>
<li>revive the blogosphere,</li>
<li>revive blogrolls,</li>
<li>revive link directories,</li>
<li>revive long-form writing,</li>
<li>revive personal home-pages,</li>
<li>revive personal wikis,</li>
<li>revive self-contained sites,</li>
<li>revive something like the (pre-JavaScript pre-CSS) Web of the 1990s,</li>
<li>revive 'surfing' — going from page to page or site to site via one page or site linking to another page or site,</li>
<li>revive vlogging,</li>
<li>revive web-rings,</li>
</ul>
</section>
<section>
<h3>Perma-Computing</h3>
<ul>
<li>be resistant to software-rot,</li>
<li>support programming,</li>
<li>support setting pixels,</li>
<li>support Unix/Linux style piping,</li>
</ul>
</section>
<section>
<h3>Privacy</h3>
<ul>
<li>support anonymous usage,</li>
<li>support pseudononymous usage,</li>
<li>make spying (that feels ubiquitous on the Web) difficult if not impossible,</li>
<li>make tracking (that feels ubiquitous on the Web) difficult if not impossible,</li>
<li>prevent spying on what 'pages' you view or read,</li>
<li>prevent spying on what 'sites' you access content from (ex: being able to tell what Internet domain-names you resolve),</li>
<li>prevent web-bugs,</li>
</ul>
</section>
<section>
<h3>Take-Over Resistance</h3>
<ul>
<li>be decentralized,</li>
<li>be difficult to embrace-extend-extinguish (<abbrtitle="embrace-extend-extinguish">EEE</abbr>),</li>
<li>be distributed,</li>
<li>don't make Internet domain-names mandatory,</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>
</ul>
</section>
<section>
<h3>Unobtrusiveness</h3>
<ul>
<li>prevent or make advertisements very difficult,</li>
<li>prevent pop-ups,</li>
</ul>
</section>
<section>
<h3>User-Experience</h3>
<ul>
<li>get rid of the need for passwords,</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>