<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://blog.yorniq.xyz/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.yorniq.xyz/" rel="alternate" type="text/html" /><updated>2026-01-27T18:37:40-06:00</updated><id>https://blog.yorniq.xyz/feed.xml</id><title type="html">The Neocities Blog</title><subtitle>The Official Neocities Blog - news, events, and what we&apos;re working on.
</subtitle><entry><title type="html">Neocities Is Blocked by Bing</title><link href="https://blog.yorniq.xyz/blog/2026/01/27/bing-block.html" rel="alternate" type="text/html" title="Neocities Is Blocked by Bing" /><published>2026-01-27T00:00:00-06:00</published><updated>2026-01-27T00:00:00-06:00</updated><id>https://blog.yorniq.xyz/blog/2026/01/27/bing-block</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2026/01/27/bing-block.html"><![CDATA[<p>Over the past few months, the Bing search engine has completely blocked the domain <strong>yorniq.xyz</strong>, including the front site and all user subdomains (example.yorniq.xyz), from its search index.</p>

<p>This is not a partial demotion, a ranking issue, or a temporary crawl problem. The entire domain is completely excluded.</p>

<p>In addition to excluding <strong>yorniq.xyz</strong> from search results, when we discovered the block, <strong>Bing was also placing what appeared to be a phishing attack against Neocities on the first page of search results</strong>. This is not only bad for search results, it’s very possible that it is actively dangerous. After complaints (it required several) they deranked the suspected phishing site, but <strong>yorniq.xyz</strong> results remain blocked, and it is possibly only a matter of time before another concerning site appears on Bing searches for Neocities (it’s easy to get higher pagerank than a blocked site).</p>

<p>In addition to the safety concerns, this also unfairly affects over 1.5 million independent websites hosted on Neocities, the vast majority of which are personal, artistic, educational, or experimental projects with no commercial or malicious intent. These are brilliant and wonderful sites with billions of human visitors per month and they don’t deserve to be blocked from an entire search engine for no reason.</p>

<p>We have repeatedly attempted to resolve this through Bing’s official webmaster and support channels, and a few internal channels. Despite these efforts, Bing has declined to reverse the block or provide a clear, actionable explanation for it. At this point, we have exhausted all reasonable avenues for remediation except public disclosure.</p>

<p>Because of this, we are recommending that Neocities users, and the broader internet in general, <strong>not use Bing or search engines that source their results from Bing</strong> until this issue is resolved.</p>

<p>In addition to Bing, there are other search engines that currently rely on Bing’s search results, including but not limited to DuckDuckGo.</p>

<p>If you use Bing or Bing-powered search engines, <strong>Neocities sites will not appear in your search results</strong>, regardless of content quality, originality, or compliance with webmaster guidelines. If any Neocities-like sites appear on these results, <strong>they may be active phishing attacks against Neocities and should be treated with caution</strong>.</p>

<h2 id="what-this-is-not">What This Is Not</h2>

<p>To be clear:</p>

<ul>
  <li>This is <strong>not</strong> the result of widespread malware or phishing on Neocities</li>
  <li>This is <strong>not</strong> due to a technical misconfiguration that Bing has identified</li>
  <li>This is <strong>not</strong> the result of policy violations communicated to us in a meaningful way</li>
  <li>This is <strong>not</strong> because we haven’t made multiple good-faith attempts to contact Bing for resolution</li>
  <li>This is <strong>not</strong> because of low quality AI slop, of which Neocities has almost none</li>
  <li>This is <strong>not</strong> because of suborigin issues (Bing has documented that they understand suborigins)</li>
</ul>

<p>Neocities allows users to publish HTML, just like every other general-purpose web host. We have always responded to valid abuse reports and comply with applicable law. In addition, we have an active and sophisticated moderation process that removes the vast majority of malicious sites pre-emptively before they are even indexed by search engines.</p>

<h2 id="why-were-posting-this-publicly">Why We’re Posting This Publicly</h2>

<p>We did not want to write this post. We try very hard to have a good relationship with search engine providers. We would much rather quietly resolve this issue with Bing staff and move on.</p>

<p>But after months of attempting to engage constructively through multiple channels, it became clear that silence only harms our users. Especially those who don’t realize their sites are invisible on some search engines.</p>

<p>We decided to post this so that:</p>

<ul>
  <li>users understand that their sites aren’t appearing on Bing or Bing-powered search engines</li>
  <li>web users can make informed choices about what search engines they can trust to be safe and reliable</li>
  <li>the situation is documented transparently and publicly</li>
</ul>

<h2 id="our-recommendation">Our Recommendation</h2>

<p>If you care about discovering independent websites made by real human beings, personal pages, and creative projects on the open web, <strong>we recommend using search engines other than Bing</strong>.</p>

<p>At the time of writing, Neocities sites continue to be indexed normally by most major search engines, including Google.</p>

<p>We will update this post if Bing reverses its decision or meaningfully engages with us to resolve the issue (if you work at Bing or Microsoft and can fix this, please contact us, we would really love to talk to you). Until then, we cannot recommend Bing or Bing-powered search engines to our users, where you will not even find this blog post in the search results.</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Over the past few months, the Bing search engine has completely blocked the domain yorniq.xyz, including the front site and all user subdomains (example.yorniq.xyz), from its search index.]]></summary></entry><entry><title type="html">Cleaner links for web pages</title><link href="https://blog.yorniq.xyz/blog/2022/12/30/cleaner-links.html" rel="alternate" type="text/html" title="Cleaner links for web pages" /><published>2022-12-30T00:00:00-06:00</published><updated>2022-12-30T00:00:00-06:00</updated><id>https://blog.yorniq.xyz/blog/2022/12/30/cleaner-links</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2022/12/30/cleaner-links.html"><![CDATA[<p>Today we’re rolling out a pretty big change to Neocities: cleaner links, by automatically loading the <strong>.html</strong> files without the extension.</p>

<p>So for example if you have a <strong>/my-favorite-songs.html</strong>, you can now load it with your browser by just typing <strong>/my-favorite-songs</strong>. Previously you could do this by creating a directory called “my-favorite-songs” and then adding an index.html to it (<strong>my-favorite-songs/index.html</strong>), but this will make that step optional. Every link to a web page with the <strong>.html</strong> on the end will still (and always) work, and will automatically redirect to the cleaner URL, so there shouldn’t be any issues with search engines or links breaking.</p>

