I've been thinking about footnotes and whether they should be included in my writing. It started after reading this article from Kitty Giraudel about accessible footnotes , and I explored using popover as an alternative .
I was reading the Piccalilli newsletter and saw that Jake Archibald recently wrote an article about footnotes and has some suggestions on what to use instead.
I hate footnotes1, and hopefully by the end of this, you will too. Let's get down to itβ¦
One of the points that stuck out for me was how footnotes can lead to context switching which can interrupt the flow of reading.
I’m still using footnotes in my writing, but I’ve (hopefully) reduced the usage to references.
Categories:
Web Development
July 15, 2025
A High-quality stranger. I've considered myself a digital gofer. Y'know, go for this and go for that. I'm using micro.blog now to par down my technical projects and be part of an outstanding community.
Debug Information
Permalink
"https://mandarismoore.com/2025/07/15/give-footnotes-the-boot-jakearchibaldcom/"
Params
map[categories:[Web Development] custom_summary:%!s(bool=true) date:2025-07-15 10:00:00 -0800 -0800 draft:%!s(bool=false) guid:http://mandaris.micro.blog/2025/07/15/give-footnotes-the-boot-jakearchibaldcom/ iscjklanguage:%!s(bool=false) lastmod:2025-11-03 23:42:52 -0800 -0800 layout:post microblog:%!s(bool=false) post_id:%!s(int=5478114) publishdate:2025-07-15 10:00:00 -0800 -0800 summary:I have been thinking about my writing style and the difference between when I do something and whether I should. title:Give footnotes the boot - JakeArchibald.com type:post url:/2025/07/15/give-footnotes-the-boot-jakearchibaldcom/]
Page Variables
&hugolib.pageState{id:2102, pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc0048db600), (*hugolib.pageOutput)(0xc0048dba20), (*hugolib.pageOutput)(0xc0048dbe40), (*hugolib.pageOutput)(0xc0048dc2c0), (*hugolib.pageOutput)(0xc0048dc6e0), (*hugolib.pageOutput)(0xc0048dcb00), (*hugolib.pageOutput)(0xc0048dcf20), (*hugolib.pageOutput)(0xc0048dd340)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc0028bddb0), pageOutput:(*hugolib.pageOutput)(0xc0048db600), pageCommon:(*hugolib.pageCommon)(0xc002b82c00)}
All variables scoped to the current context
&hugolib.pageState{id:2102, pageOutputs:[]*hugolib.pageOutput{(*hugolib.pageOutput)(0xc0048db600), (*hugolib.pageOutput)(0xc0048dba20), (*hugolib.pageOutput)(0xc0048dbe40), (*hugolib.pageOutput)(0xc0048dc2c0), (*hugolib.pageOutput)(0xc0048dc6e0), (*hugolib.pageOutput)(0xc0048dcb00), (*hugolib.pageOutput)(0xc0048dcf20), (*hugolib.pageOutput)(0xc0048dd340)}, pageOutputTemplateVariationsState:(*atomic.Uint32)(0xc0028bddb0), pageOutput:(*hugolib.pageOutput)(0xc0048db600), pageCommon:(*hugolib.pageCommon)(0xc002b82c00)}