Cookbook ======== This page is a *collective effort* whose goal is to show how to solve many common problems with servant. If you're interested in contributing examples of your own, feel free to open an issue or a pull request on `our github repository `_ or even to just get in touch with us on the `**#haskell-servant** IRC channel on libera.chat _ or on `the mailing list `_. The scope is very wide. Simple and fancy authentication schemes, file upload, type-safe links, working with CSV, .zip archives, you name it! .. toctree:: :maxdepth: 1 structuring-apis/StructuringApis.lhs generic/Generic.lhs namedRoutes/NamedRoutes.lhs https/Https.lhs db-mysql-basics/MysqlBasics.lhs db-sqlite-simple/DBConnection.lhs db-postgres-pool/PostgresPool.lhs using-custom-monad/UsingCustomMonad.lhs using-free-client/UsingFreeClient.lhs custom-errors/CustomErrors.lhs uverb/UVerb.lhs basic-auth/BasicAuth.lhs basic-streaming/Streaming.lhs jwt-and-basic-auth/JWTAndBasicAuth.lhs hoist-server-with-context/HoistServerWithContext.lhs file-upload/FileUpload.lhs pagination/Pagination.lhs curl-mock/CurlMock.lhs sentry/Sentry.lhs testing/Testing.lhs open-id-connect/OpenIdConnect.lhs