<p>The main drawback to this is that it may affect local site editing. But if you edit your site locally and the cleaner links don’t work with your local server, you can still use <strong>.html</strong> in your links and they will redirect automatically on Neocities. You should also still use <strong>.html</strong> for the actual files when you create them on Neocities.</p>

<p>For the edge case where there is both a directory index and a root page, such as <strong>/my-favorite-songs.html</strong> and <strong>/my-favorite-songs/index.html</strong>, the slash will be used to denote the directory, so <strong>/my-favorite-songs</strong> and <strong>/my-favorite-songs/</strong> will load each respective page.</p>

<p>This change also makes it slighty harder to move to other static web site hosting, but it’s easy to configure other servers to support this. If you run your own server and use <a href="http://nginx.org/">nginx</a> for this, this is the code you can use to make it work the same way (in the server {} section of your config):</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>if ($request_uri ~ ^(.*/)index$) {
  return 301 $1$is_args$args;
}

if ($request_uri ~ ^/(.*/)index\.html?) {
  return 301 /$1$is_args$args;
}

if ($request_uri ~ ^/(.*)\.html?) {
  return 302 /$1$is_args$args;
}
</code></pre></div></div>

<p>Enjoy the cleaner, easier to type in web page links! Happy New Year!</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Today we’re rolling out a pretty big change to Neocities: cleaner links, by automatically loading the .html files without the extension.]]></summary></entry><entry><title type="html">File moving/renaming, faster web sites</title><link href="https://blog.yorniq.xyz/blog/2019/03/06/cdn-and-file-improvements.html" rel="alternate" type="text/html" title="File moving/renaming, faster web sites" /><published>2019-03-06T00:00:00-06:00</published><updated>2019-03-06T00:00:00-06:00</updated><id>https://blog.yorniq.xyz/blog/2019/03/06/cdn-and-file-improvements</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2019/03/06/cdn-and-file-improvements.html"><![CDATA[<p>Just a quick update on some recent small improvements for Neocities we’re thrilled to roll out!</p>

<h2 id="support-for-file-moving--renaming">Support for file moving / renaming</h2>

<p>For a long time if you wanted to change the path or name of a file on Neocities, you had to re-upload it. This was inconvenient for a lot of people, so it has been our most requested feature.</p>

<p>The reason this was lacking was because most upstream file storage providers don’t support renaming, only copying files. For sites with a lot of large files, this would have been difficult to implement and taken a lot of time for simple operations to complete.</p>

<p>We have put together a solution for file storage that prevents this problem from happening, allowing for file renaming and moving without having to do a full copy. So there is now support for file/directory renaming and moving, which you can do directly from the dashboard. The interface doesn’t yet support drag and drop, but we’ll be looking at implementing that soon.</p>

<h2 id="faster-loading-web-sites-tls-13-brotli">Faster loading web sites: TLS 1.3, Brotli</h2>

<p>We recently rolled out some upgrades to how we serve Neocities web sites that will improve both performance and security. <a href="https://www.ssl.com/article/tls-1-3-is-here-to-stay/">TLS 1.3</a> reduces the “handshake” time of establishing connections, improving the speed of initial connection by up to 100ms in some edge cases. We also turned on <a href="https://medium.com/oyotech/how-brotli-compression-gave-us-37-latency-improvement-14d41e50fee4">Brotli compression</a> support, which reduces the size of the data that needs to be transferred to web browsers by using better compression algorithms. This helps web sites load faster, particularly on lower bandwidth connections such as mobile phones.</p>

<p>Enjoy!</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Just a quick update on some recent small improvements for Neocities we’re thrilled to roll out!]]></summary></entry><entry><title type="html">IPFS DNS Support</title><link href="https://blog.yorniq.xyz/blog/2017/08/07/ipfs-dns-support.html" rel="alternate" type="text/html" title="IPFS DNS Support" /><published>2017-08-07T01:00:00-05:00</published><updated>2017-08-07T01:00:00-05:00</updated><id>https://blog.yorniq.xyz/blog/2017/08/07/ipfs-dns-support</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2017/08/07/ipfs-dns-support.html"><![CDATA[<p>I’ve never been shy about our support for the <a href="https://blog.yorniq.xyz/blog/2015/09/08/its-time-for-the-distributed-web.html">distributed web</a>. As the flaws of today’s web continue to lead to increased centralization, and with Net Neutrality being gutted, the stakes for a good future for the web have never been more clear to me. That’s why we were one of the first organizations to start doing implementation work with <a href="https://ipfs.io">IPFS</a>, which I continue to believe is the next version of the web, and the logical successor to HTTP.</p>

<p>Continuing down this adoption path, <strong>I’m happy to announce that Neocities now has support for IPFS DNS records!</strong> That means that most of the 140,000+ sites that have a yorniq.xyz subdomain can now be accessed through IPFS via DNS.</p>

<p>You can see it in action at <a href="https://ipfs.io/ipns/testipfs.yorniq.xyz">https://ipfs.io/ipns/testipfs.yorniq.xyz</a>, or if you have <a href="https://ipfs.io/docs/install/">IPFS installed</a>, you can view it locally at <a href="http://127.0.0.1:8080/ipns/testipfs.yorniq.xyz">http://127.0.0.1:8080/ipns/testipfs.yorniq.xyz</a>.</p>

<p>This works by using TXT records with our DNS servers. You can run<br /><code>dig TXT testipfs.yorniq.xyz</code> in a command prompt to see it in action:</p>

<pre><code>dnslink=/ipfs/QmdJtiWqGEDsUJqW41aTQcds7U2PzmLDWs8qQ346mNoPkF</code></pre>

<p>Right now we’re only supporting IPFS immutable hashes (not IPNS/keypair ones), which means there is a short delay before DNS records update with site changes through IPFS, but we’ll reduce this time lag soon. In the interim, this gives our IPFS implementation its first taste of mutability.</p>

