diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# pinboard-notes-backup [![Build Status](https://travis-ci.org/bdesham/pinboard-notes-backup.svg?branch=main)](https://travis-ci.org/bdesham/pinboard-notes-backup)
+# pinboard-notes-backup [![Build](https://github.com/bdesham/pinboard-notes-backup/actions/workflows/main.yaml/badge.svg)](https://github.com/bdesham/pinboard-notes-backup/actions/workflows/main.yaml)
 
 Back up the notes you’ve saved to [Pinboard].
 
@@ -66,6 +66,14 @@
 
 [Stack]: http://docs.haskellstack.org/en/stable/README/
 
+You can also build the project with cabal-install, but I’m less familiar with that approach.
+
+This project [uses GitHub Actions][actions] for automated building. The build is checked on the latest versions of macOS and Ubuntu Linux, with various combinations of Stack, cabal-install, and GHC 8.6.x, 8.8.x, 8.10.x, and 9.0.x. The project does *not* currently build under GHC 9.2.x because of [a temporary incompatibility] between [req] and that GHC version.
+
+[actions]: https://github.com/bdesham/pinboard-notes-backup/actions
+[a temporary incompatibility]: https://github.com/mrkkrp/req/pull/125
+[req]: https://github.com/mrkkrp/req
+
 ## Usage
 
 First you’ll need to grab your Pinboard API token from Pinboard’s [password settings] page. It’s a string like “maciej:abc123456”.
@@ -133,6 +141,8 @@
 
 [PVP]: https://pvp.haskell.org/
 
+* 1.0.5.4 (2022-02-26)
+    - The program now builds against a wider set of dependencies. There were no changes in functionality.
 * 1.0.5.3 (2021-03-24)
     - The program now builds against a wider set of dependencies. There were no changes in functionality.
 * 1.0.5.2 (2021-02-28)
@@ -158,14 +168,7 @@
 
 ## License
 
-The scripts in the “travis_scripts” folder were adapted from scripts written by Taylor Fausak for the [Octane] project. They are released under [the license of that project][Octane license].
-
-[Octane]: https://github.com/tfausak/octane
-[Octane license]: https://github.com/tfausak/octane/blob/04ea434f476d30c3c8327d8ed9afdc6ae246f2ae/LICENSE.markdown
-
-The rest of the code in this repository is released under the following terms:
-
-Copyright © 2016–2017, 2019, 2021 Benjamin D. Esham.
+Copyright © 2016–2017, 2019, 2021–2022 Benjamin D. Esham.
 
 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 
diff --git a/man/pnbackup.1 b/man/pnbackup.1
--- a/man/pnbackup.1
+++ b/man/pnbackup.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pandoc 2.7.3
+.\" Automatically generated by Pandoc 2.14.0.3
 .\"
 .TH "PNBACKUP" "1" "" "pinboard-notes-backup" ""
 .hy
@@ -14,24 +14,24 @@
 .PP
 The following parameters must always be given:
 .TP
