Lagoon is an XML-based framework for web site maintenance.

Lagoon does not require support for any dynamic content technology, such as Servlets, CGI, ASP, SSI, PHP or JSP, on the web server. It's therefore very useful for sites on cheep web hotels which gives limited (or no) access to dynamic content features. However, Lagoon is useful larger sites too, and can be used together with other dynamic content technologies.

Lagoon is also useful for building HTML based documentation bundles, for viewing without a web server.

Background and philosophy

The web server: Static and dynamic content

The basic functionality of a web server is to send the content of a regular file stored on disk as the response of a request, this is called static content. The other alternative is to start a process that generates the response for each request, this is called dynamic content. The use of dynamic content can be divided into several categories as follows.

where the requested document is generated by composing information from several files and/or from a database. The information in the files and in the database is static, i.e. updated in a controlled manner and not very frequently. This is called pseudo-dynamic since the produced document is a function of static information only. In principle, this use of dynamic content is not necessary since the updates could have been done in static content. The main reason for using this approach is easier maintenance and updates. Technologies such as SSI, ASP, PHP and JSP are used for this.
Real-time data
where the generated document depends on some information that is updated frequently and outside the control of the web server. Technologies such as CGI and Servlets (sometimes also ASP, PHP and JSP) are used for this.
User interaction
where the generated document depends on parameters in the request and/or state information from previous requests. Technologies such as CGI and Servlets (sometimes also ASP, PHP and JSP) are used for this.

It is also possible to have combinations (such as both real-time data and user interaction).

Where Lagoon fits in

Lagoon produces all your pseudo-dynamic content off-line, and send the result to the web server as static files. This can give better performance, since processing doesn't have to be done at each request. This also gives you convenient pseudo-dynamic content on a web server without explicit support for it.

Lagoon does not handle user interaction, you have to use the conventional technologies for this. However, while using ASP, JSP (or whatever) for the few pages with user interaction, you can still use Lagoon for the rest of the site.

Lagoon can in some cases be used for real-time data, but this requires a more complicated setup than usual.

In addition, Lagoon keeps track of all content for your web site, including static files (HTML, images, etc.) and any files for user interaction (ASP or JSP pages, CGI scripts, or whatever). Lagoon automatically detects if any source file is updated and regenerate the dependent content as necessary (and only when necessary). Lagoon can be seen as a Make tool for web sites, you have the "source code" on your computer, Lagoon performs "compilation" as necessary and stores the "object code" directly on the web server (with FTP or SSH if the web server is remote). This is especially useful if you have a large web site and updates it over a slow dial-up modem connection; if you make changes to only a few pages, only those pages are actually transmitted to the web server.


Lagoon is hosted at SourceForge, go to

Read the User Guide.

Read the API documentation (Javadoc).

SourceForge Logo