diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2014, haskell-lang
+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.
+    * Neither the name of haskell-lang nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 <COPYRIGHT HOLDER> 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.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,3 @@
+import Distribution.Simple
+
+main = defaultMain
diff --git a/Yesod/Lucid.hs b/Yesod/Lucid.hs
new file mode 100644
--- /dev/null
+++ b/Yesod/Lucid.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+-- | Lucid support for Yesod.
+--
+-- Example Handler for a route, using Lucid to generate html,
+-- including a rendered url:
+--
+-- > import Yesod.Lucid
+-- > import Lucid
+-- > 
+-- > getExampleR :: Handler LucidHtml
+-- > getExampleR = lucid $ \url ->
+-- >   p_ $ a_ [href_ (url ExampleR)] "self link"
+
+module Yesod.Lucid where
+
+import Control.Monad.Identity
+import Data.Text (Text)
+import Lucid
+import Yesod.Core (ToTypedContent, MonadHandler, ToContent, Route,
+                   HandlerSite, HasContentType(..))
+import qualified Yesod.Core as Y
+
+-- | Handler LucidHtml can be used for yesod handlers that use lucid to
+-- generate html.
+type LucidHtml = Html ()
+
+-- | A lucid generator.
+type LucidGen a = (Route a -> Text) -> LucidHtml
+
+-- | Output some lucid, passes a URL renderer to the continuation.
+lucid :: MonadHandler m => LucidGen (HandlerSite m) -> m LucidHtml
+lucid cont = fmap cont Y.getUrlRender
+
+instance ToTypedContent (Html ()) where
+  toTypedContent m = Y.TypedContent (getContentType (Just m)) (Y.toContent m)
+
+instance ToContent (Html ()) where
+  toContent html = Y.ContentBuilder (runIdentity (execHtmlT html)) Nothing
+
+instance HasContentType (Html ()) where
+  getContentType _ = "text/html"
diff --git a/yesod-lucid.cabal b/yesod-lucid.cabal
new file mode 100644
--- /dev/null
+++ b/yesod-lucid.cabal
@@ -0,0 +1,25 @@
+Name: yesod-lucid
+Version: 0.1
+Synopsis: Lucid support for Yesod
+Description: Allows using Lucid to generate html in a yesod site.
+License: BSD3
+License-File: LICENSE
+Author: Chris Done
+Maintainer: Joey Hess <id@joeyh.name>
+Copyright: 2014 Chris Done
+Category: Web, Yesod
+Build-Type: Simple
+Cabal-Version: >= 1.8
+
+Library
+  GHC-Options: -Wall
+  Exposed-Modules: Yesod.Lucid
+  Build-Depends: base (>= 4.5), base < 5
+               , yesod-core (>= 1.1.5 && < 1.5)
+               , lucid (>= 2.9 && < 3.0)
+               , monads-tf (>= 0.1 && < 1.0)
+               , text (>= 1.0 && < 2.0)
+
+source-repository head
+  type: git
+  location: git://git.joeyh.name/yesod-lucid.git