<p>The distributed web is still in the foundation stages, and things are constantly changing. We’ll keep testing new things and see how we can help improve the distributed web. Enjoy!</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[I’ve never been shy about our support for the distributed web. As the flaws of today’s web continue to lead to increased centralization, and with Net Neutrality being gutted, the stakes for a good future for the web have never been more clear to me. That’s why we were one of the first organizations to start doing implementation work with IPFS, which I continue to believe is the next version of the web, and the logical successor to HTTP.]]></summary></entry><entry><title type="html">Introducing the Neocities CLI</title><link href="https://blog.yorniq.xyz/blog/2017/05/26/neocities-cli.html" rel="alternate" type="text/html" title="Introducing the Neocities CLI" /><published>2017-05-26T01:00:00-05:00</published><updated>2017-05-26T01:00:00-05:00</updated><id>https://blog.yorniq.xyz/blog/2017/05/26/neocities-cli</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2017/05/26/neocities-cli.html"><![CDATA[<p>We’re proud to announce the <a href="https://yorniq.xyz/cli">Neocities CLI</a>, a command line tool for power users that want to quickly make changes to their site from their shell terminal.</p>

<p>Some of it’s many features include:</p>

<ul>
  <li><strong>Easy to use</strong> - simple design, informative help screens for each subcommand.</li>
  <li><strong>Push support</strong> - uploads an entire directory. Great for static site generators.</li>
  <li><strong>HTTP persistence</strong> - the CLI reuses a single HTTP connection, improving performance.</li>
  <li><strong>Check before upload</strong> - checks if the file data matches before uploading.</li>
  <li><strong>Gitignore parsing</strong> - automatically skips files in root gitignore file for git repositories.</li>
</ul>

<h2 id="try-it-out">Try it out</h2>

<p>If you’re running OSX or already have Ruby installed, run this command:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gem install neocities
</code></pre></div></div>

<p>If you get a “permission denied” error, you may have to run the command as root:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo gem install neocities
</code></pre></div></div>

<p>After installation, you can run it by executing the <code class="language-plaintext highlighter-rouge">neocities</code> command, which will display a help screen with a list of subcommands.</p>

<p>If you don’t have ruby (or aren’t using OSX), <a href="https://www.ruby-lang.org/en/documentation/installation/">click here</a> to see your options for installing Ruby for your platform.</p>

<p>As with most of our source code, the Neocities CLI is open source and available for review (and pull requests) on <a href="https://github.com/neocities/neocities-ruby">our github repository</a>. Have fun!</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[We’re proud to announce the Neocities CLI, a command line tool for power users that want to quickly make changes to their site from their shell terminal.]]></summary></entry><entry><title type="html">The Net Neutrality Supporters Plan</title><link href="https://blog.yorniq.xyz/blog/2017/04/27/net-neutrality-plan.html" rel="alternate" type="text/html" title="The Net Neutrality Supporters Plan" /><published>2017-04-27T09:00:00-05:00</published><updated>2017-04-27T09:00:00-05:00</updated><id>https://blog.yorniq.xyz/blog/2017/04/27/net-neutrality-plan</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2017/04/27/net-neutrality-plan.html"><![CDATA[<p>The anti Net Neutrality lobbyists apparently didn’t learn their lesson sufficiently the last time they tried to <a href="https://blog.yorniq.xyz/blog/2014/05/08/fcc-rate-limit.html">destroy the internet</a> and <a href="https://blog.yorniq.xyz/blog/2014/05/09/internet-civil-war.html">devolve the entire thing into a nightmare dog-eat-dog civil war jungle</a>. Now the latest lobbyist-in-chief at the FCC is trying to <a href="https://www.washingtonpost.com/news/the-switch/wp/2017/04/26/heres-the-fccs-plan-to-undo-its-own-net-neutrality-rules/">rip apart Net Neutrality</a>, virtually guaranteeing that the entire internet will melt down into a broken TV box run by railroad barons 2.0: oligarchical super-monopolies like Comcast that will have a blank check to artificially price their competitors into bankruptcy (goodbye Netflix, Youtube, Twitch, and millions of small startups that can’t afford the new rates that Comcast and its gilded partners won’t have to pay).</p>

<p>Since the FCC apparently doesn’t care anymore, I did some digging and found a bunch of IP address blocks used by net neutrality opponents, and made something special just for them.</p>

<p><strong>Starting today, if you’re at the US Senate, the FCC, the White House, or a Trump hotel, you will now see this instead of the normal page when you sign up for a Neocities account:</strong></p>

<p><a href="https://blog.yorniq.xyz/assets/trumpplan.jpg"><img src="https://blog.yorniq.xyz/assets/trumpplan.jpg" alt="" /></a></p>

<p>For people at US Senate, the FCC, the White House, or a Trump hotel, this is your new plan and your only option. It’s an expensive, ridiculously low-resourced option that costs $100/mo, simply because you’re using the internet from networks that are working to destroy Net Neutrality.</p>

<p>If you think this example of rate discrimination is scary, the reality of what’s about to happen is even scarier. Here I’m being transparent with it, allowing you to see it happen. Comcast won’t be - they’ll do it secretly in their datacenters. They’ll figure out who their competitors are for their crappy Video on Demand (VoD) service (hint: everything you know and love) and de-prioritize their traffic so it can’t reliably reach you. Or they’ll decide competitors like Netflix need to pay 10x more for peering costs than everybody else pays. Comcast’s VoD service and their partners, of course, won’t pay any of it.</p>

<p>Even <em>with</em> the weak Net Neutrality rules in place, Monopoly ISPs like Comcast already charge everybody on the internet 2-3x more for peering than it actually costs (which <em>you</em> ultimately pay for). As a consumer you get double taxed, from the ISP itself on one end, and from your favorite web site’s expensive bandwidth bills on the other. Gutting Net Neutrality will just give them a blank check to further gouge their customers.</p>

<p>We learned what happens when the railroad barons of the 19th century were allowed to do rate discrimination with monopolized utilities. Don’t let the internet go down this same dark path. <strong><a href="https://www.fightforthefuture.org/">Now is the time to start fighting back</a></strong>.</p>

