[erlang-questions] [ANN] Nitrogen Web Framework 2.2 Released

Jesse Gumm <>
Fri Oct 18 08:28:57 CEST 2013

I'm proud to announce the 2.2 release of the Nitrogen Web Framework.
(2.2.0 was soft-released two weeks ago, and 2.2.1 bugfix release was
just finished moments ago)

Downloads and Docs (official site): http://nitrogenproject.com
Github repo: https://github.com/nitrogen/nitrogen
Full Changelog (2.2.0 and 2.2.1):
IRC: #nitrogen on irc.freenode.com
Mailing list: https://groups.google.com/forum/#!forum/nitrogenweb
Twitter: @nitrogenproject

## Major Updates in 2.2

* Added a plugin system, which automatically brings in static
resources, and necessary include files
(http://nitrogenproject.com/doc/plugins.html )
* Added support for Erlang "Slim releases" (releases that don't
include the full Erlang system).
* Added an "embed" script for easily adding Nitrogen to an existing
Application (http://sigma-star.com/blog/post/embedding-nitrogen )
* Added typespecs to all Nitrogen element records and a lot of
Nitrogen internal functions for dialyzer support.
* Added the ability to expand on validation failures, including
customized messages for client-side only validation failures, or
server-side failures. (example:
http://nitrogenproject.com/demos/validation )
* Added official builds for FreeBSD and Raspberry Pi (along with the
standard Linux, OSX, and Windows)
* data_fields (the Nitrogen approach to HTML "data-" attributes) have
been added to all elements.
* Added a crash handler for gracefully handling crashes rather than
giving the user the scary "Internal Server Error" message
(http://nitrogenproject.com/doc/handlers/crash.html )
* Added action wiring prioritization through the use of wf:eager and
wf:defer (Anything wired with wf:eager will execute before wf:wire,
which will execute before wf:defer). This is a common solution to
wiring events to elements that haven't been drawn yet.
* The usual: New elements, new actions, reworked some elements, a few
new API calls, bugfixes, and further expanded docs (See changelog)
* The nitrogen-elements repo has had a big update thanks to Roman
Shestakov: https://github.com/RomanShestakov/nitrogen_elements/network

## Why Plugins?

Due to the fact that I've had some folks ask why I added plugins, I've
made a quick writeup of the reasoning:

## Roadmap for Nitrogen 2.3 and beyond

* Websockets as an alternative to comet (without abandoning comet for
mochiweb, webmachine, and inets) added to simple bridge so that
websockets+yaws can be used with both Nitrogen and ChicagoBoss. (I've
put this off far too long!)
* Add support for Wooga's Elli server.
* Integrated testing suite for the browser.
* Further improve release handling, including generating releases and
relups from the standard generated development releases.
* More plugins!

## Closing thoughts

Hacking on and supporting Nitrogen continues to be a huge passion of
mine, with the joy received in working on it, seeing others benefit
from it, and of course using Nitrogen to improve my own products.

So with that, I say thank you everyone who has submitted pull
requests, interacted on the mailing list, IRC, Github, or emailed me
directly with questions, and who have provided feedback, code,
documentation, or even just general enthusiasm as well as to the
extremely helpful Erlang community at large - you folks are all great!
And of course, a big thanks to Rusty Klophaus for the initial

Thanks again, and happy hacking!

Jesse Gumm
Owner, Sigma Star Systems
414.940.4866 || sigma-star.com || @jessegumm

More information about the erlang-questions mailing list