diff --git a/Yesod/Core/Content.hs b/Yesod/Core/Content.hs
--- a/Yesod/Core/Content.hs
+++ b/Yesod/Core/Content.hs
@@ -69,6 +69,8 @@
 import qualified Blaze.ByteString.Builder.Char.Utf8 as Blaze
 import Data.Text.Lazy.Builder (toLazyText)
 import Yesod.Core.Types
+import Text.Lucius (Css, renderCss)
+import Text.Julius (Javascript, unJavascript)
 
 -- | Zero-length enumerator.
 emptyContent :: Content
@@ -108,6 +110,11 @@
 instance ToContent TypedContent where
     toContent (TypedContent _ c) = c
 
+instance ToContent Css where
+    toContent = toContent . renderCss
+instance ToContent Javascript where
+    toContent = toContent . toLazyText . unJavascript
+
 instance ToFlushBuilder builder => ToContent (Source (ResourceT IO) builder) where
     toContent src = ContentSource $ mapOutput toFlushBuilder src
 instance ToFlushBuilder builder => ToContent (ResumableSource (ResourceT IO) builder) where
@@ -245,6 +252,12 @@
 instance HasContentType T.Text where
     getContentType _ = typePlain
 
+instance HasContentType Css where
+    getContentType _ = typeCss
+
+instance HasContentType Javascript where
+    getContentType _ = typeJavascript
+
 -- | Any type which can be converted to 'TypedContent'.
 --
 -- Since 1.2.0
@@ -277,3 +290,8 @@
     toTypedContent (DontFullyEvaluate a) =
         let TypedContent ct c = toTypedContent a
          in TypedContent ct (ContentDontEvaluate c)
+
+instance ToTypedContent Css where
+    toTypedContent = TypedContent typeCss . toContent
+instance ToTypedContent Javascript where
+    toTypedContent = TypedContent typeJavascript . toContent
diff --git a/yesod-core.cabal b/yesod-core.cabal
--- a/yesod-core.cabal
+++ b/yesod-core.cabal
@@ -1,5 +1,5 @@
 name:            yesod-core
-version:         1.2.10
+version:         1.2.11
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