<p><em>PS: If anyone outside of the IP blacklist wants to sign up for the Trump Plan for some crazy reason, it’s not a joke, it actually works. You can use <a href="https://yorniq.xyz?trumpplan=yes">this link</a> to create a new site, or you know, <a href="https://yorniq.xyz">this one</a> to create a regular one.</em></p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[The anti Net Neutrality lobbyists apparently didn’t learn their lesson sufficiently the last time they tried to destroy the internet and devolve the entire thing into a nightmare dog-eat-dog civil war jungle. Now the latest lobbyist-in-chief at the FCC is trying to rip apart Net Neutrality, virtually guaranteeing that the entire internet will melt down into a broken TV box run by railroad barons 2.0: oligarchical super-monopolies like Comcast that will have a blank check to artificially price their competitors into bankruptcy (goodbye Netflix, Youtube, Twitch, and millions of small startups that can’t afford the new rates that Comcast and its gilded partners won’t have to pay).]]></summary></entry><entry><title type="html">10x more free space</title><link href="https://blog.yorniq.xyz/blog/2017/03/26/huge-space-increase.html" rel="alternate" type="text/html" title="10x more free space" /><published>2017-03-26T18:00:00-05:00</published><updated>2017-03-26T18:00:00-05:00</updated><id>https://blog.yorniq.xyz/blog/2017/03/26/huge-space-increase</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2017/03/26/huge-space-increase.html"><![CDATA[<p>Effective immediately, we are increasing the amount of free space on Neocities for all users to <strong>1GB</strong>, a 10x increase over the previous limit (100MB). Supporter free space will also be doubling, from <strong>10GB</strong> to <strong>20GB</strong>.</p>

<p>This increase is thanks to the launch of our new <a href="https://ceph.com/">Ceph</a> based storage cluster, which we’ve designed to scale and be cost effective in the long term, while still providing the reliability, durability, and performance the modern web comes to expect.</p>

<p>In addition to providing enormous storage capacity for future growth, our serving infrastructure is now completely redundant in the event of equipment failure. If any networking equipment or servers go down, a backup automatically kicks in, allowing Neocities sites to continue being served and updated even if 2/3rds of our servers go down, or if we lose half of our upstream internet connections.</p>

<p>With this launch, and our recently deployed 11-datacenter global anycast caching CDN, Neocities becomes a world-class web hosting service, proving you can still make building a web site fun and easy without sacrificing performance, and without being forced to figure out how to use esoteric, expensive cloud services.</p>

<p>We’ll be doing some deep dives into our new infrastructure in the future, including discussing how we built our own <a href="https://en.wikipedia.org/wiki/Anycast">anycast network</a>, and how careful design allowed us to reduce our bandwidth costs by 18x compared to the leading cloud and hosting providers. Stay tuned for that.</p>

<p>These upgrades were made possible by our <a href="https://yorniq.xyz/supporter">supporters</a>: Thank you!</p>

<p>More space, more speed. What are you waiting for? <a href="https://yorniq.xyz">Make your own web site now!</a></p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[Effective immediately, we are increasing the amount of free space on Neocities for all users to 1GB, a 10x increase over the previous limit (100MB). Supporter free space will also be doubling, from 10GB to 20GB.]]></summary></entry><entry><title type="html">Introducing Neocities Site Tipping</title><link href="https://blog.yorniq.xyz/blog/2017/02/13/site-tipping.html" rel="alternate" type="text/html" title="Introducing Neocities Site Tipping" /><published>2017-02-13T12:00:00-06:00</published><updated>2017-02-13T12:00:00-06:00</updated><id>https://blog.yorniq.xyz/blog/2017/02/13/site-tipping</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2017/02/13/site-tipping.html"><![CDATA[<p><img src="https://blog.yorniq.xyz/assets/tipjar.jpg" alt="" /></p>

<p><a href="https://yorniq.xyz/browse">People create amazing sites on Neocities</a>, and we’ve wanted to provide a way for people to give back to the awesome people working on them. So we did!</p>

<p>Introducing <strong>Neocities Site Tipping</strong>. Now any site on Neocities can enable and start receiving site donations!</p>

<p><img src="https://blog.yorniq.xyz/assets/tipping1.png" alt="" /></p>

<p><img src="https://blog.yorniq.xyz/assets/tipping2.png" alt="" /></p>

<p>If you have a Neocities site and want to get started, Visit your <strong>Settings</strong> page, click <strong>Manage Site Settings</strong> and click the <strong>Tipping</strong> tab. You will need to provide the email address for your <a href="https://paypal.com">PayPal</a> account, which will enable both PayPal and Credit Card donations to be sent.</p>

<p>If you’d like to use a Bitcoin address instead, no problem! Just enter your Bitcoin address, and it will be integrated in your site profile. Bitcoin donations won’t show up on news feeds yet, but we’ll look for ways to improve this in the future.</p>

<p>I’m calling site tipping a beta for now, just in case something goes horribly wrong (abuse issues, etc), but I don’t expect any problems we can’t solve.</p>

<p>It’s important to note that <strong>Neocities will not deduct any fees for donations</strong>. PayPal will charge a small fee (which is comparable to the rate for Credit Card transactions), but we won’t receive any of it. If you’d like to support Neocities as well, we have a separate <a href="https://yorniq.xyz/donate">donations</a> page, or you can help sustain Neocities by becoming a <a href="https://yorniq.xyz/supporter">supporter</a>.</p>

<p>Finally, if you’re feeling tipsy, <a href="https://yorniq.xyz/browse?sort_by=tipping_enabled">here’s a list of some of the many sites on Neocities now accepting tips</a>.</p>

<p>Enjoy!</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">We’re switching to default SSL</title><link href="https://blog.yorniq.xyz/blog/2016/11/10/switching-to-default-ssl.html" rel="alternate" type="text/html" title="We’re switching to default SSL" /><published>2016-11-10T12:00:00-06:00</published><updated>2016-11-10T12:00:00-06:00</updated><id>https://blog.yorniq.xyz/blog/2016/11/10/switching-to-default-ssl</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2016/11/10/switching-to-default-ssl.html"><![CDATA[<p><img src="https://blog.yorniq.xyz/assets/edsnowden.jpg" alt="" /></p>

<p><strong>Starting January 1st, 2017, Neocities will be defaulting to SSL on all sites.</strong> This could possibly lead to some sites breaking, so it’s important that you read this if your site links to any third party content that’s not on Neocities.</p>

<h3 id="why-are-you-doing-this">Why are you doing this?</h3>

