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/Coffee.hs b/Text/Coffee.hs
new file mode 100644
--- /dev/null
+++ b/Text/Coffee.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE CPP #-}
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+module Text.Coffee
+    ( ToCoffee (..)
+    , CoffeeUrl
+    , Coffeescript
+    , coffee
+    , coffeeFile
+    , coffeeFileDebug
+    , renderCoffee
+    ) 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 System.Process (readProcess)
+import Data.Monoid
+import Text.Shakespeare
+
+renderCoffee :: (url -> [(TS.Text, TS.Text)] -> TS.Text) -> CoffeeUrl url -> IO TL.Text
+renderCoffee r s = do
+  out <- readProcess "coffee" ["-epb", TL.unpack $ toLazyText $ unCoffee $ s r] []
+  return $ TL.pack out
+  where unCoffee (Coffeescript c) = c
+
+newtype Coffeescript = Coffeescript { unCoffeescript :: Builder }
+    deriving Monoid
+
+type CoffeeUrl url = (url -> [(TS.Text, TS.Text)] -> TS.Text) -> Coffeescript
+
+-- the types that can be placed in a template
+class ToCoffee c where
+    toCoffee :: c -> Builder
+instance ToCoffee [Char]  where toCoffee = fromLazyText . TL.pack
+instance ToCoffee TS.Text where toCoffee = fromText
+instance ToCoffee TL.Text where toCoffee = fromLazyText
+
+settings :: Q ShakespeareSettings
+settings = do
+  toExp <- [|toCoffee|]
+  wrapExp <- [|Coffeescript|]
+  unWrapExp <- [|unCoffeescript|]
+  return $ defaultShakespeareSettings { varChar = '%'
+  , toBuilder = toExp
+  , wrap = wrapExp
+  , unwrap = unWrapExp
+  }
+
+coffee :: QuasiQuoter
+coffee = QuasiQuoter { quoteExp = \s -> do
+    rs <- settings
+    quoteExp (shakespeare rs) s
+    }
+
+coffeeFile :: FilePath -> Q Exp
+coffeeFile fp = do
+    rs <- settings
+    shakespeareFile rs fp
+
+coffeeFileDebug :: FilePath -> Q Exp
+coffeeFileDebug fp = do
+    rs <- settings
+    shakespeareFileDebug rs fp
diff --git a/Text/Julius.hs b/Text/Julius.hs
new file mode 100644
--- /dev/null
+++ b/Text/Julius.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE CPP #-}
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+-- | This module is currently in an identity crisis. Originally called Julius, now being changed to just Javascript (shakespeare-javascript)
+module Text.Julius
+    ( JavascriptUrl
+    , Javascript (..)
+    , ToJavascript (..)
+    , renderJavascript
+    , renderJavascriptUrl
+    , js
+    , julius
+    , juliusFile
+    , jsFile
+    , juliusFileDebug
+    , jsFileDebug
+    ) where
+
+import Language.Haskell.TH.Quote (QuasiQuoter (..))
+import Language.Haskell.TH.Syntax
+import Data.Text.Lazy.Builder (Builder, fromText, toLazyText, fromLazyText)
+import Data.Monoid
+import qualified Data.Text as TS
+import qualified Data.Text.Lazy as TL
+import Text.Shakespeare
+
+renderJavascript :: Javascript -> TL.Text
+renderJavascript (Javascript b) = toLazyText b
+
+renderJavascriptUrl :: (url -> [(TS.Text, TS.Text)] -> TS.Text) -> JavascriptUrl url -> TL.Text
+renderJavascriptUrl r s = renderJavascript $ s r
+
+newtype Javascript = Javascript { unJavascript :: Builder }
+    deriving Monoid
+type JavascriptUrl url = (url -> [(TS.Text, TS.Text)] -> TS.Text) -> Javascript
+
+class ToJavascript a where
+    toJavascript :: a -> Builder
+instance ToJavascript [Char] where toJavascript = fromLazyText . TL.pack
+instance ToJavascript TS.Text where toJavascript = fromText
+instance ToJavascript TL.Text where toJavascript = fromLazyText
+
+settings :: Q ShakespeareSettings
+settings = do
+  toJExp <- [|toJavascript|]
+  wrapExp <- [|Javascript|]
+  unWrapExp <- [|unJavascript|]
+  return $ defaultShakespeareSettings { toBuilder = toJExp
+  , wrap = wrapExp
+  , unwrap = unWrapExp
+  }
+
+js, julius :: QuasiQuoter
+js = QuasiQuoter { quoteExp = \s -> do
+    rs <- settings
+    quoteExp (shakespeare rs) s
+    }
+
+julius = js
+
+jsFile, juliusFile :: FilePath -> Q Exp
+jsFile fp = do
+    rs <- settings
+    shakespeareFile rs fp
+
+juliusFile = jsFile
+
+
+jsFileDebug, juliusFileDebug :: FilePath -> Q Exp
+jsFileDebug fp = do
+    rs <- settings
+    shakespeareFileDebug rs fp
+
+juliusFileDebug = jsFileDebug
diff --git a/shakespeare-js.cabal b/shakespeare-js.cabal
new file mode 100644
--- /dev/null
+++ b/shakespeare-js.cabal
@@ -0,0 +1,52 @@
+name:            shakespeare-js
+version:         0.10.1
+license:         BSD3
+license-file:    LICENSE
+author:          Michael Snoyman <michael@snoyman.com>
+maintainer:      Michael Snoyman <michael@snoyman.com>
+synopsis:        Stick your haskell variables into javascript/coffeescript at compile time.
+description:
+    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 ToJavascript instance.
+    .
+    There is also shakespeare-coffeescript for coffeescript templates. Coffescript is a language that compiles down to javascript. It expects a coffeescript compiler in your path, and variable should be a ToCoffee instance.
+    .
+    Please see http://docs.yesodweb.com/book/templates for a more thorough description and examples
+    .
+    shakespeare-js was originally called julius, and shakespeare originated from the hamlet template package.
+
+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    && < 0.11
+                   , template-haskell
+                   , text             >= 0.7     && < 0.12
+                   , process          >= 1.0     && < 1.2
+
+    exposed-modules:
+                     Text.Julius
+                     Text.Coffee
+    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-js   >= 0.10    && < 0.11
+                 , shakespeare      >= 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
