diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,7 +1,6 @@
-# 0.3.2
+# 0.3.3
 
-- Support GHC-8.6.
-- Drop servant <0.14 support
+- Add `swaggerSchemaUIServerImpl'`
 
 # 0.3.1
 
diff --git a/servant-swagger-ui-core.cabal b/servant-swagger-ui-core.cabal
--- a/servant-swagger-ui-core.cabal
+++ b/servant-swagger-ui-core.cabal
@@ -1,48 +1,48 @@
-cabal-version:  1.12
-name:           servant-swagger-ui-core
-version:        0.3.2
-
-synopsis:       Servant swagger ui core components
-category:       Web, Servant, Swagger
+cabal-version:      1.12
+name:               servant-swagger-ui-core
+version:            0.3.3
+synopsis:           Servant swagger ui core components
+category:           Web, Servant, Swagger
 description:
-   Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
-   .
-   See servant-swagger-ui, servant-swagger-ui-jensoleg or
-   servant-swagger-ui-redoc for "concrete" implementations.
+  Provide embedded swagger UI for servant and swagger (i.e. servant-swagger)
+  .
+  See servant-swagger-ui, servant-swagger-ui-jensoleg or
+  servant-swagger-ui-redoc for "concrete" implementations.
 
-homepage:       https://github.com/haskell-servant/servant-swagger-ui
-bug-reports:    https://github.com/haskell-servant/servant-swagger-ui/issues
-author:         Oleg Grenrus <oleg.grenrus@iki.fi>
-maintainer:     haskell-servant-maintainers@googlegroups.com
-license:        BSD3
-license-file:   LICENSE
-build-type:     Simple
-tested-with:    GHC ==7.8.4 || ==7.10.3 || ==8.0.2 ||  ==8.2.2 || ==8.4.4 || ==8.6.1
-extra-source-files:
-  Changelog.md
+homepage:           https://github.com/haskell-servant/servant-swagger-ui
+bug-reports:
+  https://github.com/haskell-servant/servant-swagger-ui/issues
 
+author:             Oleg Grenrus <oleg.grenrus@iki.fi>
+maintainer:         haskell-servant-maintainers@googlegroups.com
+license:            BSD3
+license-file:       LICENSE
+build-type:         Simple
+tested-with:
+  GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5
+
+extra-source-files: Changelog.md
+
 source-repository head
-  type: git
+  type:     git
   location: https://github.com/haskell-servant/servant-swagger-ui
 
 library
-  hs-source-dirs:
-      src
-  ghc-options: -Wall
-
+  hs-source-dirs:   src
+  ghc-options:      -Wall
   build-depends:
       base                 >=4.7      && <4.13
     , blaze-markup         >=0.7.0.2  && <0.9
     , bytestring           >=0.10.4.0 && <0.11
-    , http-media           >=0.7.1.3  && <0.8
-    , servant              >=0.14     && <0.15
-    , servant-blaze        >=0.8      && <0.9
-    , servant-server       >=0.14     && <0.15
-    , swagger2             >=2.3.0.1  && <2.4
+    , http-media           >=0.7.1.3  && <0.9
+    , servant              >=0.14     && <0.17
+    , servant-blaze        >=0.8      && <0.10
+    , servant-server       >=0.14     && <0.17
+    , swagger2             >=2.3.0.1  && <2.5
     , text                 >=1.2.3.0  && <1.3
     , transformers         >=0.3      && <0.6
     , transformers-compat  >=0.3      && <0.7
     , wai-app-static       >=3.0.1.1  && <3.2
-  exposed-modules:
-      Servant.Swagger.UI.Core
+
+  exposed-modules:  Servant.Swagger.UI.Core
   default-language: Haskell2010
diff --git a/src/Servant/Swagger/UI/Core.hs b/src/Servant/Swagger/UI/Core.hs
--- a/src/Servant/Swagger/UI/Core.hs
+++ b/src/Servant/Swagger/UI/Core.hs
@@ -42,6 +42,7 @@
     -- * Implementation details
     SwaggerUiHtml(..),
     swaggerSchemaUIServerImpl,
+    swaggerSchemaUIServerImpl',
     Handler,
     ) where
 
@@ -103,7 +104,15 @@
     :: (Server api ~ Handler Swagger)
     => T.Text -> [(FilePath, ByteString)]
     -> Swagger -> Server (SwaggerSchemaUI' dir api)
-swaggerSchemaUIServerImpl indexTemplate files swagger = return swagger
+swaggerSchemaUIServerImpl indexTemplate files swagger
+  = swaggerSchemaUIServerImpl' indexTemplate files $ return swagger
+
+-- | Use a custom server to serve the Swagger spec source.
+swaggerSchemaUIServerImpl'
+    :: T.Text -> [(FilePath, ByteString)]
+    -> Server api -> Server (SwaggerSchemaUI' dir api)
+swaggerSchemaUIServerImpl' indexTemplate files server
+       = server
     :<|> return (SwaggerUiHtml indexTemplate)
     :<|> return (SwaggerUiHtml indexTemplate)
     :<|> rest