<p>I’m not getting into specifics right now, suffice to say there’s recently been a troubling rise in political extremism around the world. To protect your users, it’s critical that we switch to default encryption and make it harder to violate your user’s privacy.</p>

<p>In addition, search engines have recently said they will start penalizing unencrypted sites in search results, meaning that without default SSL, your site will be less likely to show up on search results. We obviously don’t want that to happen, so that is another large motivator.</p>

<h3 id="whats-going-to-break">What’s going to break?</h3>

<p>Basically, anything that embeds content (such as images and videos) from a third-party site using <code class="language-plaintext highlighter-rouge">http</code> instead of <code class="language-plaintext highlighter-rouge">https</code>. For example, if you have an embedded image with <code class="language-plaintext highlighter-rouge">&lt;img src="http://example.com/image.png"&gt;</code> instead of <code class="language-plaintext highlighter-rouge">&lt;img src="https://example.com/image.png"&gt;</code> (see the <strong>s</strong> in http?). The problem is that web browsers will block loading of <code class="language-plaintext highlighter-rouge">http</code> content because it is considered <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content">Mixed Content</a>. If your browser is expecting an HTTPS connection, it refuses to load any unencrypted HTTP content because it “leaks” the encryption.</p>

<p>The fix for this is to make sure your site does not have any embedded content that uses <code class="language-plaintext highlighter-rouge">http</code> instead of <code class="language-plaintext highlighter-rouge">https</code>. You can also strip out the protocol part of the link (http:) like this, and it will automatically assume HTTPS: <code class="language-plaintext highlighter-rouge">&lt;img src="//example.com/image.png"&gt;</code></p>

<h3 id="is-there-any-way-to-automatically-fix-this">Is there any way to automatically fix this?</h3>

<p>Most browsers will auto upgrade HTTP connections to HTTPS using a special <a href="https://www.w3.org/TR/upgrade-insecure-requests/">Upgrade Insecure Requests</a> header we’ll enable on our servers. This will take care of a lot of it for most users. However, if the third-party site does not provide HTTPS in addition to the unencrypted HTTP, it will still break. And unfortunately, there are still <a href="https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives#upgrade-insecure-requests">some older browsers</a> that don’t yet have support for it. Sadly, this also includes the latest versions of Internet Explorer. That’s why we’ve been waiting before doing this transistion. But given the political environment, I don’t think we can afford to wait to make this change anymore.</p>

<h3 id="will-this-include-custom-domains">Will this include Custom Domains?</h3>

<p>Yes. We’re already using <a href="https://letsencrypt.org/">Let’s Encrypt</a> for all custom domains, and it should already be working. The only difference is that we will be defaulting to it for all incoming traffic.</p>

<h3 id="why-not-just-directly-fix-the-code-on-the-sites">Why not just directly fix the code on the sites?</h3>

<p>I’ve pondered this, but we’ve never made any changes to other people’s HTML before, and I’m not comfortable changing that policy now. I feel like not modifying our user’s sites is part of our trust model, and I’d really rather not go down that slippery slope.</p>

<p>I apologize in advance for any issues this may bring up. But I hope you understand why it’s important to do this, even if there will be some temporary migration pains associated with it. Thanks for your understanding.</p>

<p>– Kyle</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">HTTP is obsolete. It’s time for the Distributed Web</title><link href="https://blog.yorniq.xyz/blog/2015/09/08/its-time-for-the-distributed-web.html" rel="alternate" type="text/html" title="HTTP is obsolete. It’s time for the Distributed Web" /><published>2015-09-08T13:00:00-05:00</published><updated>2015-09-08T13:00:00-05:00</updated><id>https://blog.yorniq.xyz/blog/2015/09/08/its-time-for-the-distributed-web</id><content type="html" xml:base="https://blog.yorniq.xyz/blog/2015/09/08/its-time-for-the-distributed-web.html"><![CDATA[<p><img src="https://blog.yorniq.xyz/assets/neocitiesandipfs.jpg" alt="" /></p>

<p>Early this year, the <a href="https://archive.org/">Internet Archive</a> put out <a href="http://blog.archive.org/2015/02/11/locking-the-web-open-a-call-for-a-distributed-web/">a call for a distributed web</a>. We heard them loud and clear.</p>

<p>Today I’m making an announcement that begins our long journey to the future of the web. A web that is faster, more secure, more robust, and more permanent.</p>

<p><a href="https://yorniq.xyz">Neocities</a> has collaborated with <a href="http://ipn.io/">Protocol Labs</a> to become the first major site to implement <a href="http://ipfs.io">IPFS</a> in production. Starting today, all Neocities web sites are available for viewing, archiving, and hosting by any IPFS node in the world. When another IPFS node chooses to host a site from Neocities, that version of the site will continue to be available, even if Neocities shuts down or stops hosting it. The more IPFS nodes seed Neocities sites, the more available (and redundant) Neocities sites become. And the less centrally dependent the sites are on us to continue existing.</p>

<p>What is IPFS? From their README:</p>

<blockquote>
  <p><strong><a href="http://ipfs.io">IPFS</a> is a distributed file system that seeks to connect all computing devices with the same system of files.</strong> In some ways, this is similar to the original aims of the Web, but IPFS is actually more similar to a single bittorrent swarm exchanging git objects. IPFS could become a new major subsystem of the internet. If built right, it could complement or replace HTTP. It could complement or replace even more. It sounds crazy. It is crazy.</p>
</blockquote>

<p>IPFS is still in the alpha stages of development, so we’re calling this an experiment for now. It hasn’t replaced our existing site storage (yet). Like with any complex new technology, there’s a lot of improvements to make. But IPFS isn’t vaporware, it works right now. You can <a href="http://ipfs.io/docs/install/">try it out on your own computer</a>, and already can use it to <a href="https://yorniq.xyz/permanent-web">help us serve and persist Neocities sites</a>.</p>

<p>The message I want to send couldn’t possibly be more audacious: I strongly believe <a href="http://ipfs.io">IPFS</a> <em>is</em> the replacement to HTTP (and many other things), and now’s the time to start trying it out. Replacing HTTP sounds crazy. It is crazy! But <strong>HTTP is broken</strong>, and the craziest thing we could possibly do is continue to use it forever. We need to apply state-of-the-art computer science to the distribution problem, and design a better protocol for the web.</p>

