Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Rebar Erlang and OTP templates written by Susan Potter of Finsignia. Until Rebar supports global default variable setting, you will probably need to fork this repository and edit the author_name and author_email in the variables section of the .template files.

tree: 45428defcd

Fetching latest commit…

Cannot retrieve the latest commit at this time


Rebar Templates


This might really only be useful for me, but I thought I would share the
Rebar templates that I have written to streamline my Erlang development.

So far it only consists of templates for the following:

  • ejabberd module
  • OTP gen_server callback modules
  • OTP gen_event callback modules
  • simple rebar project layout
  • escript starter script
  • OTP application and supervisor callback modules
  • Nitrogen page handler (for Nitrogen v2+)


If you don’t already you can clone this Git repository in your ${HOME}/.rebar/templates directory, i.e.:

 $ git clone git:// ~/.rebar/templates

(Thanks @dizzyd for the pointer.)

Alternatively you can add this as a submodule under ${PROJECT_ROOT}/priv/templates if you want to use
these templates just for a particular project.



  • Ahmed D. Omar – bug fix in ejabberdmod template (s/init\/7/init\/2/ in exports).


Rebar Project Layout

If you want to create a new rebar directory layout for your new project you can do the following:

 $ mkdir project_name
 $ cd project_name
 $ rebar create template=project project_name=project_name description="Describe your project here."

This will generate 6 directories and 4 files by default that are organized like the following:

. ├── deps/ ├── ebin/ ├── Emakefile ├── include/ ├── Makefile ├── priv/ ├── README ├── rebar.config ├── src/ └── tests/

ejabberd Module

To generate a stub of an ejabberd extension module that intercepts sent and received packets you can do the following:

%% inside your rebar based project directory $ rebar create template=ejabberdmod name=mod_name_here


Something went wrong with that request. Please try again.