Peer-to-peer hypermedia protocols and Netlify

Today, it is fairly easy to create a Dat website (dat://<ed25519 public key>) that works with the Beaker browser, but what can we expect from peer-to-peer hypermedia protocols like IPFS and Dat in the future? And what is Netlify’s approach to the peer-to-peer web?

Hi, @tmoberg, it appears the protocols are alternatives to HTTP. Both of these protocols appear to be peer-to-peer protocols and, because of this, I’m not sure where you see Netlify’s role in this.

Netlify focused on supporting a specific type of website, those using JAMStack design principles. You can host any static site at Netlify, but JAMStack site designers are our core audience for our service.

A peer-to-peer network is not part of the JAMStack design philosophy (which is not to say that is shouldn’t be but if so this use case isn’t clear to me). I personally don’t see how these peer-to-peer protocols would be integrated into our service.

We’re open to the idea of supporting these protocols but what support itself should be remains vague - as least to me.

Would you be willing to tell us more about how you see these protocols being used on Netlify sites? What are your hopes and/or requirements for such support?

Hi @luke! Whether these protocols are compatible with JAMStack seems to be an important question, but what made me curious was this blog post.

That is indeed an interesting blog post. Though I doubt we will be supporting something like IPFS in the near future. As Luke mentioned, would you be willing to tell us more about how you see these protocols being used on Netlify sites? What are your hopes and/or requirements for such support?

1 Like

Hi @Dennis,

My experience is limited to the Dat protocol, but I think it is awesome to be able to share the dat:// version of my sites from the same local folders that I deploy to Netlify.

What I am looking for is a seamless way to integrate the preferred peer-to-peer protocol(s) in the build process, just as it is possible to choose building tools, manage dependencies, and configure environmental variables.

A future feature? You are the masters of seamless integration.

Thanks!

Hi, @tmoberg, I suppose we’re just trying to understand the requirements for such a feature request. We understand that you want to use these protocols with your Netlify site but what is missing is an actionable set of requirements which define how they are intended to be used.

In other words, what sort of functionality do you require - as specifically as possible??

For example:

  • Do you want to include IPFS and/or Dat URLs in your site content?
  • Do you want to access IPFS and/or Dat URLs during the site build similar to making a GraphQL query during the build process?
  • Do you want the site itself hosted using IPFS/Dat and not or in addition to HTTP?

I think the first two options (accessing IPFS/Dat URLs during the build and including URLs on your pages) are likely possible already.

Your HTML can contain any data you like (including invalid HTML). So, embedding the URLs should be possible already.

If the goal is to use the protocols during the build, in the case of Dat there are tools which are npm modules to access this type of URL already. Adding those as dependencies in a site’s package.json file will install them prior to the site build and make that code available for use during the build itself. IPFS isn’t node software but I suspect there is a way to install it on the build system during the site build as well (but maybe not - as I’m no expert with this software).

If the goal if for the deployed sites themselves being hosted at Dat and/or IPFS URLs, I’m not aware of any plans for us to support this at this time. We’re be happy to enter a feature request for this if this is your objective, however.

Hi @luke, no I was not very specific with my requirements, and, honestly, at this stage, do not have the knowledge and experience to be that. I have a general interested in peer-to-peer protocols, and appreciate that you define the three use cases.

I have already embedded dat:// URLs on my sites, so that is possible. The second one was new to me, and seems promising in the short term - at least for Dat. I leave the third one open.