<h3 id="part-1-whats-wrong-with-http">Part 1: What’s wrong with HTTP?</h3>

<p>The Hypertext Transfer Protocol (HTTP) has unified the entire world into a single global information protocol, standardizing how we distribute and present information to eachother.</p>

<p>It is inconceivable for me to even think about what life would be like without it. HTTP dropped the cost of publishing content to almost nothing, an innovation that took a sledgehammer to the top-down economic, political, and cultural control over distribution of information (music, ideas, video, news, games, everything). As a result of liquifying information and making it the publication of it more egalitarian and accessible, HTTP has made almost everything about our culture better.</p>

<p>I love HTTP, and I always will. It truly stands among the greatest and most important inventions of all time.</p>

<p>But while HTTP has achieved many things, it’s usefulness as a foundation for the distribution and persistence of the sum of human knowledge isn’t just showing some cracks, it’s crumbling to pieces right in front of us. The way HTTP distributes content is <strong>fundamentally flawed</strong>, and no amount of performance tuneups or forcing <a href="https://threatpost.com/apple-leaves-cnnic-root-in-ios-osx-certificate-trust-lists/112086">broken</a> CA SSL or whatever are going to fix that. <a href="https://http2.github.io/">HTTP/2</a> is a welcome improvement, but it’s a conservative update to a technology that’s beginning to show its age. To have a better future for the web, we need more than a spiced up version of HTTP, we need a new foundation. And per the governance model of cyberspace, that means we need a new protocol. <a href="http://ipfs.io">IPFS</a>, I’m strongly hoping, becomes that new protocol.</p>

<h3 id="http-is-brittle">HTTP is brittle</h3>

<p><a href="http://en.wikipedia.org/wiki/CERN_httpd#/media/File:First_Web_Server.jpg"><img src="https://blog.yorniq.xyz/assets/first-web-server.jpg" alt="" /></a></p>

<p>This is a picture of the first HTTP web server in the world. It was Tim Berners-Lee’s NeXT computer at CERN.</p>

<p>Pasted on the machine is an ominous sticker: <strong>“This machine is a server, do not power it down!!”</strong>.</p>

<p>The reason it couldn’t be powered down is that web sites on other servers were starting to link to it. Once they linked to it, they then depended on that machine continuing to exist. If the machine was powered down, the links stopped working. If the machine failed or was no longer accessible at the same location, a far worse thing happened: the chain between sites becomes permanently broken, and the ability to access that content is lost forever. That sticker perfectly highlights the biggest problem with HTTP: it erodes.</p>

<p>Tim’s NeXT cube is now a museum piece. The first of millions of future dead web servers.</p>

<p>You’ve seen the result:</p>

<p><img src="https://blog.yorniq.xyz/assets/permanentweb404.png" alt="" /></p>

<p>Even if you’ve never read the HTTP spec, you probably know what 404 means. It’s the error code used by HTTP to indicate that the site is no longer on the server at that location. Usually you’re not even that lucky. More often, there isn’t even a server there anymore to tell you that the content you’re looking for is gone, and it has no way to help you find it. And unless the <a href="https://archive.org">Internet Archive</a> backed it up, you’ll never find it again. It becomes lost, forever.</p>

<p>The older a web page is, the more likely it is you’ll see 404 pages. They’re the cold-hearted digital tombstones of a dying web, betraying nothing about what knowledge, beauty, or irreverent stupidity may have once resided there.</p>

<p><img src="https://blog.yorniq.xyz/assets/moshtoyanni.jpg" alt="" /></p>

<p>One of my favorite sites from the 90s web was <a href="http://www.angelfire.com/ct/moshtoyanni/">Mosh to Yanni</a>, and viewing the site today gives a very strong example of how inadequate HTTP is for maintaining links between sites. All the static content stored with the site still loads, and my modern browser still renders the page (HTML, unlike HTTP, has excellent lasting power). But any links offsite or to dynamically served content are dead. For every weird example like this, there are countless examples of incredibly useful content that have also long since vanished. Whether eroding content is <a href="http://www.cultdeadcow.com/oldskool/mrt/Tversus.html">questionable crap</a> or <a href="http://web.archive.org/web/20030203172328/eyetap.org/wearcam/icwc98/keynote.html">timelessly useful</a>, it’s still our history, and we’re losing it fast.</p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/NdZxI3nFVJs?start=2418&amp;end=2780&amp;rel=0&amp;showinfo=0" frameborder="0" allowfullscreen=""></iframe>

<p>The reason this happens is simple: <strong>centrally managed web servers inevitably shut down</strong>. The domain changes ownership, or the company that ran it goes out of business. Or the computer crashes, without having a backup to restore the content with. Having everyone run their own personal HTTP server doesn’t solve this. If anything, it probably makes it worse.</p>

<h3 id="http-encourages-hypercentralization">HTTP encourages hypercentralization</h3>

<p>The result of this erosion of data has been further dependence on larger, more organized centralized services. Their short-term availability tends to be (mostly) good due to redundant backups. But this still doesn’t address long-term availability, and creates a whole new set of problems.</p>

<p>We’ve come a long way since John Perry Barlow’s <a href="http://ipfs.io/ipfs/QmVDWmkM87NfR85WE1LvfwfJLRcMEtfNnCBiCJQRePP7Ly">A Declaration of the Independence of Cyberspace</a>. As our electronic country becomes more influential and facilitates the world with more information, governments and corporations alike have started to pry into HTTP’s flaws, using them to spy on us, monetize us, and block our access to any content that represents a threat to them, legitimate or otherwise.</p>

<p><img src="https://blog.yorniq.xyz/assets/centralized-decentralized-distributed.jpg" alt="" /></p>

<p>The web we were intended to have was <strong>decentralized</strong>, but the web we have today is very quickly becoming <strong>centralized</strong>, as <a href="http://www.bbc.com/news/world-us-canada-34082393">billions of users become dependent on a small handful of services</a>.</p>

<p>Regardless of whether you think this is a legitimate tradeoff, this was not how HTTP was intended to be used. Organizations like the NSA (and our future robot overlords) now only have to intercept our communications at a few sources to spy on us. It makes it easy for governments to censor content at their borders by blocking the ability for sites to access these highly centralized resources. It also puts our communications at risk of being interrupted by <a href="https://github.com/blog/1796-denial-of-service-attacks">DDoS attacks</a>.</p>

