diff --git a/BlogLiterately-diagrams.cabal b/BlogLiterately-diagrams.cabal
--- a/BlogLiterately-diagrams.cabal
+++ b/BlogLiterately-diagrams.cabal
@@ -1,5 +1,5 @@
 name:                BlogLiterately-diagrams
-version:             0.1.4.3
+version:             0.2
 synopsis:            Include images in blog posts with inline diagrams code
 description:         A plugin for @BlogLiterately@ (<http://hackage.haskell.org/package/BlogLiterately>) which turns inline diagrams
                      code into images.
@@ -61,9 +61,9 @@
 license-file:        LICENSE
 extra-source-files:  CHANGES
 author:              Brent Yorgey
-maintainer:          byorgey@cis.upenn.edu
+maintainer:          byorgey@gmail.com
 bug-reports:         http://github.com/byorgey/BlogLiterately-diagrams/issues
-copyright:           Copyright 2012 Brent Yorgey
+copyright:           Copyright 2012-2015 Brent Yorgey
 category:            Web
 build-type:          Simple
 cabal-version:       >=1.10
@@ -75,22 +75,24 @@
 library
   default-language:    Haskell2010
   exposed-modules:     Text.BlogLiterately.Diagrams
-  build-depends:       base >= 4.3 && < 4.8,
+  build-depends:       base >= 4.3 && < 4.9,
                        containers,
                        filepath,
                        directory,
-                       diagrams-cairo >= 1.0.1 && < 1.3,
-                       diagrams-builder >= 0.5 && < 0.7,
-                       diagrams-lib >= 1.0.1 && < 1.3,
-                       BlogLiterately >= 0.6 && < 0.8,
-                       pandoc >= 1.9 && < 1.13,
+                       diagrams-lib        >= 1.3 && < 1.4,
+                       diagrams-rasterific >= 1.3 && < 1.4,
+                       JuicyPixels         >= 3.2 && < 3.3,
+                       diagrams-builder    >= 0.5 && < 0.8,
+                       BlogLiterately      >= 0.6 && < 0.9,
+                       pandoc              >= 1.9 && < 1.15,
                        safe ==0.3.*
   hs-source-dirs:      src
 
 executable BlogLiteratelyD
   build-depends:       base,
-                       BlogLiterately >= 0.6 && < 0.8,
+                       BlogLiterately >= 0.6 && < 0.9,
                        BlogLiterately-diagrams
   main-is:             BlogLiteratelyD.hs
   hs-source-dirs:      src/tools
   default-language:    Haskell2010
+  ghc-options:         -threaded
diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+* 0.2 (7 May 2015)
+
+  - Switch from diagrams-cairo to diagrams-rasterific
+  - Update to diagrams-1.3
+  - Allow base-4.8
+
 * 0.1.4.3 (5 June 2014)
 
   - Allow diagrams-lib-1.2
diff --git a/src/Text/BlogLiterately/Diagrams.hs b/src/Text/BlogLiterately/Diagrams.hs
--- a/src/Text/BlogLiterately/Diagrams.hs
+++ b/src/Text/BlogLiterately/Diagrams.hs
@@ -20,17 +20,17 @@
     ( diagramsXF, diagramsInlineXF
     ) where
 
-import           Safe                            (readMay)
-import           System.Directory                (createDirectoryIfMissing)
+import           Safe                        (readMay)
+import           System.Directory            (createDirectoryIfMissing)
 import           System.FilePath
-import           System.IO                       (hPutStrLn, stderr)
+import           System.IO                   (hPutStrLn, stderr)
 
-import           Diagrams.Backend.Cairo
-import           Diagrams.Backend.Cairo.Internal
-import qualified Diagrams.Builder                as DB
-import           Diagrams.Prelude                (centerXY, pad, zeroV, (&),
-                                                  (.~))
-import           Diagrams.TwoD.Size              (mkSizeSpec)
+import qualified Codec.Picture               as J
+import           Diagrams.Backend.Rasterific
+import qualified Diagrams.Builder            as DB
+import           Diagrams.Prelude            (SizeSpec, V2, centerXY, pad, zero,
+                                              (&), (.~))
+import           Diagrams.TwoD.Size          (mkSizeSpec2D)
 import           Text.BlogLiterately
 import           Text.Pandoc
 
@@ -102,16 +102,17 @@
 renderDiagram shouldPad decls expr (_ident, _cls, fields) = do
     createDirectoryIfMissing True diaDir
 
-    let bopts = DB.mkBuildOpts Cairo zeroV (CairoOptions "default.png" size PNG False)
+    let bopts = DB.mkBuildOpts Rasterific zero (RasterificOptions sz)
                   & DB.snippets .~ decls
-                  & DB.imports  .~ ["Diagrams.Backend.Cairo"]
+                  & DB.imports  .~ ["Diagrams.Backend.Rasterific"]
                   & DB.diaExpr  .~ expr
                   & DB.postProcess .~ (if shouldPad then pad 1.1 . centerXY else id)
                   & DB.decideRegen .~
                       (DB.hashedRegenerate
-                        (\hash opts -> opts & cairoFileName .~ mkFile hash)
+                        (\_ opts -> opts)
                         diaDir
                       )
+
     res <- DB.buildDiagram bopts
 
     case res of
@@ -123,13 +124,17 @@
         let errStr = "\nInterpreter error:\n" ++ DB.ppInterpError ierr
         putErrLn errStr
         return (Left errStr)
-      DB.Skipped hash    ->        return (Right $ mkFile (DB.hashToHexStr hash))
-      DB.OK hash (act,_) -> act >> return (Right $ mkFile (DB.hashToHexStr hash))
+      DB.Skipped hash    -> return (Right $ mkFile (DB.hashToHexStr hash))
+      DB.OK hash img     -> do
+        let imgFile = mkFile (DB.hashToHexStr hash)
+        J.savePngImage imgFile (J.ImageRGBA8 img)
+        return (Right imgFile)
 
   where
-    size        = mkSizeSpec
-                    (lookup "width" fields >>= readMay)
-                    (lookup "height" fields >>= readMay)
+    sz :: SizeSpec V2 Double
+    sz        = mkSizeSpec2D
+                  (lookup "width" fields >>= readMay)
+                  (lookup "height" fields >>= readMay)
     mkFile base = diaDir </> base <.> "png"
 
 renderBlockDiagram :: [String] -> Block -> IO Block
diff --git a/src/tools/BlogLiteratelyD.hs b/src/tools/BlogLiteratelyD.hs
--- a/src/tools/BlogLiteratelyD.hs
+++ b/src/tools/BlogLiteratelyD.hs
@@ -1,5 +1,6 @@
 import           Text.BlogLiterately
 import           Text.BlogLiterately.Diagrams
 
+main :: IO ()
 main = blogLiteratelyCustom
   (diagramsInlineXF : diagramsXF : standardTransforms)
