diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+### 2.0.18
+
+* ToJavascript instance for String, Strict and Lazy Text [#227](https://github.com/yesodweb/shakespeare/pull/227)
+
 ### 2.0.17
 
 * Fix parse pattern-match with operator constructor [#222](https://github.com/yesodweb/shakespeare/issues/222)
diff --git a/Text/Julius.hs b/Text/Julius.hs
--- a/Text/Julius.hs
+++ b/Text/Julius.hs
@@ -52,7 +52,7 @@
 import qualified Data.Text as TS
 import qualified Data.Text.Lazy as TL
 import Text.Shakespeare
-import Data.Aeson (Value)
+import Data.Aeson (Value, toJSON)
 import Data.Aeson.Types (Value(..))
 import Numeric (showHex)
 import qualified Data.HashMap.Strict as H
@@ -91,6 +91,9 @@
 
 instance ToJavascript Bool where toJavascript = Javascript . fromText . TS.toLower . TS.pack . show
 instance ToJavascript Value where toJavascript = Javascript . encodeToTextBuilder
+instance ToJavascript String where toJavascript = toJavascript . toJSON
+instance ToJavascript TS.Text where toJavascript = toJavascript . toJSON
+instance ToJavascript TL.Text where toJavascript = toJavascript . toJSON
 
 -- | Encode a JSON 'Value' to a "Data.Text" 'Builder', which can be
 -- embedded efficiently in a text-based protocol.
diff --git a/shakespeare.cabal b/shakespeare.cabal
--- a/shakespeare.cabal
+++ b/shakespeare.cabal
@@ -1,5 +1,5 @@
 name:            shakespeare
-version:         2.0.17
+version:         2.0.18
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
diff --git a/test/Text/JuliusSpec.hs b/test/Text/JuliusSpec.hs
--- a/test/Text/JuliusSpec.hs
+++ b/test/Text/JuliusSpec.hs
@@ -148,6 +148,9 @@
      "var re = /[^{]/;"
      [julius|var re = /[^\{]/;|]
 
+  it "produces escaped JavaScript" $ jelper
+     "\"yay\""
+     [julius|#{"yay"}|]
 
 data Url = Home | Sub SubUrl
 data SubUrl = SubUrl