<p>Distributing the web would make it less malleable by a small handful of powerful organizations, and that improves both our freedom and our independence. It also reduces the risk of the “one giant shutdown” that takes a massive amount of data with it.</p>

<h3 id="http-is-inefficient">HTTP is inefficient</h3>

<p>As of this writing, Gangnam Style now has over 2,344,327,696 views. Go ahead, watch it again. I’ll wait for you.</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/9bZkp7q19f0" frameborder="0" allowfullscreen=""></iframe>

<p>Let’s make some assumptions. The video clocks in at 117 Megabytes. That means (at most) 274,286,340,432 Megabytes, or 274.3 Petabytes of data for the video file alone has been sent since this was published. If we assume a total expense of 1 cent per gigabyte (this would include bandwidth and all of the server costs), $2,742,860 has been spent on distributing this one file so far.</p>

<p>That’s not too bad… if you’re Google. But if you’re a smaller site, the cost to serve this much data would be astronomical, especially when bandwidth rates for small players start around $0.12 per gigabyte and go as high a $0.20 in Asia. I’ve spent the better part of my work at Neocities battling expensive bandwidth to ensure we can keep running our infrastructure at low cost.</p>

<p>HTTP lowered the price of publishing, but it still costs money, and these costs can really add up. Distributing this much data from central datacenters is potentially very expensive if not done at economies of scale.</p>

<p>What if, instead of always serving this content from datacenters, we could turn every computer on an ISP’s network into a streaming CDN? With a video as popular as Gangnam Style, it could even be completely downloaded from within an ISP’s network, not requiring numerous hops over the internet backbone. This is one of the many things IPFS is capable of improving (we’ll discuss this in a bit).</p>

<h3 id="http-creates-overdependence-on-the-internet-backbone">HTTP creates overdependence on the Internet backbone</h3>

<p>When content is hypercentralized, it makes us highly dependent on the internet backbones to the datacenters functioning. Aside from making it easy for governments to block and censor content, there are also reliability problems. Even with redundancies, major backbones sometimes get <a href="http://en.wikipedia.org/wiki/2008_submarine_cable_disruption">damaged</a>, or <a href="https://blog.cloudflare.com/why-google-went-offline-today-and-a-bit-about/">routing tables go haywire</a>, and <a href="https://www.youtube.com/watch?v=VlKisWR74mU">the consequences can be drastic</a>.</p>

<p>I got a weird taste of that a few months ago, when Neocities slowed down after a car crashed into a fiber uplink we use in Canada (no suspects yet, but a few <a href="images/rickycar.jpg">promising leads</a>). I’ve also heard stories where hunters have shot at the fiber cables connecting the eastern Oregon datacenters (the enormous ones that store a <em>lot</em> of data), requiring engineers to show up on snowmobiles with cross country skis to repair the fiber lines. Since I wrote this post, details have emerged on a <a href="http://www.thedailybeast.com/articles/2015/07/04/who-s-cutting-california-internet-cables-the-fbi-has-no-idea.html">sophisticated attack on fiber lines</a> happening in the Bay Area. The point is, the internet backbone isn’t perfect, it’s easy to attack it, and it’s easy for service to get affected by a few important fiber lines getting cut.</p>

<h3 id="part-2-how-ipfs-solves-these-problems">Part 2: How IPFS solves these problems</h3>

<p>We’ve discussed HTTP’s problems (and the problems of hypercentralization). Now let’s talk about how IPFS, and how it can help improve the web.</p>

<p>IPFS fundamentally changes the way we look for things, and this is it’s key feature. With HTTP, you search for locations. With IPFS, you search for <em>content</em>.</p>

<p>Let me show you an example. This is a file on a server I run: <a href="https://yorniq.xyz/img/neocitieslogo.svg">https://yorniq.xyz/img/neocitieslogo.svg</a>. Your browser first finds the location (IP address) of the server, then asks my server for the file using the path name. With that design, only the owner (me) can determine that this is the file you’re looking for, and you are forced to trust that I don’t change it on you by moving the file, or shutting the server down.</p>

<p>Instead of looking for a centrally-controlled location and asking it what it thinks /img/neocitieslogo.svg is, what if we instead asked a distributed network of millions of computers not for the name of a file, but for <em>the content that is supposed to be in the file?</em></p>

<p>This is precisely what IPFS does.</p>

<p>When neocitieslogo.svg is added to my IPFS node, it gets a new name: <a href="http://ipfs.io/ipfs/QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU">QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU</a>. That name is actually a <a href="http://en.wikipedia.org/wiki/Cryptographic_hash_function">cryptographic hash</a>, which has been computed from the contents of that file. That hash is guaranteed by cryptography to <em>always</em> only represent the contents of that file. If I change that file by even one bit, the hash will become something completely different.</p>

<p>When I ask the IPFS distributed network for that hash, it efficiently (20 hops for a network of 10,000,000) finds the nodes that have the data using a <a href="https://en.wikipedia.org/wiki/Distributed_hash_table">Distributed Hash Table</a>, retrieves it, and verifies using the hash that it’s the correct data. Early DHT designs had issues with <a href="https://en.wikipedia.org/wiki/Sybil_attack">Sybil attacks</a>, but we have <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.68.4986">new ways</a> to address them, and I’m very confident this is a solvable problem (unlike the problems with HTTP, which are just going to be broken forever).</p>

<p>IPFS is general purpose, and has little in the way of storage limitations. It can serve files that are large or small. It automatically breaks up larger files into smaller chunks, allowing IPFS nodes to download (or stream) files from not just one server like with HTTP, but hundreds of them simultaneously. The IPFS network becomes a finely-grained, trustless, distributed, easily federated Content Delivery Network (CDN). This is useful for pretty much everything involving data: images, video streaming, distributed databases, entire operating systems, blockchains, backups of 8 inch floppy disks, and most important for us, <strong>static web sites</strong>.</p>

