Skip to content


Switch branches/tags


This project began at Basho, the creators and maintainers of Riak. Due to the importance of webmachine to the broader Erlang community, a new organization was formed. Please contact @seancribbs to get involved.


Build Status

Webmachine is an application layer that adds HTTP semantic awareness on top of the excellent bit-pushing and HTTP syntax-management provided by mochiweb, and provides a simple and clean way to connect that to your application's behavior.

More information is available here. You can also read past blog posts about Webmachine here.


Webmachine is a rebar3 project.

Running all tests and dialyzer is as easy as

make all

However, if you'd like to run them separately:

  • EUnit: rebar3 eunit
  • Dialyzer: rebar3 dialyzer

If you don't have rebar3, you should get it. If you don't want to, it's downloaded as part of make all

Quick Start

A rebar3 template is provided for users quickly and easily create a new webmachine application.

$ mkdir -p ~/.config/rebar3/templates
$ git clone ~/.config/rebar3/templates
$ rebar3 new webmachine your_app_here

Once a new application has been created it can be built and started.

$ cd your_app_here
$ rebar3 release
$ _build/default/rel/your_app_here/bin/your_app_here console

The application will be available at http://localhost:8080.

To learn more continue reading here.


We encourage contributions to webmachine from the community.

  1. Fork the webmachine repository on Github.

  2. Clone your fork or add the remote if you already have a clone of the repository.

git clone


git remote add mine
  1. Create a topic branch for your change.
git checkout -b some-topic-branch
  1. Make your change and commit. Use a clear and descriptive commit message, spanning multiple lines if detailed explanation is needed.

  2. Push to your fork of the repository and then send a pull-request through Github.

git push mine some-topic-branch
  1. A community maintainer will review your pull request and merge it into the main repository or send you feedback.