Seaside (software)

Although subsequent improvement of state handling in web browser JavaScript engines have meant this aspect is less important today,[citation needed] Seaside's method of handling of browser state (via continuations) was an initial point of interest in the first years following its 2002 release.

In development-mode, unhandled errors are reported to the web page; developers can access and alter the program code and state directly from the web page, allowing bug identifying and fixing processes to occur within an integrated development environment (IDE).

Seaside also supports the notion of tasks, which allow a programmer to describe the high-level logic of component interaction.

The developers and users of Seaside argue that this helps enforce separation of structure (markup) from content and presentation (Cascading Style Sheets (CSS)).

[7] Seaside's combination of components, callbacks, and closures can significantly reduce the semantic gap between a complex workflow and its representation in code.

Over the last few years, some best practices have come to be widely accepted in the web development field: Seaside deliberately breaks all of these rules.

[15] The web server package in the standard library of Racket (Programming language) uses a very similar philosophy, also based on continuations.