diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+- 0.2.2.2.2.8
+    - Support `servant-0.10`
+
 - 0.2.1.2.2.8
     - Update to `swagger-ui-2.2.8`
     - Add support for [jensoleg](https://github.com/jensoleg/swagger-ui>) theme
diff --git a/example/Main.hs b/example/Main.hs
--- a/example/Main.hs
+++ b/example/Main.hs
@@ -32,13 +32,19 @@
 
 import qualified Network.Wai.Handler.Warp as Warp
 
+#if MIN_VERSION_servant(0,7,0)
+-- do nothing
+#else
 #if MIN_VERSION_servant(0,5,0)
 import Control.Monad.Trans.Except (ExceptT)
+#define Handler ExceptT ServantErr IO
 #else
 import Control.Monad.Trans.Either (EitherT)
-#define ExceptT EitherT
+#define Handler EitherT ServantErr IO
 #endif
+#endif
 
+
 -- data types
 data Cat = Cat { catName :: CatName, catIsMale :: Bool }
     deriving (Generic, Show)
@@ -106,7 +112,7 @@
         -- Unfortunately we have to specify the basePath manually atm.
 
     schemaUiServer
-        :: (Server api ~ ExceptT ServantErr IO Swagger)
+        :: (Server api ~ Handler Swagger)
         => Swagger -> Server (SwaggerSchemaUI' dir api)
     schemaUiServer = case uiFlavour of
         Original -> swaggerSchemaUIServer
diff --git a/servant-swagger-ui.cabal b/servant-swagger-ui.cabal
--- a/servant-swagger-ui.cabal
+++ b/servant-swagger-ui.cabal
@@ -1,9 +1,5 @@
--- This file has been generated from package.yaml by hpack version 0.15.0.
---
--- see: https://github.com/sol/hpack
-
 name:           servant-swagger-ui
-version:        0.2.1.2.2.8
+version:        0.2.2.2.2.8
 synopsis:       Servant swagger ui
 description:    Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
 category:       Web
@@ -13,7 +9,7 @@
 maintainer:     Oleg Grenrus <oleg.grenrus@iki.fi>
 license:        BSD3
 license-file:   LICENSE
-tested-with:    GHC==7.8.4, GHC==7.10.3, GHC==8.0.1
+tested-with:    GHC==7.8.4, GHC==7.10.3, GHC==8.0.2
 build-type:     Simple
 cabal-version:  >= 1.10
 
@@ -138,15 +134,15 @@
   ghc-options: -Wall
   build-depends:
       base              >=4.7      && <4.10
-    , blaze-markup      >=0.7.0.2  && <0.8
+    , blaze-markup      >=0.7.0.2  && <0.9
     , bytestring        >=0.10.4.0 && <0.11
-    , directory         >=1.2.1.0  && <1.3
+    , directory         >=1.2.1.0  && <1.4
     , file-embed        >=0.0.9    && <0.1
     , filepath          >=1.3.0.2  && <1.5
     , http-media        >=0.6.2    && <0.8
-    , servant           >=0.4.4.5  && <0.10
+    , servant           >=0.4.4.5  && <0.11
     , servant-blaze     >=0.4.4.5  && <0.9
-    , servant-server    >=0.4.4.5  && <0.10
+    , servant-server    >=0.4.4.5  && <0.11
     , servant-swagger   >=1.0.3    && <1.2
     , swagger2          >=2.0.1    && <2.2
     , template-haskell  >=2.9      && <2.12
@@ -173,35 +169,20 @@
       example
   ghc-options: -Wall
   build-depends:
-      base              >=4.7      && <4.10
-    , blaze-markup      >=0.7.0.2  && <0.8
-    , bytestring        >=0.10.4.0 && <0.11
-    , directory         >=1.2.1.0  && <1.3
-    , file-embed        >=0.0.9    && <0.1
-    , filepath          >=1.3.0.2  && <1.5
-    , http-media        >=0.6.2    && <0.8
-    , servant           >=0.4.4.5  && <0.10
-    , servant-blaze     >=0.4.4.5  && <0.9
-    , servant-server    >=0.4.4.5  && <0.10
-    , servant-swagger   >=1.0.3    && <1.2
-    , swagger2          >=2.0.1    && <2.2
-    , template-haskell  >=2.9      && <2.12
-    , text              >=1.2.0.6  && <1.3
-    , wai-app-static    >=3.0.1.1  && <3.2
+      base
+    , servant
+    , servant-server
+    , servant-swagger
     , servant-swagger-ui
-    , servant-server >=0.4.4.5  && <0.10
-    , aeson          >=0.8.0.2  && <1.1
+    , swagger2
+    , text
+    , aeson          >=0.8.0.2  && <1.2
     , base-compat    >=0.6.0    && <0.10
     , lens           >=4.7.0.1  && <4.16
     , wai            >=3.0.3.0  && <3.3
     , warp           >=3.0.13.1 && <3.3
   if flag(servant-0-5)
-    build-depends:
-        servant              >=0.5
-      , transformers         >=0.3 && <0.6
-      , transformers-compat  >=0.3 && <0.6
+    build-depends: transformers, transformers-compat
   else
-    build-depends:
-        servant                       <0.5
-      , either
+    build-depends: either
   default-language: Haskell2010
diff --git a/src/Servant/Swagger/UI.hs b/src/Servant/Swagger/UI.hs
--- a/src/Servant/Swagger/UI.hs
+++ b/src/Servant/Swagger/UI.hs
@@ -74,12 +74,17 @@
 
 import qualified Data.Text as T
 
+#if MIN_VERSION_servant(0,7,0)
+-- do nothing
+#else
 #if MIN_VERSION_servant(0,5,0)
 import Control.Monad.Trans.Except (ExceptT)
+#define Handler ExceptT ServantErr IO
 #else
 import Control.Monad.Trans.Either (EitherT)
-#define ExceptT EitherT
+#define Handler EitherT ServantErr IO
 #endif
+#endif
 
 -- | Swagger schema + ui api.
 --
@@ -113,7 +118,15 @@
 -- to find schema file automatically.
 data SwaggerUiHtml (dir :: Symbol) (api :: *) = SwaggerUiHtml T.Text
 
-instance (KnownSymbol dir, HasLink api, URI ~ MkLink api, IsElem api api)
+#if MIN_VERSION_servant(0,10,0)
+#define LINK Link
+#define LINKPATH uriPath . linkURI
+#else
+#define LINK URI
+#define LINKPATH uriPath
+#endif
+
+instance (KnownSymbol dir, HasLink api, LINK ~ MkLink api, IsElem api api)
     => ToMarkup (SwaggerUiHtml dir api)
   where
     toMarkup (SwaggerUiHtml template) = preEscapedToMarkup
@@ -121,7 +134,7 @@
         $ T.replace "SERVANT_SWAGGER_UI_DIR" dir
         $ template
       where
-        schema = T.pack $ uriPath $ safeLink proxyApi proxyApi
+        schema = T.pack $ LINKPATH $ safeLink proxyApi proxyApi
         dir    = T.pack $ symbolVal (Proxy :: Proxy dir)
         proxyApi = Proxy :: Proxy api
 
@@ -131,7 +144,7 @@
 -- swaggerSchemaUIServer :: Swagger -> Server (SwaggerSchemaUI schema dir)
 -- @
 swaggerSchemaUIServer
-    :: (Server api ~ ExceptT ServantErr IO Swagger)
+    :: (Server api ~ Handler Swagger)
     => Swagger -> Server (SwaggerSchemaUI' dir api)
 swaggerSchemaUIServer =
     swaggerSchemaUIServerImpl swaggerUiIndexTemplate swaggerUiFiles
@@ -140,13 +153,13 @@
 --
 -- See <https://github.com/jensoleg/swagger-ui>
 jensolegSwaggerSchemaUIServer
-    :: (Server api ~ ExceptT ServantErr IO Swagger)
+    :: (Server api ~ Handler Swagger)
     => Swagger -> Server (SwaggerSchemaUI' dir api)
 jensolegSwaggerSchemaUIServer =
     swaggerSchemaUIServerImpl jensolegIndexTemplate jensolegFiles
 
 swaggerSchemaUIServerImpl
-    :: (Server api ~ ExceptT ServantErr IO Swagger)
+    :: (Server api ~ Handler Swagger)
     => T.Text -> [(FilePath, ByteString)]
     -> Swagger -> Server (SwaggerSchemaUI' dir api)
 swaggerSchemaUIServerImpl indexTemplate files swagger = return swagger
