Nitrogen brings interactive web applications to Erlang.
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. Handling the event is as
simple as writing an Erlang function.
Nitrogen 2.3 introduces a dependency-free testing framework for
validating your pages, postbacks, actions, and elements all work as
expected. Create test cases that are instantiated server-side, execute
something client-side (such as button presses), and validate the result
View the documentation
then check out
the actual tests used by NitrogenProject.com
Update or replace entire sections of your page asynchronously over
websockets in a single line of code (with a clean fallback to ajax if
Websockets are not supported by the proxy or client). Nitrogen lets you
use the same consistent syntax to both build AND update the page.
Nitrogen also includes support for long-running processes. By simply
wrapping your long-running function call with a single line of code,
you can turn a synchronous function into a long-running asynchronous
With Nitrogen's element construct, you rarely have to shift contexts
from a server-side mentality (Erlang) to a client-side mentality (HTML,
still needs to be written). Never shift contexts from client to
server and back again.
Or put more succinctly, "Whereas Node.js brings the client-side to
the server, Nitrogen brings the server-side to the client."
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.
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
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.
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.
Nitrogen brings all of the advantages of Erlang to web application
development, including hot code swapping, stability, and scalability.
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.
Nitrogen uses JQuery and the JQuery UI library for client side