diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+## [v1.4.1](https://github.com/diagrams/diagrams-html5/tree/v1.4.1) (2018-05-30)
+
+- test on GHC 8.4
+- allow `optparse-applicative-0.14`
+- allow `lens-4.16`
+- allow `base-4.11`
+- add `Semigroup (Render Html5 V2 Double)` instance
+
 ## [v1.4](https://github.com/diagrams/diagrams-html5/tree/v1.4) (2016-10-26)
 
 - allow `lens-4.15`
diff --git a/diagrams-html5.cabal b/diagrams-html5.cabal
--- a/diagrams-html5.cabal
+++ b/diagrams-html5.cabal
@@ -1,5 +1,5 @@
 Name:                diagrams-html5
-Version:             1.4
+Version:             1.4.1
 Synopsis:            HTML5 canvas backend for diagrams drawing EDSL
 Description:         This package provides a modular backend for rendering
                      diagrams created with the diagrams EDSL using an
@@ -14,8 +14,8 @@
 Category:            Graphics
 Build-type:          Simple
 Extra-source-files:  README.md, CHANGELOG.md
-Tested-with:         GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1
-Cabal-version:       >=1.10
+Tested-with:         GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.2
+Cabal-version:       1.18
 Source-repository head
   type:     git
   location: https://github.com/diagrams/diagrams-html5.git
@@ -24,19 +24,19 @@
   Exposed-modules:     Diagrams.Backend.Html5
                        Diagrams.Backend.Html5.CmdLine
   Hs-source-dirs:      src
-  Build-depends:       base >= 4.7 && < 4.10,
+  Build-depends:       base >= 4.7 && < 4.12,
                        mtl >= 2.0 && < 3.0,
                        NumInstances >= 1.0 && < 1.5,
                        diagrams-core >= 1.3 && < 1.5,
                        diagrams-lib >= 1.3 && < 1.5,
                        cmdargs >= 0.6 && < 0.11,
                        static-canvas >= 0.2 && < 0.3,
-                       lens >= 4.0 && < 4.16,
+                       lens >= 4.0 && < 4.17,
                        containers >= 0.3 && < 0.6,
                        text >= 1.0 && < 1.3,
                        data-default-class >= 0.0.1 && < 0.2,
                        statestack >= 0.2 && <0.3,
-                       optparse-applicative >= 0.10 && < 0.14,
+                       optparse-applicative >= 0.10 && < 0.15,
                        split >= 0.2 && < 0.3
 
   Default-language:    Haskell2010
diff --git a/src/Diagrams/Backend/Html5.hs b/src/Diagrams/Backend/Html5.hs
--- a/src/Diagrams/Backend/Html5.hs
+++ b/src/Diagrams/Backend/Html5.hs
@@ -138,6 +138,9 @@
 runRenderM :: RenderM a -> H.CanvasFree a
 runRenderM = flip SS.evalStateStackT def
 
+instance Semigroup (Render Html5 V2 Double) where
+  (<>) = mappend
+
 instance Monoid (Render Html5 V2 Double) where
   mempty  = C $ return ()
   (C c1) `mappend` (C c2) = C (c1 >> c2)
