Skip to content
A set of light tools and conventions for cohosting public websites and files on IPFS
Branch: master
Clone or download
hacdias and lidel Add fetching the contents to the SPEC (#5)
License: MIT
Signed-off-by: Henrique Dias <>
Co-Authored-By: Marcin Rataj <>
Latest commit 31550b0 Oct 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.

Experiment in MFS-based cohosting

Exploration around simple tools and conventions for cohosting existing websites with IPFS


  • Make it easier for people to contribute storage and bandwidth to sites and datasets they care about
    • Support IPNS (libp2p keys) and DNSLink roots (human-readable)
    • Switch tools like ipfs-cohost and ipfs-companion from raw pins to MFS
  • Periodically detect updates to and preload them to a local node
  • Experiment in userland: make it easy to implement, no new APIs, reuse existing ones

Scope vs. Use Cases

See this analysis.



🚧 note: this is a draft, an early, exploratory experiment 🚧

Feedback is welcome. Fill an issue!

Potential Implementations

This specification is not implemented yet. The following IPFS Shipyard projects could implement it:

🍎 = Not started
🍊 = In progress
🍏 = Complete


MVP bash script that can be used for cli

  • add rm for adding / removing sites to cohosting list via commandline
  • sync a command to run cohosting check (for use in crond etc)
  • gc [n] drop all old snapshots (if n is provided, keeps that many snapshots per site)

🍎 ipfs-cohost

NPM-based interactive cli tool

  • switch from pin to MFS-based spec

🍎 ipfs-companion

browser extension

  • provides UI for adding / removing sites via browser action menu
  • runs cohosting check periodically

🍎 ipfs-desktop

desktop app and GUI for managing go-ipfs

  • runs cohosting check periodically

🍎 ipfs-webui

web frontend for IPFS node

  • provides UI for adding / removing sites to cohosting list as an experiment on Settings page
You can’t perform that action at this time.