diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,25 @@
+The following license covers this documentation, and the source code, except
+where otherwise indicated.
+
+Copyright 2009, Michael Snoyman. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,8 @@
+#!/usr/bin/env runhaskell
+
+> module Main where
+> import Distribution.Simple
+> import System.Cmd (system)
+
+> main :: IO ()
+> main = defaultMain
diff --git a/Text/Shakespeare/Text.hs b/Text/Shakespeare/Text.hs
new file mode 100644
--- /dev/null
+++ b/Text/Shakespeare/Text.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE CPP #-}
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+module Text.Shakespeare.Text
+    ( TextUrl
+    , ToText (..)
+    , renderTextUrl
+    , stext
+    , text
+    , textFile
+    , textFileDebug
+    , st -- | strict text
+    , lt -- | lazy text, same as stext :)
+    ) where
+
+import Language.Haskell.TH.Quote (QuasiQuoter (..))
+import Language.Haskell.TH.Syntax
+import Data.Text.Lazy.Builder (Builder, fromText, toLazyText, fromLazyText)
+import qualified Data.Text as TS
+import qualified Data.Text.Lazy as TL
+import Text.Shakespeare
+
+renderText :: Builder -> TL.Text
+renderText = toLazyText
+
+renderTextUrl :: RenderUrl url -> TextUrl url -> TL.Text
+renderTextUrl r s = renderText $ s r
+
+type TextUrl url = RenderUrl url -> Builder
+
+class ToText a where
+    toText :: a -> Builder
+instance ToText [Char ] where toText = fromLazyText . TL.pack
+instance ToText TS.Text where toText = fromText
+instance ToText TL.Text where toText = fromLazyText
+
+settings :: Q ShakespeareSettings
+settings = do
+  toTExp <- [|toText|]
+  wrapExp <- [|id|]
+  unWrapExp <- [|id|]
+  return $ defaultShakespeareSettings { toBuilder = toTExp
+  , wrap = wrapExp
+  , unwrap = unWrapExp
+  }
+
+stext, lt, st, text :: QuasiQuoter
+stext = 
+  QuasiQuoter { quoteExp = \s -> do
+    rs <- settings
+    render <- [|renderText|]
+    rendered <- shakespeareFromString rs { justVarInterpolation = True } s
+    return (render `AppE` rendered)
+    }
+lt = stext
+
+st = 
+  QuasiQuoter { quoteExp = \s -> do
+    rs <- settings
+    render <- [|TL.toStrict . renderText|]
+    rendered <- shakespeareFromString rs { justVarInterpolation = True } s
+    return (render `AppE` rendered)
+    }
+
+text = QuasiQuoter { quoteExp = \s -> do
+    rs <- settings
+    quoteExp (shakespeare rs) s
+    }
+
+textFile :: FilePath -> Q Exp
+textFile fp = do
+    rs <- settings
+    shakespeareFile rs fp
+
+
+textFileDebug :: FilePath -> Q Exp
+textFileDebug fp = do
+    rs <- settings
+    shakespeareFileDebug rs fp
diff --git a/shakespeare-text.cabal b/shakespeare-text.cabal
new file mode 100644
--- /dev/null
+++ b/shakespeare-text.cabal
@@ -0,0 +1,53 @@
+name:            shakespeare-text
+version:         0.10.1
+license:         BSD3
+license-file:    LICENSE
+author:          Greg Weber <greg@gregweber.info>
+maintainer:      Greg Weber <greg@gregweber.info>
+synopsis:        Interpolation with quasi-quotation: put variables strings
+description:
+    interpolation with quasi-quotation: stick haskell variables into haskell strings
+    .
+    Note there is no dependency on haskell-src-extras. If you don't mind that dependency, you may want to look at using these packages: Interpolation, interpolatedstring-perl6, interpolatedstring-qq.
+    .
+    This package has 1 other general feature that those others may not (but would be easy to duplicate): instead of using quasi-quoting you can also use an external file. It also has url/embeding interpolation, with \@ and \^, which are used in Yesod.
+    .
+    This package also uses blaze-builder for efficiently constructing strings (I am not sure what the other packages use). This might be of interest to you for large templates or performance sensitive code, or otherwise having a nice interface to blaze-builder
+    .
+    Shakespeare is a template family for type-safe, efficient templates with simple variable interpolation . Shakespeare templates can be used inline with a quasi-quoter or in an external file. Shakespeare interpolates variables according to the type being inserted.
+    In this case, the variable type needs a ToText instance.
+    .
+    Please see http://docs.yesodweb.com/book/templates for a more thorough description and examples of the shakespeare family of template languages.
+
+category:        Web, Yesod
+stability:       Stable
+cabal-version:   >= 1.8
+build-type:      Simple
+homepage:        http://www.yesodweb.com/book/templates
+
+library
+    build-depends:   base             >= 4       && < 5
+                   , shakespeare      >= 0.10
+                   , template-haskell
+                   , text             >= 0.7     && < 0.12
+
+    exposed-modules: Text.Shakespeare.Text
+    ghc-options:     -Wall
+
+test-suite test
+    hs-source-dirs: test
+    main-is: main.hs
+    type: exitcode-stdio-1.0
+
+    ghc-options:   -Wall
+    build-depends:
+                   shakespeare-text >= 0.10 && < 0.11
+                 , base             >= 4       && < 5
+                 , HUnit
+                 , hspec >= 0.6.1 && < 0.7
+                 , text             >= 0.7     && < 0.12
+
+
+source-repository head
+  type:     git
+  location: git://github.com/yesodweb/hamlet.git
