Reaction is a set of modules on top of Catalyst that provides a full component UI system.

Reaction is similar to Apache Wicket. Albeit not as mature, it aspires to be, and to do so with the elegance of Perl.

Get excited

FormFu and Rose::HTML::Objects are "local maxima" of particular solutions to the form-based data input and Object-Relational-Mapper problems. They are very good implementations, but of limited ideas. Reaction aims to be a very good implementation of a more extensible idea.


MVC vs. the Component model and bare Catalyst vs. Wicket:

I actually prefer the event/component way of dealing with things over MVC. For simple REST based applications I would go with Catalyst. For large and complex applications I would pick Wicket. add(new Link("foo") { onClick() { ... do stuff... }); instead of forwarding to a controller action. Event based. Then components are self aware, they know how to handle them selves, so I can drop an "invite a friend" component any where on the site and it just works. I don't need to know anything about the implementation/flow of it. kinda illustrates component nature, you can select a specific category and search on it. To do this in Wicket is simple, on a MVC framework it would be painful. Catalyst is a lot easier to work with. Wicket/hibernate/spring requires a lot of up front investment. Wicket and hibernate are both really complex abstractions. -- Victor Igumnov


From the data to the rendered page, these are the concepts used by Reaction:

See also the Reaction tutorial by mateus.


Do I need this many layers for a simple Hello World app?

A: Reaction does not aim at trivial applications; instead, it enforces structured programming practices to build complex and flexible real-world web applications. There is an upfront cost paid to build this structure, but gains will become apparent as the application grows.

Get started

Look through the source code

With what Modules should I be familiar?