diff --git a/AUTHORS.md b/AUTHORS.md
index b9bdca0..f3b71d3 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -2,7 +2,7 @@
 
 The following lists maintainers, primary developers, and all much-appreciated contributors to NLSR in alphabetical order.
 The specific contributions of individual authors can be obtained from the git history of the [official NLSR repository](https://github.com/named-data/NLSR).
-If you would like to become a contributor to the official repository, please follow the recommendations in <https://github.com/named-data/.github/blob/master/CONTRIBUTING.md>.
+If you would like to become a contributor to the official repository, please follow the recommendations in <https://github.com/named-data/.github/blob/main/CONTRIBUTING.md>.
 
 * Alexander Afanasyev <https://users.cs.fiu.edu/~afanasyev>
 * Adam Alyyan <https://github.com/a64adam>
diff --git a/README-dev.md b/README-dev.md
index 27aa479..060c556 100644
--- a/README-dev.md
+++ b/README-dev.md
@@ -1,7 +1,7 @@
 # Notes for NLSR developers
 
 If you are new to the NDN software community, please read the
-[Contributor's Guide](https://github.com/named-data/.github/blob/master/CONTRIBUTING.md).
+[Contributor's Guide](https://github.com/named-data/.github/blob/main/CONTRIBUTING.md).
 
 ## Licensing requirements
 
diff --git a/README.md b/README.md
index 6ce446b..ccdf706 100644
--- a/README.md
+++ b/README.md
@@ -5,14 +5,13 @@
 ![Language](https://img.shields.io/badge/C%2B%2B-17-blue)
 ![Latest version](https://img.shields.io/github/v/tag/named-data/NLSR?label=Latest%20version)
 
-For complete documentation and more extensive information,
-please visit the [NLSR homepage](https://named-data.net/doc/NLSR/current/).
+> For more extensive documentation, please visit the [NLSR homepage](https://docs.named-data.net/NLSR/current/).
 
 ## Overview
 
-NLSR is a routing protocol in NDN that populates NDN's Routing Information Base.
-NLSR will continue to evolve alongside the Named Data Networking
-[protocol](https://named-data.net/doc/NDN-packet-spec/current/).
+NLSR is a routing protocol for Named Data Networking (NDN) that populates the Routing Information
+Base (RIB) of an NDN router, such as [NFD](https://github.com/named-data/NFD). NLSR continues to
+evolve alongside the core [NDN protocol](https://docs.named-data.net/NDN-packet-spec/current/).
 
 The main design goal of NLSR is to provide a routing protocol to populate NDN's RIB.
 NLSR calculates the routing table using link-state or hyperbolic routing and produces
@@ -23,20 +22,22 @@
 NLSR was mainly developed by members of the NSF-sponsored [NDN project team](
 https://named-data.net/project/participants/). See [`AUTHORS.md`](AUTHORS.md) for details.
 
-Bug reports and feedback are highly appreciated and can be submitted through the
-[NLSR issue tracker](https://redmine.named-data.net/projects/nlsr/issues).
-
 ## Source releases
 
 The source code and installation instructions are available at the following locations:
 
-- [Installation](https://named-data.net/doc/NLSR/current/INSTALL.html)
-- [Getting started with NLSR](https://named-data.net/doc/NLSR/current/GETTING-STARTED.html)
+- [Installation](https://docs.named-data.net/NLSR/current/INSTALL.html)
+- [Getting started with NLSR](https://docs.named-data.net/NLSR/current/GETTING-STARTED.html)
 - [NLSR GitHub repository](https://github.com/named-data/NLSR)
 
+## Reporting bugs
+
+Please submit any bug reports or feature requests to the
+[NLSR issue tracker](https://redmine.named-data.net/projects/nlsr/issues).
+
 ## Additional resources
 
-- [Contributor's Guide](https://github.com/named-data/.github/blob/master/CONTRIBUTING.md)
+- [Contributor's Guide](https://github.com/named-data/.github/blob/main/CONTRIBUTING.md)
 - [NLSR Wiki](https://redmine.named-data.net/projects/nlsr/wiki)
 - [NLSR Issue Tracker](https://redmine.named-data.net/projects/nlsr/issues)
 - [NLSR Mailing List Sign Up](https://listserv.memphis.edu/scripts/wa.exe?GETPW1)
diff --git a/docs/GETTING-STARTED.rst b/docs/GETTING-STARTED.rst
index aa83b24..7909828 100644
--- a/docs/GETTING-STARTED.rst
+++ b/docs/GETTING-STARTED.rst
@@ -7,14 +7,13 @@
 Getting Source
 --------------
 
--  `GitHub NLSR repository <https://github.com/named-data/NLSR>`_
+- `GitHub NLSR repository <https://github.com/named-data/NLSR>`__
 
 Installation
 ------------
 
 :doc:`INSTALL`
 
-
 Important Notes About Configuration
 -----------------------------------
 
@@ -23,10 +22,9 @@
 the Faces in NFD. NLSR will obtain this information from NFD, and
 configure its neighbors using this information.
 
-For people who were relying on NLSR to automagically configure their
-networks, this must now be done with ``nfdc``. Its documentation can
-be found `here
-<https://named-data.net/doc/NFD/current/manpages/nfdc.html>`_
+For users who were relying on NLSR to automagically configure their networks,
+this must now be done with ``nfdc``. See ``man nfdc`` for its documentation
+(`online version <https://docs.named-data.net/NFD/current/manpages/nfdc.html>`__).
 
 Configuration
 -------------
@@ -70,19 +68,20 @@
       ERROR    error messages
       FATAL    fatal (will be logged unconditionally)
 
-To obtain logs for NLSR, set the NDN_LOG environment variable with the correct prefix and
-log-level settings. For example, running the following command will display all log
+To obtain logs for NLSR, set the ``NDN_LOG`` environment variable with the correct prefix
+and log-level settings. For example, running the following command will display all log
 messages in NLSR with a DEBUG level or below.
 
-::
+.. code-block:: sh
 
     NDN_LOG='nlsr.*=DEBUG' nlsr
 
-If the user is presented with an error message `User does not have read and write
-permission on the directory` it can be circumvented by running the application with sudo:
+If the user is presented with an error message "User does not have read and write
+permission on the directory" it can be circumvented by running the application with sudo:
 
-::
+.. code-block:: sh
 
     sudo env NDN_LOG='nlsr.*=DEBUG' nlsr
 
-Use `man ndn-log` for more detailed instructions.
+See ``man ndn-log`` for more details (`online version
+<https://docs.named-data.net/ndn-cxx/current/manpages/ndn-log.html>`__).
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index 519841b..828f021 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -7,28 +7,30 @@
 Prerequisites
 -------------
 
-- `NFD <https://named-data.net/doc/NFD/>`_ and its dependencies
+- `NFD <https://github.com/named-data/NFD>`__ and its dependencies.
 
-  Refer to `Getting started with NFD <https://named-data.net/doc/NFD/current/INSTALL.html>`_
-  for detailed installation and running instruction.
+  Check out the `documentation <https://docs.named-data.net/NFD/current/INSTALL.html>`__
+  for detailed installation and running instructions.
 
-- PSync library
+- PSync library [optional but recommended, enabled by default]
 
   Download the PSync library and build it according to the instructions available at
   https://github.com/named-data/PSync#build
 
-- [Optional] ChronoSync library
+- ChronoSync library [optional]
 
   For testing purposes, NLSR can be optionally built with Chronosync support. Download
   the ChronoSync library and build it according to the instructions available at
   https://github.com/named-data/ChronoSync#build
 
-- [Optional] SVS library
+- SVS library [optional]
 
   NLSR can be used with State Vector Sync as the underlying Sync protocol. Download
   the ndn-svs library and build it according to the instructions available at
   https://github.com/named-data/ndn-svs#installation
 
+Note that at least one sync library must be enabled.
+
 Build
 -----
 
diff --git a/docs/ROUTER-CONFIG.rst b/docs/ROUTER-CONFIG.rst
index 89ac3f5..ec7cbe3 100644
--- a/docs/ROUTER-CONFIG.rst
+++ b/docs/ROUTER-CONFIG.rst
@@ -49,16 +49,15 @@
 
 If you see ``error while connecting to the forwarder (No such file or directory)``,
 ``nfd`` is not running. Follow the instructions in `Getting started with NFD
-<http://named-data.net/doc/NFD/current/INSTALL.html>`_ to run nfd.
+<https://docs.named-data.net/NFD/current/INSTALL.html>`_ to run nfd.
 
 Since v0.4.0, NLSR no longer creates Faces for the neighbors that are
 specified in ``nlsr.conf``. Instead, it relies on the pre-existence of
 the Faces in NFD. NLSR will obtain this information from NFD, and
 configure its neighbors using this information.
 
-To create faces it is now necessary to use the ``nfdc`` command. Its documentation can
-be found `here
-<https://named-data.net/doc/NFD/current/manpages/nfdc.html>`_
+To create faces it is now necessary to use the ``nfdc`` command. See ``man nfdc`` for
+its documentation (`online version <https://docs.named-data.net/NFD/current/manpages/nfdc.html>`__).
 
 Step 2. Determining FaceUri
 ---------------------------
diff --git a/docs/index.rst b/docs/index.rst
index fa1ee00..626006e 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -14,9 +14,9 @@
    release-notes
    releases
 
-**NLSR** is a routing protocol for NDN that populates NDN's Routing Information Base.
-NLSR will continue to evolve alongside the Named Data Networking `protocol
-<https://named-data.net/doc/NDN-packet-spec/current/>`__.
+**NLSR** is a routing protocol for Named Data Networking (NDN) that populates the Routing
+Information Base (RIB) of an NDN router, such as `NFD`_. NLSR continues to evolve alongside
+the core `NDN protocol`_.
 
 The main design goal of NLSR is to provide a routing protocol to populate NDN's FIB. NLSR
 calculates the routing table using link-state or hyperbolic routing and produces multiple
@@ -78,6 +78,8 @@
 NLSR is free software distributed under the GNU General Public License version 3.
 See `COPYING.md <https://github.com/named-data/NLSR/blob/master/COPYING.md>`__ for details.
 
+.. _NDN protocol: https://docs.named-data.net/NDN-packet-spec/current/
+.. _NFD: https://github.com/named-data/NFD
 .. _NLSR Wiki: https://redmine.named-data.net/projects/nlsr/wiki
 .. _NLSR Paper: https://named-data.net/wp-content/uploads/2016/01/ndn-0037-1-nlsr.pdf
 .. _NLSR Mailing List: https://listserv.memphis.edu/scripts/wa.exe?SUBED1=NLSR-HELP-L&A=1
diff --git a/docs/release-notes/release-notes-0.1.0.rst b/docs/release-notes/release-notes-0.1.0.rst
index b94e3ae..eba10b4 100644
--- a/docs/release-notes/release-notes-0.1.0.rst
+++ b/docs/release-notes/release-notes-0.1.0.rst
@@ -4,19 +4,20 @@
 Release date: August 25, 2014
 
 The main design goal of NLSR is to provide a routing protocol to populate `NFD's
-<https://named-data.net/doc/NFD/>`_ RIB.  NLSR calculates the routing table using
+<https://github.com/named-data/NFD>`__ RIB.  NLSR calculates the routing table using
 link-state or hyperbolic routing and produces multiple faces for each reachable name
 prefix in a single authoritative domain.
 
-**Included features**:
+Included features
+^^^^^^^^^^^^^^^^^
 
 - Advertise availability of content through the configured router
 
-- Use `ChronoSync <https://github.com/named-data/ChronoSync>`_ to synchronize routers' LSA sequence numbers and Interest/Data to retrieve LSAs
+- Use `ChronoSync <https://github.com/named-data/ChronoSync>`__ to synchronize routers' LSA sequence numbers and Interest/Data to retrieve LSAs
 
 - Produce a list of ranked forwarding options for each name prefix to facilitate NDN's adaptive forwarding strategies
 
-- Configure maximum number of faces per prefix in NFD’s RIB
+- Configure maximum number of faces per prefix in NFD's RIB
 
 - Set up NFD tunnels to neighbors automatically and maintain the tunnels to neighbors
 
@@ -27,4 +28,4 @@
 
 - Use a hierarchical trust model for routing within a single administrative domain
 
-- Keep NFD’s RIB updated on failure and recovery
+- Keep NFD's RIB updated on failure and recovery
diff --git a/wscript b/wscript
index 136349d..93e19db 100644
--- a/wscript
+++ b/wscript
@@ -1,6 +1,6 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 """
-Copyright (c) 2014-2022,  The University of Memphis,
+Copyright (c) 2014-2023,  The University of Memphis,
                           Regents of the University of California,
                           Arizona Board of Regents.
 
@@ -68,7 +68,7 @@
     conf.find_program(['pkgconf', 'pkg-config'], var='PKGCONFIG')
 
     pkg_config_path = os.environ.get('PKG_CONFIG_PATH', f'{conf.env.LIBDIR}/pkgconfig')
-    conf.check_cfg(package='libndn-cxx', args=['libndn-cxx >= 0.8.0', '--cflags', '--libs'],
+    conf.check_cfg(package='libndn-cxx', args=['libndn-cxx >= 0.8.1', '--cflags', '--libs'],
                    uselib_store='NDN_CXX', pkg_config_path=pkg_config_path)
 
     boost_libs = ['system', 'iostreams', 'filesystem', 'regex']
@@ -82,11 +82,11 @@
                    'For more information, see https://redmine.named-data.net/projects/nfd/wiki/Boost')
 
     if conf.options.with_chronosync:
-        conf.check_cfg(package='ChronoSync', args=['ChronoSync >= 0.5.4', '--cflags', '--libs'],
+        conf.check_cfg(package='ChronoSync', args=['ChronoSync >= 0.5.5', '--cflags', '--libs'],
                        uselib_store='CHRONOSYNC', pkg_config_path=pkg_config_path)
 
     if conf.options.with_psync:
-        conf.check_cfg(package='PSync', args=['PSync >= 0.3.0', '--cflags', '--libs'],
+        conf.check_cfg(package='PSync', args=['PSync >= 0.4.0', '--cflags', '--libs'],
                        uselib_store='PSYNC', pkg_config_path=pkg_config_path)
 
     if conf.options.with_svs:
