Fork us on GitHub

+PeerServer: A Server in a Browser with WebRTC

Sophia Westwood and Brie Bunge

(sophia at cs.stanford.edu, @sophiawestwood | brie at cs.stanford.edu)

(Supported in Chrome (31+) and Firefox (22+). Firefox is generally more reliable with our WebRTC library.)

Get Started

  1. Pick a name and create a server!
    • The blank template is best to start, then try the others for more complex features.
  2. You're serving a website! Click 'Open Browser' to visit.
    • Share this URL with others.
  3. Edit index.html, and save to update your site.

Bonus: Create CSS files, upload images, and add HTML.

Bonus: Add routes, a database, templating, and accounts! (Check out the pre-existing templates for examples.)

In trouble? Be sure you are using a recent version of Chrome or Firefox (Firefox will likely be more reliable).

Still in trouble? Sorry :/ The WebRTC API is in flux and reliable data channels are not fully reliable -- combined with our eight-week development period, PeerServer is more proof-of-concept than robust.

About

We built PeerServer in 8 weeks for our Stanford senior project in Spring 2013. PeerServer is a peer-to-peer client server using WebRTC, where your browser acts as a server for other browsers across WebRTC peer-to-peer data channels. You can create a client-server within your browser tab, upload content, and generate dynamic content using a mock-database, templating system, and sessions. Any client browser that connects to your client server will behave as if it is talking to a traditional server while in fact exclusively hitting your server.

This system allows you to quickly create a decentralized, short-lived web application where all the content lives within your browser. The traditional server only performs the initial handshake between the client-browsers and the client-server; your browser serves all other content peer-to-peer.

To learn more, watch the demos below and read the poster. Try picking a name and creating a server!

Demo

Get started with your first server! Create, edit, and upload static HTML and CSS. Build a basic dynamic route. Includes a brief technical walkthrough of the system.

More Advanced Features

Extend a pre-existing template to build a grocery list web app! Explore more advanced features including dynamic routes, the in-browser database, and templates.

Poster

From June 2013, when we presented PeerServer at Stanford's senior project fair (winning top awards from Twitter, Palantir, Hearsay Social, and VMWare).

poster