This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.



Sell fine art online. Cairn is built to be fast and secure to display artwork full screen and across a wide range of display sizes.

Cairn is fast because template rendering is handled on the client side. Cairn replaces the theme and permalink features of WordPress by hooking into the rewrite rules with url rules defined in static/urls.json. Templates are written using EJS Templating and are rendered on the client side. There is a jQuery plugin written that uses the same rules to speed up user interactions, and with enough data able to render URLS without a request to the remote server.

Cairn is secure because personally identifiable information is stored in the database encrypted with a GPG public key, and private keys stored optimistically offline. This information should be submitted over an TLS connection (HTTPS), and is compulsory when using this plugin. Additionally security features include payments being able to be handled using cryptocurrency Bitcoin, and thus no potentially personally identifiable information is nessasary to be shared with a third party and can be directly peer-to-peer.


  • Accept bitcoin and credit card payments
  • Personal privacy and security
  • Dynamic prices and currency preference
  • Designed for mobile
  • URL navigation is client side and lightweight


  • A computer running GNU/Linux, Apache, MySQL to do development and testing.
  • The use of GPG and have a public/private for email
  • Expert knowledge of JavaScript, jQuery and AJAX
  • General knowledge of EJS JavaScript templating
  • Experience with the Electrum Bitcoin Wallet and general concepts of peer-to-peer payments.
  • Understand priciples of asymetric cryptography and public/private keys
  • Intermediate knowledge of PHP
  • USPS Web Tools API account for shipping calculations
  • A Stripe account to process credit cards
  • General knowledge of RSS/Atom feeds
  • Apache .htaccess and general priciples of rewriting URLs
  • Experience with configuring cron schedules
  • Knowledge of PHP APC for caching is a plus


URI are defined in /static/urls.json which is parsed and used within WordPress and jQuery Cairn

It is recommended to disable the default cron in the wp-config.php


And then enable the cron to be scheduled externally so that tasks do not
interfere with page loading:

php5 -q //wp-cron.php

Rewrite rules needed to be added for images to be scaled dynamically:

RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_URI} .(gif|png|jpg|jpeg) RewriteCond %{QUERY_STRING} (w|h)=(.)$ RewriteRule (.) /wp-content/plugins/cairn/includes/timthumb/timthumb.php?src=$1&%1=%2&%3=%4 [L]

It is also recommended to use object caching such as APC.

To generate documentation:

JavaScript Documented with jsdoc static/callbacks.js static/jquery.cairn.js static/ -d docs/js/

PHP Documented with phpdoc -d . -t ./docs/php/

Full Documentation is available at:

To clone a git repository: git clone

Contributors & Developers

“Cairn” is open source software. The following people have contributed to this plugin.

Translate “Cairn” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.