ugh, node canvas
diff --git a/package.json b/package.json
index 01fb74d..b9340d7 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,7 @@
   },
   "devDependencies": {
     "blob-util": "^1.1.1",
+    "canvas": "^1.1.6",
     "pouchdb-express-router": "^0.0.2",
     "bundle-collapser": "^1.1.1",
     "rimraf": "2.2.8",
diff --git a/tests/performance/perf.attachments.js b/tests/performance/perf.attachments.js
index 6b98152..2e0f34e 100644
--- a/tests/performance/perf.attachments.js
+++ b/tests/performance/perf.attachments.js
@@ -10,7 +10,12 @@
 }
 
 function makeCanvas(size) {
-  var canvas = document.createElement('canvas');
+  var canvas;
+  if (process.browser) {
+    canvas = document.createElement('canvas');
+  } else {
+    canvas = new require('canvas');
+  }
   canvas.width = size;
   canvas.height = size;
   return canvas;
@@ -47,10 +52,15 @@
         for (var i = 0; i < 100; i++) {
           drawRandomCircle(context, 300);
         }
-        blobUtil.canvasToBlob(canvas).then(function (blob) {
-          db._blob = blob;
+        if (process.browser) {
+          blobUtil.canvasToBlob(canvas).then(function (blob) {
+            db._blob = blob;
+            callback();
+          });
+        } else {
+          db._blob = canvas.toBuffer();
           callback();
-        });
+        }
       },
       test: function (db, itr, doc, done) {
         db.putAttachment(Math.random().toString(), 'foo.txt', db._blob,