Fork me on GitHub
Learn More

Nitrogen brings interactive web applications to Erlang.

Event-Driven Development

Nitrogen uses an event-driven model built on top of Erlang pattern matching. Nitrogen allows you to tag elements with any Erlang term, and then act on the tag in server-side code when the user clicks on, hovers over, or otherwise interacts with the element. Catching the event is as simple as writing an Erlang function.

Brainlessly Easy Ajax

Nitrogen allows you to update or replace a section of your page using Ajax in just one line of code. Most importantly, Nitrogen lets you use the same consistent syntax to both build AND update the page.

Ridiculously Simple Comet

Nitrogen includes Comet support, allowing you to build interactive web applications that push data to the browser. By simply wrapping your function call in one line of code, you can turn a synchronous function into a long-running asynchronous function.

Complex Interfaces: Drag/Drop/Sort

With Nitrogen, you can let a user interact with your application in complex ways. Nitrogen lets you tag the draggable, droppable, or sortable elements, and then respond to the resulting events in server-side code as easily as you would respond to a click.

Flexible Templating

Nitrogen includes a simple but powerful template system, allowing you to define a consistent style for your application. You can add headers, footers, and parameterized plugins to your page using a simple callout mechanism.

Data Binding

Nitrogen leverages the power of Erlang data structures and pattern matching to enable powerful one-way databinding. Data binding support makes it easy to display repeated documents like blog posts or comments.

Infinitely Extendible

With Nitrogen, you can create your own custom complex elements and actions, then package them up as Nitrogen Plugins, to easily include in other Nitrogen projects without having to copy-and-paste, or share them with the world.

Erlang Power

Nitrogen brings all of the advantages of Erlang to web application development, including hot code swapping, stability, and scalability.

Technology Stack

Mac, Linux, Windows, FreeBSD, Raspberry Pi etc.

Any platform that can run Erlang can also run Nitrogen, including Mac, Linux, Unix, and Windows (among others). Nitrogen does not contain any platform specific code.

Mochiweb, Yaws, Cowboy, Webmachine, or Inets for Serving

Nitrogen supports some of the most popular Erlang web servers equally: Mochiweb, Yaws, Cowboy, Webmachine, and Inets. Nitrogen abstracts out the server specific code, meaning that you write your application on one http server and seamlessly transfer to a different http server without changing a thing.

JQuery/JQuery UI/JQuery Mobile for Javascript and Effects

Nitrogen uses JQuery and the JQuery UI library for client side Javascript and the JQuery Mobile library for mobile development.

Documentation

Nitrogen documentation is available for browsing online. It is also included in the source code under /doc/html, and is packaged in all binary downloads.

Read What's New in Nitrogen 2.x »

About Nitrogen

Nitrogen was created in 2008 by Rusty Klophaus (@rustyio). In June 2011, Jesse Gumm (@jessegumm) took over as project lead. It is in active development and is available for use under the MIT License.

Twitter: @nitrogenproject

Official Maintainers

Thanks!

Thanks to the many people who have helped make Nitrogen better, including:

  • Chris Williams (@voodootikigod)
  • Joel Reymond (@wagerlabs)
  • Tom McNulty
  • Martin Scholl (@zeit_geist)
  • Dave Peticolas
  • Jon Gretar Borgthorsson (@jongregar)
  • Dan Bravender (@dbravender)
  • Taavi Talvik
  • Torbjorn Tornkvist (@kruskakli)
  • Marius A. Eriksen (@marius)
  • Michael Mullis
  • John Dragos
  • Benjamin Nortier (@bjnortier)
  • Jay Doane
  • Robert Schonberger
  • Yurii Rashkovskii (@yrashk)
  • Ville Koivula
  • Manuel Duran Aguete
  • Jan-Felix Wittmann
  • Martin Sivak
  • Mattias Holmlund
  • Loïc Hoguin (@lhoguin)
  • Justin Kirby
  • Lorant Kurthy
  • Jonas Ådahl
  • Susan Potter (@susanpotter)
  • Rado Kozmer (@rkozmer)
  • Tuncer Ayaz
  • Steffan Panning
  • James Pharaoh
  • Sergei Lebedev
  • Milan Svoboda
  • Jenő I. Hajdu
  • Maxim Sokhatsky (@5HT)
  • Roman Shestakov (@rshestakov)
  • Witeman Zheng
  • Chan Sisowath
  • Florent Gallaire
  • Dmitriy Kargapolov
  • Andrii Zadorozhnii
  • Evan Miller (@evmill)
  • Alice Blitter Copper
  • Petr Kozorezov
  • Nikolay Garanko
  • Paul Khusainov
  • David N. Welton (@davidnwelton)
  • Tobias Herre
  • Josh Pyle
  • Niclas Axelsson
  • Evgeny M.
  • Boris Resnick
  • Piotr Nosek
  • Stefan Zegenhagen
  • Mehmet Emin Tok
  • Stuart Thackray
Copyright © 2008-2014 Nitrogen Web Framework. Released under the MIT License.