diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -4,20 +4,20 @@
 
 import Distribution.Simple
 import Distribution.PackageDescription (HookedBuildInfo, emptyHookedBuildInfo)
-import Language.PureScript.Make
-import Language.PureScript.Names
-import Language.PureScript.Options
-import Language.PureScript.AST.Declarations
-import Language.PureScript.Parser.Declarations (parseModulesFromFiles)
+-- import Language.PureScript.Make
+-- import Language.PureScript.Names
+-- import Language.PureScript.Options
+-- import Language.PureScript.AST.Declarations
+-- import Language.PureScript.Parser.Declarations (parseModulesFromFiles)
 
 import System.Process
 
-import qualified Data.Map as M
-import qualified Data.Text as T
-import Data.Text.Encoding
-import Data.Maybe (fromJust)
-import qualified Data.ByteString.Lazy as BL
-import qualified Data.ByteString as BS
+-- import qualified Data.Map as M
+-- import qualified Data.Text as T
+-- import Data.Text.Encoding
+-- import Data.Maybe (fromJust)
+-- import qualified Data.ByteString.Lazy as BL
+-- import qualified Data.ByteString as BS
 
 import Debug.Trace
 
@@ -28,12 +28,12 @@
 
 preConf' :: _ -> _ -> IO HookedBuildInfo
 preConf' _ _ = do
-  traceM "Installing purescript dependencies"
+  traceIO "Installing purescript dependencies"
   run11 <- readProcess "/usr/local/bin/bower" ["install"] []
   run12 <- readProcess "/usr/bin/npm" ["install", "crypto-js"] []
-  traceM "Compiling purescript files"
+  traceIO "Compiling purescript files"
   run21 <- readProcess "/bin/mkdir" ["-p", "static/js"] []
-  run22 <- readProcess "/usr/local/bin/pulp" ["browserify" , "-t" , "./static/js/auth.js"] []
+  run22 <- readProcess "/usr/local/bin/pulp" ["browserify" , "-t" , "static/js/auth.js"] []
   return emptyHookedBuildInfo
 
 -- preBuild' :: _ -> _ -> IO HookedBuildInfo
diff --git a/hssrc/Yesod/Auth/HmacKeccak.hs b/hssrc/Yesod/Auth/HmacKeccak.hs
--- a/hssrc/Yesod/Auth/HmacKeccak.hs
+++ b/hssrc/Yesod/Auth/HmacKeccak.hs
@@ -97,6 +97,8 @@
     <div #progress>
   <a href="@{tm newAccountR}">_{MsgRegister}
   <a href="@{tm resetPasswordR}">_{MsgForgotPassword}
+  $maybe route <- rawLoginRoute
+    <a href="@{route}">_{MsgNoJsLogin}
   |]
 
 postLoginR'
@@ -509,6 +511,9 @@
 
   renderAccountMessage :: master -> [Text] -> AccountMsg -> Text
   renderAccountMessage _ _ = defaultAccountMsg
+
+  rawLoginRoute :: Maybe (Route (HandlerSite (WidgetT master IO)))
+  rawLoginRoute = Nothing
 
 instance YesodHmacKeccak db master => RenderMessage master AccountMsg where
   renderMessage = renderAccountMessage
diff --git a/hssrc/Yesod/Auth/JsPath.hs b/hssrc/Yesod/Auth/JsPath.hs
--- a/hssrc/Yesod/Auth/JsPath.hs
+++ b/hssrc/Yesod/Auth/JsPath.hs
@@ -5,4 +5,5 @@
 import Paths_yesod_auth_hmac_keccak (getDataFileName)
 
 jsPath :: FilePath
-jsPath = unsafePerformIO (getDataFileName "static/js/auth.js")
+-- jsPath = unsafePerformIO (getDataFileName "static/js/auth.js")
+jsPath = "static/js/auth.js"
diff --git a/hssrc/Yesod/Auth/Message.hs b/hssrc/Yesod/Auth/Message.hs
--- a/hssrc/Yesod/Auth/Message.hs
+++ b/hssrc/Yesod/Auth/Message.hs
@@ -27,6 +27,7 @@
   | MsgActivationSent
   | MsgUsernameExists T.Text
   | MsgUserNotActive
+  | MsgNoJsLogin
 
 defaultAccountMsg :: AccountMsg -> T.Text
 defaultAccountMsg = englishAccountMsg
@@ -55,3 +56,4 @@
 englishAccountMsg (MsgUsernameExists u) = T.concat
   ["The user ", u, " already exists. Please choose an alternate username."]
 englishAccountMsg MsgUserNotActive = "Please activate your account before logging in"
+englishAccountMsg MsgNoJsLogin = "Log in without Javascript"
diff --git a/yesod-auth-hmac-keccak.cabal b/yesod-auth-hmac-keccak.cabal
--- a/yesod-auth-hmac-keccak.cabal
+++ b/yesod-auth-hmac-keccak.cabal
@@ -2,7 +2,7 @@
 -- further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                yesod-auth-hmac-keccak
-version:             0.0.0.1
+version:             0.0.0.2
 synopsis:            An account authentication plugin for yesod with encrypted
                      token transfer.
 description:         This authentication plugin for Yesod uses a challenge-response
@@ -17,6 +17,8 @@
 build-type:          Custom
 extra-source-files:  ChangeLog.md
 cabal-version:       >=1.10
+-- setup-depends:       purescript
+--                    , Glob
 extra-source-files:  src/Activate.purs
                    , src/Common.js
                    , src/Common.purs
