diff --git a/src/Yesod/Auth/Facebook/ClientSide.hs b/src/Yesod/Auth/Facebook/ClientSide.hs
--- a/src/Yesod/Auth/Facebook/ClientSide.hs
+++ b/src/Yesod/Auth/Facebook/ClientSide.hs
@@ -22,7 +22,6 @@
 
       -- * Useful functions
     , serveChannelFile
-    , getFbCredentials
     , defaultFbInitOpts
     , getUserAccessToken
 
@@ -53,6 +52,7 @@
 import qualified Data.Time as TI
 import qualified Data.Time.Clock.POSIX as TI
 import qualified Facebook as FB
+import qualified Yesod.Facebook as YF
 import qualified Yesod.Auth.Message as Msg
 -- import qualified Data.Conduit as C
 
@@ -91,7 +91,7 @@
       loginRoute  = toMaster $ fbcsR ["login"]
       logoutRoute = toMaster $ LogoutR
       fbInitOpts  = A.object $ map (uncurry (A..=)) fbInitOptsList
-  [whamlet|
+  [whamlet|$newline never
     <div #fb-root>
    |]
   toWidgetBody [julius|
@@ -211,13 +211,9 @@
 -- | Type class that needs to be implemented in order to use
 -- 'authFacebookClientSide'.
 --
--- Minimal complete definition: 'fbCredentials' and
--- 'getFbChannelFile'.  (We recommend implementing
--- 'getFbLanguage' as well.)
-class YesodAuth master => YesodAuthFbClientSide master where
-  -- | Facebook 'FB.Credentials' for your app.
-  fbCredentials :: master -> FB.Credentials
-
+-- Minimal complete definition: 'getFbChannelFile'.  (We
+-- recommend implementing 'getFbLanguage' as well.)
+class (YesodAuth master, YF.YesodFacebook master) => YesodAuthFbClientSide master where
   -- | A route that serves Facebook's channel file in the /same/
   -- /subdomain/ as the current request's subdomain.
   --
@@ -304,7 +300,7 @@
 
 -- | Default implementation for 'getFbInitOpts'.  Defines:
 --
---  [@appId@] Using 'getFbCredentials'.
+--  [@appId@] Using 'YF.getFbCredentials'.
 --
 --  [@channelUrl@] Using 'getFbChannelFile'.
 --
@@ -316,7 +312,7 @@
                      GHandler sub master [(Text, A.Value)]
 defaultFbInitOpts = do
   ur <- getUrlRender
-  creds <- getFbCredentials
+  creds <- YF.getFbCredentials
   channelFile <- getFbChannelFile
   return [ ("appId",      A.toJSON $ TE.decodeUtf8 $ FB.appId creds)
          , ("channelUrl", A.toJSON $ ur channelFile)
@@ -353,13 +349,6 @@
         val = "<script src=\"//connect.facebook.net/en_US/all.js\"></script>"
 
 
--- | Returns Facebook's 'FB.Credentials' from inside a
--- 'GHandler'.  Just a convenience around 'fbCredentials'.
-getFbCredentials :: YesodAuthFbClientSide master =>
-                    GHandler sub master FB.Credentials
-getFbCredentials = fbCredentials <$> getYesod
-
-
 -- | Yesod authentication plugin using Facebook's client-side
 -- authentication flow.
 --
@@ -389,8 +378,8 @@
       ur <- getUrlRender
       tm <- getRouteToMaster
       when (redirectToReferer y) setUltDestReferer
-      let creds      = fbCredentials y
-          manager    = authHttpManager y
+      let creds      = YF.fbCredentials y
+          manager    = authHttpManager  y
           redirectTo = ur $ tm $ fbcsR ["login", "back"]
           uncommas "" = []
           uncommas xs = case break (== ',') xs of
@@ -406,7 +395,7 @@
       tm <- getRouteToMaster
       mr <- getMessageRender
       fbjssdkpc <- widgetToPageContent (facebookJSSDK tm)
-      rephtml <- hamletToRepHtml $ [hamlet|
+      rephtml <- hamletToRepHtml $ [hamlet|$newline never
         $doctype 5
         <html>
           <head>
@@ -425,7 +414,7 @@
     login :: YesodAuth master =>
              (Route Auth -> Route master)
           -> GWidget sub master ()
-    login _ = [whamlet|
+    login _ = [whamlet|$newline never
                  <p>
                    <a href="#" onclick="#{facebookLogin perms}">
                      _{Msg.Facebook}
@@ -464,8 +453,9 @@
                       GHandler sub master (Either String FB.UserAccessToken)
 getUserAccessToken =
   runErrorT $ do
-    creds <- lift getFbCredentials
-    manager <- authHttpManager <$> lift getYesod
+    y <- lift getYesod
+    let creds   = YF.fbCredentials y
+        manager = authHttpManager  y
     unparsed <- toErrorT "cookie not found" $ lookupCookie (signedRequestCookieName creds)
     A.Object parsed <- toErrorT "cannot parse signed request" $
                        FB.runFacebookT creds manager $
diff --git a/src/Yesod/Auth/Facebook/ServerSide.hs b/src/Yesod/Auth/Facebook/ServerSide.hs
--- a/src/Yesod/Auth/Facebook/ServerSide.hs
+++ b/src/Yesod/Auth/Facebook/ServerSide.hs
@@ -148,7 +148,7 @@
           -> GWidget sub master ()
     login tm = do
         redirectUrl <- lift (getRedirectUrl tm)
-        [whamlet|
+        [whamlet|$newline never
 <p>
     <a href="#{redirectUrl}">_{Msg.Facebook}
 |]
diff --git a/yesod-auth-fb.cabal b/yesod-auth-fb.cabal
--- a/yesod-auth-fb.cabal
+++ b/yesod-auth-fb.cabal
@@ -1,5 +1,5 @@
 Name:                yesod-auth-fb
-Version:             1.1
+Version:             1.2
 Synopsis:            Authentication backend for Yesod using Facebook.
 Homepage:            https://github.com/meteficha/yesod-auth-fb
 License:             BSD3
@@ -50,6 +50,7 @@
                  , http-conduit
                  , text         >= 0.7     && < 0.12
                  , transformers >= 0.1.3   && < 0.4
+                 , yesod-fb     == 0.1.*
                  , fb           == 0.11.*
                  , conduit      == 0.5.*
                  , bytestring   == 0.9.*