<p>IPFS files can also be special IPFS directory objects, which allow you to use human readable filenames (which transparently link to other IPFS hashes). You can load the directory’s index.html by default, the same way a standard HTTP server does. Using directory objects, IPFS allows you to make static web sites exactly the same way you make them today. It’s a single command to add your web site to an IPFS node: <code class="language-plaintext highlighter-rouge">ipfs add -r yoursitedirectory</code>. After that, it’s available from any IPFS node without requiring you to link to any hashes in the HTML (<a href="http://ipfs.io/ipfs/QmcKi2ae3uGb1kBg1yBpsuwoVqfmcByNdMiZ2pukxyLWD8/">example</a>, and <a href="http://ipfs.io/ipfs/QmZwebpGTFPRTaab9t5Y5JuwrbuzCzqWLwdeUGDR8N3hn8">example with index.html renamed</a>).</p>

<h4 id="federating-data-with-ipfs">Federating data with IPFS</h4>

<p>IPFS doesn’t require every node to store all of the content that has ever been published to IPFS. Instead, you choose what data you want to help persist. Think of it like bookmarks, except instead of bookmarking a link to a site that will eventually fail, you back up the entire site for yourself, and volunteer to help to serve the content to others that want to look at it.</p>

<p>If a lot of nodes host a little bit, these little bits quickly add up to more space, bandwidth and availablity than any centralized HTTP service could ever possibly provide. The distributed web will quickly become the fastest, most available, and largest store of data on the planet earth. And nobody will have the power to “burn books” by turning it all off. This Library of Alexandria is <em>never</em> going to burn down.</p>

<p>Copying, storing and helping serve web sites from other IPFS nodes is easy. It just takes a single command and the hash of the site: <code class="language-plaintext highlighter-rouge">ipfs pin add -r QmcKi2ae3uGb1kBg1yBpsuwoVqfmcByNdMiZ2pukxyLWD8</code>. IPFS takes care of the rest.</p>

<h4 id="ipns">IPNS</h4>

<p>IPFS hashes represent <a href="https://en.wikipedia.org/wiki/Persistent_data_structure">immutable data</a>, which means they cannot be changed without the hash being different. <strong>This is a good thing</strong> because it encourages data persistence, but we still need a way to find the latest IPFS hash representing your site. IPFS accomplishes this using a special feature called <strong>IPNS</strong>.</p>

<p>IPNS allows you to use a private key to sign a reference to the IPFS hash representing the latest version of your site using a public key hash (pubkeyhash for short). If you’ve used Bitcoin before, you’re familiar with this - a Bitcoin address is also a pubkeyhash. With our Neocities IPFS node, I signed the image of Penelope (our site mascot) and you can load it using our IPNS pubkeyhash for that node: <a href="http://ipfs.io/ipns/QmTodvhq9CUS9hH8rirt4YmihxJKZ5tYez8PtDmpWrVMKP">QmTodvhq9CUS9hH8rirt4YmihxJKZ5tYez8PtDmpWrVMKP</a>.</p>

<p>IPNS isn’t done yet, so if that link doesn’t work, don’t fret. Just know that I will be able to change what that pubkeyhash points to, but the pubkeyhash will always remain the same. When it’s done, it will solve the site updating problem.</p>

<p>Now we just need to make the location of these sites human-readable, and we’ve got all the pieces we need.</p>

<h4 id="human-readable-mutable-addressing">Human-readable mutable addressing</h4>

<p>IPFS/IPNS hashes are big, ugly strings that aren’t easy to memorize. So IPFS allows you to use the existing Domain Name System (DNS) to provide human-readable links to IPFS/IPNS content. It does this by allowing you to insert the hash into a TXT record on your nameserver (if you have a command line handy, run this: <code class="language-plaintext highlighter-rouge">dig TXT ipfs.git.sexy</code>). You can see this in action by visiting <a href="http://ipfs.io/ipns/ipfs.git.sexy/">http://ipfs.io/ipns/ipfs.git.sexy/</a>.</p>

<p>Going forward, IPFS has plans to also support <a href="http://namecoin.info/">Namecoin</a>, which could theoretically be used to create a completely decentralized, distributed web that has no requirements for a central authority in the entire chain. No ICANN, no central servers, no politics, no expensive certificate “authorities”, and no choke points. It sounds crazy. It is crazy. And yet, it’s completely possible with today’s technology!</p>

<h4 id="ipfs-http-gateway-the-bridge-between-the-old-web-and-the-new">IPFS HTTP gateway: The bridge between the old web and the new</h4>

<p>The IPFS implementation ships with an HTTP gateway I’ve been using to show examples, allowing current web browsers to access IPFS until the browsers implement IPFS directly (too early? I don’t care). With the IPFS HTTP gateway (and a little nginx shoe polish), we don’t have to wait. We can soon start switching over to IPFS for storing, distributing, and serving web sites.</p>

<h3 id="how-were-using-ipfs-now">How we’re using IPFS now</h3>

<p>Our initial implementation of IPFS is experimental and modest, for now. Neocities will be publishing an IPFS hash once per day when sites are updated, accessible from every site profile. This hash will point to the latest version of the site, and be accessible via our IPFS HTTP gateway. Because the IPFS hash changes for each update, this also enables us to provide an archive history for all the sites, something we automagically just get from the way that IPFS works anyways.</p>

<h3 id="how-well-use-ipns-in-the-future">How we’ll use IPNS in the future</h3>

<p>Long-term, if things go well, we want to use IPFS for storing all of our sites, and issue IPNS keys for each site. This would enable users to publish content to their site independently of us. If we do it right, <strong>even if Neocities doesn’t exist anymore, our users can still update their sites</strong>. We effectively take our user’s central dependence on our servers and smash it to pieces, permanently ruining our plans for centralized world domination forever. It sounds awesome. It is awesome!</p>

<p>It’s still early, and there’s much work to do before <a href="http://ipfs.io/">IPFS</a> can replace HTTP without needing to describe the idea as <a href="http://www.youtube.com/watch?v=tjgtLSHhTPg">crazy</a>. But there’s no time like the present to plan for the future. It’s time for us to get to work. Accept the <a href="https://archive.org/">Internet Archive</a>’s challenge: <strong>distribute the web</strong>.</p>

<p>– Kyle</p>]]></content><author><name></name></author><category term="blog" /><summary type="html"><![CDATA[]]></summary></entry></feed>