Skip to content


Subversion checkout URL

You can clone with
Download ZIP
RePo is a new HTML5 technique for decentralizing the web. Repo The Web is an experimental shim to provide cross browser support.
JavaScript Shell
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Repo the Web

A JavaScript shim which provides the registerProtocolHandler JavaScript API to browsers which have not implemented it yet.

Unlike most polyfills, this one must be centrally hosted as it uses localStorage to maintain protocol registrations.


  1. Go to Fake Rhapsody and "Install Rhapsody".
  2. Go to Fake Music Blog and click one of the music links. Note: Fake bitcoin link to see what an unknown protocol does.
  3. Repo The Web config to see installed handlers or to delete them all.

RePo Shim Usage

A Music Service

<script src=""></script>
navigator.xregisterProtocolHandler('music', '', 'Great Music App');

A Blog with Music Links

<p>Jimmie's <a href="">The Cry of Love</a></p>

TODO add meta tag example

Hacking on Demo

If you want to work localy on the demo, here is one way to do it.

$ sudo emacs /etc/hosts

Add the following to entry localhost my-machine

$ cp src/config.js-dist src/config.js
$ emacs bin/
$ bin/

# new terminal 1
$ cd www/
$ python -m SimpleHTTPServer 8001
# new terminal 2
$ cd www/
$ python -m SimpleHTTPServer 8002
# new terminal 3
$ cd www/
$ python -m SimpleHTTPServer 8003

# build
$ cd src
$ node ../lib/r.js -o baseUrl=. name=../lib/almond.js include=include out=../www/ wrap=true optimize=''
# Optional
$ node ../lib/r.js -o baseUrl=. name=../lib/almond.js include=include out=../www/ wrap=true
Something went wrong with that request. Please try again.