Please enable JS

COLOPHON
Production notes

This site is written and published using a static content management system that I wrote in perl called Dapper and is hosted on Amazon S3.

Dapper was first written in 2002 to facilitate the creation of a series of static websites that each had their own look and feel, but shared textual content. Since then, Dapper has been used to create websites for speakers, artists, authors, illusionists, web designers, piano tuners, photographers, entertainment agencies, and API documentation for industrial sensing equipment.

In Dapper, content for pages or posts are written in Markdown. Meta information is accomplished with YAML, and templates are implemented using the TT3 mini-language.

Dapper is distributed as a perl module and comes with a command-line application called dapper which you can use to create static websites. Example:

$ cpanm App::Dapper # Install
$ dapper init       # Initialize current directory with new site
$ dapper serve      # Build and serve locally at http://localhost:8000

I wrote Dapper with three goals in mind:

  1. Simple. Learning Dapper is easy — it gets out of the way so you can write content, develop layouts, and deploy to production the way you want.
  2. Flexible. Content is written in Markdown, and templates are written using the TT3 mini-language from Template::Alloy for maximum flexibility.
  3. Pragmatic. The easy things are easy and the hard things are possible. Dapper was created to solve problems in a straight-forward and intuitive way.

When I designed Dapper, I wanted it to be a static generator instead of a dynamic and database-backed for a few key reasons:

  • Fast. Static pages are fast to load and easy to cache. Content management systems, on the other hand, may contact the database at least one time per page request, process the results, merge with a templating system, and serve the result to the user’s web browser.
  • Efficient. Having a static website means that options for hosting those static files also just got a lot more simple. No database is needed and no real processing power for scripting is needed. For example, with a static website, it becomes possible to host the site on Github Pages for free, or Amazon S3 for very modest fees.
  • Secure. It’s much more secure to host a static website than a dynamic one. Content management systems that use scripting languages such as Perl, Python, or Ruby, all are more susceptible to being hacked than a static website is. Simply stated, why use a dynamic content- management system if a static setup will do?
  • Portable. With a static website, it’s way easier to move the site to a new host in the future. All web hosts now and in the future support serving up a static website — think of it as the lowest common denominator — and so there’s no need to pick a premium host with premium services.

In 2014, Dapper was submitted as a Perl module (App::Dapper) to CPAN under the MIT license for anyone to use for any purpose. Key features:

  • Written in perl, available as a command line utility after installing.
  • Content is written in Markdown.
  • Configuration files and attributes are encoded with YAML.
  • Layouts are developed using TT3 from the Template::Alloy templating engine.
  • Built-in development webserver

Read more about Dapper here: http://markbenson.io/dapper/

Other tools I use:

  • Vim (vimrc)
  • Amazon S3 for hosting