-.B \f[C]-t <username>:<api token>\f[R]
+\f[B]\f[CB]-t <username>:<api token>\f[B]\f[R]
 Your Pinboard username, a colon, and your Pinboard API token.
 You can find this on the Pinboard password settings page
 (https://pinboard.in/settings/password).
 .TP
-.B \f[C]<output file>\f[R]
+\f[B]\f[CB]<output file>\f[B]\f[R]
 The name of the SQLite database file where your notes will be stored.
 This file will be created if it doesn\[cq]t yet exist.
 .PP
 The following options are available:
 .TP
-.B \f[C]-v, --verbose\f[R]
+\f[B]\f[CB]-v, --verbose\f[B]\f[R]
 Display more information about the sync progress.
 .TP
-.B \f[C]-h, --help\f[R]
+\f[B]\f[CB]-h, --help\f[B]\f[R]
 Display the usage information and exit.
 .TP
-.B \f[C]--version\f[R]
+\f[B]\f[CB]--version\f[B]\f[R]
 Display the version number and exit.
 .SH DESCRIPTION
 .PP
@@ -53,7 +53,7 @@
 pnbackup will return zero on success or nonzero on failure.
 .SH EXAMPLE
 .TP
-.B \f[C]pnbackup -t maciej:abc123456 Notes.sqlite\f[R]
+\f[B]\f[CB]pnbackup -t maciej:abc123456 Notes.sqlite\f[B]\f[R]
 will put all of your notes into a SQLite database called
 \[lq]Notes.sqlite\[rq], assuming that your Pinboard username is
 \[lq]maciej\[rq] and your API token is \[lq]abc123456\[rq].
@@ -107,7 +107,7 @@
 <https://github.com/bdesham/pinboard-notes-backup>.
 .SH LICENSE
 .PP
-Copyright \[co] 2016\[en]2017, 2019, 2021 Benjamin D.\ Esham.
+Copyright \[co] 2016\[en]2017, 2019, 2021\[en]2022 Benjamin D.\ Esham.
 .PP
 This program is free software: you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
diff --git a/pinboard-notes-backup.cabal b/pinboard-notes-backup.cabal
--- a/pinboard-notes-backup.cabal
+++ b/pinboard-notes-backup.cabal
@@ -1,5 +1,5 @@
 name:                pinboard-notes-backup
-version:             1.0.5.3
+version:             1.0.5.4
 synopsis:            Back up the notes you've saved to Pinboard
 description:         A command-line application to back up your notes from the
                      Pinboard bookmarking service to a local SQLite database.
@@ -8,7 +8,7 @@
 license-file:        LICENSE.txt
 author:              Benjamin Esham
 maintainer:          benjamin@esham.io
-copyright:           2016-2017, 2019, 2021 Benjamin D. Esham
+copyright:           2016-2017, 2019, 2021-2022 Benjamin D. Esham
 category:            Backup, CLI, Pinboard
 build-type:          Simple
 cabal-version:       >= 1.10
@@ -27,19 +27,18 @@
   other-modules:       Paths_pinboard_notes_backup Pinboard Types Utils Utils.FriendlyReqError
   default-language:    Haskell2010
   build-depends:       base                   >= 4.7  && < 5
-                       , aeson                >= 0.8  && < 1.6
+                       , aeson                >= 0.8  && < 2.1
                        , ansi-wl-pprint       >= 0.6  && < 0.7
-                       , bytestring           >= 0.10 && < 0.11
+                       , bytestring           >= 0.10 && < 0.12
                        , containers           >= 0.5  && < 0.7
-                       , http-client          >= 0.5  && < 0.7
+                       , http-client          >= 0.5  && < 0.8
                        , http-types           >= 0.12 && < 0.13
                        , mtl                  >= 2.2  && < 2.3
                        , optparse-applicative >= 0.11 && < 0.17
-                       , req                  >= 1.0  && < 3.10
+                       , req                  >= 1.0  && < 3.11
                        , sqlite-simple        >= 0.4  && < 0.5
                        , text                 >= 1.2  && < 1.3
                        , time                 >= 1.5  && < 1.10
-                       , transformers         >= 0.4  && < 0.6
   default-extensions:  DataKinds
                        DeriveFunctor
                        GeneralizedNewtypeDeriving
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -3,7 +3,6 @@
 module Main where
 
 import Prelude hiding (id, putStrLn)
-import Data.Monoid ((<>))
 import Data.Text (intercalate)
 import Data.Text.IO (putStrLn)
 import Data.Version (showVersion)
@@ -52,7 +51,7 @@
 footerText :: Doc
 footerText = vsep [ "For more information, see \"man pnbackup\"."
                   , ""
-                  , "Copyright © 2016–2017, 2019, 2021 Benjamin D. Esham"
+                  , "Copyright © 2016–2017, 2019, 2021–2022 Benjamin D. Esham"
                   , ""
                   , "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>."
                   , "This is free software: you are free to change and redistribute it."
diff --git a/src/Pinboard.hs b/src/Pinboard.hs
--- a/src/Pinboard.hs
+++ b/src/Pinboard.hs
@@ -14,7 +14,6 @@
 import Data.ByteString.Char8 as B (pack)
 import Data.ByteString.Lazy (ByteString)
 import Data.Foldable (for_)
-import Data.Monoid ((<>))
 import Data.Set ((\\))
 import qualified Data.Set as Set
 import Data.Text (Text)
diff --git a/src/Utils/FriendlyReqError.hs b/src/Utils/FriendlyReqError.hs
--- a/src/Utils/FriendlyReqError.hs
+++ b/src/Utils/FriendlyReqError.hs
@@ -21,8 +21,8 @@
 
 friendlyReqError (Req.VanillaHttpException (HttpExceptionRequest _ (ConnectionFailure exc)))
   | "nodename nor servname provided, or not known" `isInfixOf` (pack (show exc)) =
-      "Error: The Pinboard server's IP address could not be looked up. Are\n\
-	  \you sure your internet connection is active?"
+      "Error: The Pinboard server's IP address could not be looked up. Are\n" <>
+      "you sure your internet connection is active?"
   | otherwise = "Could not connect to the server: " <> pack (show exc)
 
 friendlyReqError (Req.VanillaHttpException (HttpExceptionRequest _ other)) =
