Using ColdFusion as a Static Site Generator

Mike's Notes

Pipi has its own static site generator (SSG).

Resources

References

  • The Content Management Bible

Repository

  • Home > Ajabbi Research > Library > Authors > Bob Boiko
  • Home > Handbook > 
  • Hoem > pipiWiki > Engines > CMS

Last Updated

17/05/2025

Using ColdFusion as a Static Site Generator

By: Mike Peters
On a Sandy Beach: 29/12/2023

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Static site generators (SSGs) are engines that use text input files (such as Markdown, reStructuredText, AsciiDoc and JSON) to generate static web pages.

Static sites generated by static site generators do not require a backend after site generation, making them first-class citizens on content delivery networks (CDNs).

Some of the most popular static site generators are Jekyll, Hugo, Next.js (JavaScript), and Angular (TypeScript). SSGs are typically used for rarely changing, informative content, such as product pages, news websites, (software) documentation, manuals, and blogs.

Pipi 2

From 2000 to 2001, Pipi 2 used templates written in Visual Basic and stored in "Backpage", an Access Database, to render thousands of HTML web pages. I did the database design, Matthew Carter wrote the VB, and Graeme Cook gave helpful advice about MS Access. Many separate Access Databases store the data that the templates use to create each page.

Pipi 4

From 2005 to 2008, Pipi4 used templates written in ColdFusion CFML code to render 25,000 static HTML pages from data stored in an MS SQL 6 database. Each week, on a Wednesday morning, it took 2 hours to render every page. The logic was stored in a library of 550 class objects.

The book "The Content Management Bible" by Bob Boiko was a great help to me in figuring out how to build the CMS and the rendering engine.





Pipi 9

Now, in Pipi 9, the Pipi 7 CMS has been rebuilt. CFML templates have been added to automatically create a series of linked Wiki articles (like Wikipedia) that give an overview of each system and subsystem, and a set of classically framed "PipiDocs" (a bit like JavaDocs) that drill into the minute detail of each system.

The Wiki and Docs are also cross-linked. The next stage enables direct editing of the parameters of the underlying systems, which the Wiki and Docs then self-document—a reverse loop of sorts.

During testing in October 2023, 1200 static Wiki web pages of 300 systems were rendered in 7 seconds. I was surprised by how fast it was. This is a significant 500x performance improvement on Pipi 4. 

The CFML templates are nested and use a rule engine to determine where, when, and how they are used. As in Bob Boiko's book, I use content-type templates. In some ways, CFML is similar to Jekyll but much more powerful. CFML is straightforward to use and makes for fast prototyping.

No comments:

Post a Comment