diff --git a/doc/conf.py b/doc/conf.py
index bb4be3c95ab39e7d406e348b5529ffe568ce6aab..202ba44cc0181a0634429062e34b5c617066b88c 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -1,48 +1,12 @@
-import sys  # noqa
-import os  # noqa
-import shlex  # noqa
+from urllib.request import urlopen
 
-# -- General configuration ------------------------------------------------
+_conf_url = \
+        "https://raw.githubusercontent.com/inducer/sphinxconfig/main/sphinxconfig.py"
+with urlopen(_conf_url) as _inf:
+    exec(compile(_inf.read(), _conf_url, "exec"), globals())
 
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = "1.0"
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named "sphinx.ext.*") or your custom
-# ones.
-extensions = [
-    "sphinx.ext.autodoc",
-    "sphinx.ext.doctest",
-    "sphinx.ext.intersphinx",
-    "sphinx.ext.mathjax",
-    "sphinx.ext.viewcode",
-    "sphinx_copybutton",
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ["_templates"]
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-# source_suffix = [".rst", ".md"]
-source_suffix = ".rst"
-
-# The encoding of source files.
-#source_encoding = "utf-8-sig"
-
-# The master toctree document.
-master_doc = "index"
-
-# General information about the project.
-project = "grudge"
-copyright = "2015, Andreas Kloeckner"
-author = "Andreas Kloeckner"
-
-# The version info for the project you"re documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
+copyright = "2015-21, grudge contributors"
+author = "grudge contributors"
 
 
 def get_version():
@@ -59,56 +23,6 @@ version = get_version()
 # The full version, including alpha/beta/rc tags.
 release = version
 
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ""
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = "%B %d, %Y"
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ["_build"]
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#default_role = None
-
-# If true, "()" will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = "sphinx"
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-html_theme = "furo"
-
-# Example configuration for intersphinx: refer to the Python standard library.
 intersphinx_mapping = {
     "https://docs.python.org/3/": None,
     "https://numpy.org/doc/stable/": None,
@@ -119,4 +33,3 @@ intersphinx_mapping = {
     "https://documen.tician.de/meshmode/": None,
     "https://documen.tician.de/loopy/": None,
     }
-autoclass_content = "class"