<?xml version="1.0"?>
<?xml-stylesheet href="/transform" type="text/xsl"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:bibo="http://purl.org/ontology/bibo/" xmlns:bs="http://purl.org/ontology/bibo/status/" xmlns:ci="https://vocab.methodandstructure.com/content-inventory#" xmlns:dct="http://purl.org/dc/terms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" lang="en" prefix="bibo: http://purl.org/ontology/bibo/ bs: http://purl.org/ontology/bibo/status/ ci: https://vocab.methodandstructure.com/content-inventory# dct: http://purl.org/dc/terms/ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#" vocab="http://www.w3.org/1999/xhtml/vocab#" xml:lang="en">
  <head>
    <title lang="en" property="dct:title" xml:lang="en">Intertwingler</title>
    <base href="https://intertwingler.net/"/>
    <link href="http://purl.org/ontology/bibo/status/published" rel="bibo:status"/>
    <link href="" rel="ci:canonical" title="Intertwingler"/>
  </head>
  <body about="" id="E6RlPAVsNWdvnkmNo3D4CI" typeof="bibo:Website">
    <section id="preamble">
    <p><a href="https://github.com/doriantaylor/rb-intertwingler"><strong>In&#xAD;ter&#xAD;tw&#xAD;ing&#xAD;ler</strong></a> is an engine for making websites. Its specific focus is managing very large numbers of very small objects, densely connected to one another in disparate ways. It was borne out of an observation that the Web, at least out of the box, is actually pretty bad at this.</p>
    <p><strong>Intertwingler</strong> is a big little thing. Or maybe a little big thing.  It's a minuscule piece of software with absolutely sprawling scope. Here are five distinct constituencies that <strong>Intertwingler</strong> touches:</p>
    </section>
    <nav id="audiences">
      
        <a>
          <h3>End Users</h3>
          <p><strong>Intertwingler</strong> was designed primarily as a substrate for communicating complex topics. It's made to <em>maximize linking</em> between small pieces of information, in a style called <dfn>dense hypermedia</dfn>. This helps you gain comprehension while only having to read the parts you need to.</p>
          <p>To achieve this effect, <strong>Intertwingler</strong> maintains tight control over the addresses (<abbr>URLs</abbr>) it exposes. This means links managed by <strong>Intertwingler</strong> <em>never</em> break.</p>
        </a>
        <a>
          <h3>Self-Hosters</h3>
          <p><strong>Intertwingler</strong> is designed to ship as a single, stand-alone, open-source package that you can run on your personal computer, your server&#x2014;whether in your house or in a data centre&#x2014;or your cloud account. Eventually, a version of <strong>Intertwingler</strong> will run on your phone.</p>
          <p><strong>Intertwingler</strong> is designed to <em>federate</em> with other instances of itself, not only for scale but also for balancing security and availability. With <strong>Intertwingler</strong>, your <dfn>single source of truth</dfn> can be virtualized and spread across multiple physical locations, for a single, seamless information space.</p>
        </a>
        <a>
          <h3>Web Makers</h3>
          <p><strong>Intertwingler</strong> is made to handle vast numbers of tiny objects, each with their own durable address. Whereas in creating a conventional website you focus on making <em>pages</em>, with <strong>Intertwingler</strong>, your job is to fashion Lego parts. The focus with <strong>Intertwingler</strong> is on <em>what</em> things <em>are</em>, rather than <em>where</em> they <em>go</em> on the website.</p>
          <p>When your website is Lego, you can rearrange and reuse the pieces. Content that is <em>referenced</em> rather than <em>copied</em> has a better chance of staying up to date. There is still the matter, however, of getting the content <em>into</em> the website. Here, <strong>Intertwingler</strong> serves as probably the first new general-purpose structured data entry interface since the spreadsheet. And finally, there's all the other work attendant to <q>building a website</q>&#x2014;like styling, scripts, media, metadata, <abbr>APIs</abbr>&#x2014;<strong>Intertwingler</strong> helps with those, too.</p>
        </a>
      
        <a>
          <h3>Extenders</h3>
          <p>The Lego-like philosophy that pervades <strong>Intertwingler</strong> is extended further to its insides. Those looking to extend its capabilities have an <em>extremely</em> precise development target. Ev&#xAD;erything in <strong>Intertwingler</strong>, including the <strong>Intertwingler</strong> engine itself, is a thing called a <dfn>handler</dfn>. This is just a <dfn>microservice</dfn> that obeys a certain protocol. Handlers can (eventually, as is the plan) be written in any language and interface with the engine over ordinary <abbr>HTTP</abbr>.</p>
          <p>Another way to extend <strong>Intertwingler</strong> is with a special kind of handler called a <dfn>transform</dfn>. Transforms operate over <abbr>HTTP</abbr> message bodies and manipulate them as ordinary byte segments. Splitting the task of serving Web content between handlers that originate it and transforms that modify it, results in both being much more concise.</p>
        </a>
        <a>
          <h3>Porters</h3>
          <p>Rather than being a particular Web development platform for people writing in a particular programming language, <strong>Intertwingler</strong> is intended to be a <em>blueprint</em> for porting the engine to whatever language you're most comfortable with.</p>
          <p>The engine itself is a modest piece of code. The value is all in how it's arranged. The instance data, moreover, is totally portable. Assuming your target language has all the dependencies, you could probably cook up a port of <strong>Intertwingler</strong> in a few weeks.</p>
        </a>
      
    </nav>
    <section>
      <p><strong>Intertwingler</strong> started in <time>2018</time> as an experimental breadboard to test out some ideas going back another decade. It was overhauled with a generous grant from the <time>2023</time> <a href="https://summerofprotocols.com/">Summer of Protocols</a> program. We're <time datetime="2023-10-13">still working</time> on the first release. To follow development, <a href="https://github.com/doriantaylor/rb-intertwingler">visit the GitHub repository</a>. For more information, <a href="https://doriantaylor.com/summer-of-protocols/">see the project site.</a></p>
    </section>
    
  </body>
</html>
