RePo is a new HTML5 technique for decentralizing the web. Repo The Web is an experimental shim to provide cross browser support.
JavaScript Shell
Switch branches/tags
Nothing to show
Pull request Compare This branch is 21 commits ahead of mozilla: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> <script> navigator.xregisterProtocolHandler('music', '', 'Great Music App'); </script>

###A Blog with Music Links###

Jimmie's The Cry of Love

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
# new terminal 4
$ cd www/
$ python -m SimpleHTTPServer 8004

# 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

Translation specific instructions can be find in /www/