BASIS a tax blog by Steve Kobes

You’re all doing footnotes wrong

Jul 26, 2026

The blog has a new look powered by new technology. This was a chance for me to build a feature I’ve been dreaming about: independently scrollable footnotes.[1]

On paper, a footnote appears on the same page as the indicator that refers you to it, so it’s pretty efficient for your eyes to make a brief detour into the footnote at the time it is relevant, then bounce back up to the main text without breaking your concentration.

For unfathomable reasons, some books use endnotes instead of footnotes, which send you on a tedious page-flipping venture to the back of the book. As a reader, I find endnotes rage-inducing. I either use post-it notes to keep track of my progress in two parallel locations, or adopt what is probably the more common strategy of ignoring them entirely.[2]

On the internet, most publishers render footnotes like endnotes — at the bottom of everything, making you scroll back and forth a lot. If you’re lucky, there are links that teleport you to and from the footnote when you click on them, but those jumps that scroll the whole page are still jarring and distracting, especially if they use animation. What I really want is to see both the footnote and the context associated with it at the same time![3]

We can do better. This blog now achieves all of my footnote presentation goals:

And most of this can be achieved without any JavaScript code,[4] so the blog loads quickly and requires very little computing power.

Most bloggers haven’t paid much attention to footnote craftsmanship, and might be surprised at how much better the user experience could be.

And now, back to your regularly scheduled tax commentary…

Appendix: Blog Technical Notes

You might enjoy this section if you’re interested in software engineering and blog technology. If not, you can skip it.

This pipeline gives me a convenient workflow, a ton of customizability, and world-class performance[8] using entirely free tools and services.

One thing I lost by leaving WordPress was the option for readers to leave public comments on blog posts. But this feature was almost never used, except by spammers, so I’ve decided to live without it.[9]

  1. This is a footnote. ↩︎

  2. Ignoring a footnote or endnote indicator gives me a feeling of FOMO (“fear of missing out”). Who knows what nugget of wisdom the unexamined footnote might impart! ↩︎

  3. The best prior art that I have encountered is the Yale Law Journal (example article), which has an elegant “sidenote” design. But longer sidenotes are abridged — the full note is in a popup behind a click — and they disappear in a narrow browser window or on a mobile device. So I believe my design improves. ↩︎

  4. I wrote a small amount of JavaScript to solve the common problem of accumulating duplicates in the history list for the browser’s Back and Forward buttons, and to dismiss a footnote highlight by pressing Escape. ↩︎

  5. Eleventy provides a minimalistic experience “out of the box”, and required a lot of tinkering to do all the things I wanted. Its plugin interface encourages such tinkering, for those who want to assemble a blog like a Lego set. ↩︎

  6. Spec wonks may note that footnotes have native support in the CSS Generated Content for Paged Media Module. Unfortunately, mainstream web browsers have not yet adopted those features, so they are only useful in specialized document-processing workflows. ↩︎

  7. Matthew Butterick is also the author of Typography for Lawyers, which sits close at hand on my bookshelf. ↩︎

  8. Besides serving from a CDN, Cloudflare can send headers like Cache-Control so the browser reuses assets it has already fetched. This is a significant benefit that is lacking in some hosting services, such as GitHub Pages. ↩︎

  9. These days, public discussion about a blog post tends to happen when someone shares the post on a social media platform. Please feel free to do that! ↩︎