diff --git a/Text/Shakespeare/Text.hs b/Text/Shakespeare/Text.hs
--- a/Text/Shakespeare/Text.hs
+++ b/Text/Shakespeare/Text.hs
@@ -14,6 +14,11 @@
     , textFileReload
     , st -- | strict text
     , lt -- | lazy text, same as stext :)
+    -- * Yesod code generation
+    , codegen
+    , codegenSt
+    , codegenFile
+    , codegenFileReload
     ) where
 
 import Language.Haskell.TH.Quote (QuasiQuoter (..))
@@ -51,6 +56,7 @@
   , unwrap = unWrapExp
   }
 
+
 stext, lt, st, text :: QuasiQuoter
 stext = 
   QuasiQuoter { quoteExp = \s -> do
@@ -74,6 +80,7 @@
     quoteExp (shakespeare rs) s
     }
 
+
 textFile :: FilePath -> Q Exp
 textFile fp = do
     rs <- settings
@@ -87,4 +94,58 @@
 textFileReload :: FilePath -> Q Exp
 textFileReload fp = do
     rs <- settings
-    shakespeareFileDebug rs fp
+    shakespeareFileReload rs fp
+
+-- | codegen is designed for generating Yesod code, including templates
+-- So it uses different interpolation characters that won't clash with templates.
+codegenSettings :: Q ShakespeareSettings
+codegenSettings = do
+  toTExp <- [|toText|]
+  wrapExp <- [|id|]
+  unWrapExp <- [|id|]
+  return $ defaultShakespeareSettings { toBuilder = toTExp
+  , wrap = wrapExp
+  , unwrap = unWrapExp
+  , varChar = '~'
+  , urlChar = '*'
+  , intChar = '&'
+  , justVarInterpolation = True -- always!
+  }
+
+-- | codegen is designed for generating Yesod code, including templates
+-- So it uses different interpolation characters that won't clash with templates.
+-- You can use the normal text quasiquoters to generate code
+codegen :: QuasiQuoter
+codegen =
+  QuasiQuoter { quoteExp = \s -> do
+    rs <- codegenSettings
+    render <- [|renderText|]
+    rendered <- shakespeareFromString rs { justVarInterpolation = True } s
+    return (render `AppE` rendered)
+    }
+
+-- | Generates strict Text
+-- codegen is designed for generating Yesod code, including templates
+-- So it uses different interpolation characters that won't clash with templates.
+codegenSt :: QuasiQuoter
+codegenSt =
+  QuasiQuoter { quoteExp = \s -> do
+    rs <- codegenSettings
+    render <- [|TL.toStrict . renderText|]
+    rendered <- shakespeareFromString rs { justVarInterpolation = True } s
+    return (render `AppE` rendered)
+    }
+
+codegenFileReload :: FilePath -> Q Exp
+codegenFileReload fp = do
+    rs <- codegenSettings
+    render <- [|TL.toStrict . renderText|]
+    rendered <- shakespeareFileReload rs{ justVarInterpolation = True } fp
+    return (render `AppE` rendered)
+
+codegenFile :: FilePath -> Q Exp
+codegenFile fp = do
+    rs <- codegenSettings
+    render <- [|TL.toStrict . renderText|]
+    rendered <- shakespeareFile rs{ justVarInterpolation = True } fp
+    return (render `AppE` rendered)
diff --git a/shakespeare-text.cabal b/shakespeare-text.cabal
--- a/shakespeare-text.cabal
+++ b/shakespeare-text.cabal
@@ -1,5 +1,5 @@
 name:            shakespeare-text
-version:         0.10.5
+version:         0.11
 license:         BSD3
 license-file:    LICENSE
 author:          Greg Weber <greg@gregweber.info>
@@ -32,7 +32,7 @@
 
 library
     build-depends:   base             >= 4       && < 5
-                   , shakespeare      >= 0.10    && < 0.11
+                   , shakespeare      >= 0.11    && < 0.12
                    , template-haskell
                    , text             >= 0.7     && < 0.12
 
@@ -57,4 +57,4 @@
 
 source-repository head
   type:     git
-  location: git://github.com/yesodweb/hamlet.git
+  location: git://github.com/yesodweb/shakespeare.git
diff --git a/test/ShakespeareTextTest.hs b/test/ShakespeareTextTest.hs
--- a/test/ShakespeareTextTest.hs
+++ b/test/ShakespeareTextTest.hs
@@ -46,10 +46,10 @@
         ]
 
 
-  , it "textFileDebug" $ do
+  , it "textFileReload" $ do
     let var = "var"
     let urlp = (Home, [(pack "p", pack "q")])
-    flip telper $(textFileDebug "test/texts/external1.text") $ unlines
+    flip telper $(textFileReload "test/texts/external1.text") $ unlines
         [ "שלום"
         , var
         , "url"
@@ -58,9 +58,9 @@
         ]
 
 {- TODO
-  , it "textFileDebugChange" $ do
+  , it "textFileReload" $ do
       let var = "somevar"
-          test result = telper result $(textFileDebug "test/texts/external2.text")
+          test result = telper result $(textFileReload "test/texts/external2.text")
       writeFile "test/texts/external2.text" "var #{var} = 1;"
       test "var somevar = 1;"
       writeFile "test/texts/external2.text" "var #{var} = 2;"
