<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>plaintext.brennan.day</title>
	<subtitle>This is a plain text mirror of the writings from my independent publication https://brennan.day designed for terminal readers and older hardware.</subtitle>
	<link href="http://plaintext.brennan.day/feed.xml" rel="self"/>
	<link href="http://plaintext.brennan.day/"/>
	<updated>2026-09-30T02:00:00Z</updated>
	<id>http://plaintext.brennan.day/</id>
	<author>
		<name>Brennan Brown</name>
	</author>
	<entry>
		<title>A New Design: Tradition, Rituals, and Astrology</title>
		<link href="http://plaintext.brennan.day/a-new-design-tradition-rituals-and-astrology/"/>
		<updated>2026-09-30T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-new-design-tradition-rituals-and-astrology/</id>
		<content type="html">&lt;p&gt;Those of you that visit my website, rather than reading my writing via RSS, will notice that I&#39;ve updated the &lt;a href=&quot;https://social.lol/@brennan/117349468054271540&quot;&gt;colour scheme and fonts&lt;/a&gt; used for the first time since I began my blog &lt;a href=&quot;https://brennan.day/&quot;&gt;Brennan.day&lt;/a&gt;, last November.&lt;/p&gt;
&lt;p&gt;I have had a deep affection for the &lt;a href=&quot;https://github.com/morhetz/gruvbox&quot;&gt;gruvbox colour scheme&lt;/a&gt; I&#39;ve been using--it&#39;s easy on the eyes and gives a rather cozy feeling. But something compelled me to ditch the muted browns and yellows to go with a stark greyscale of black and white, the rainbow now a custom palette I made myself called &lt;a href=&quot;https://brennan.some.pics/6abc4d4d83229&quot;&gt;Moonflower&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Similarly, I changed from the wonderful and speedy &lt;a href=&quot;https://modernfontstacks.com/&quot;&gt;modern font stack&lt;/a&gt; to three different fonts hosted by the privacy-respecting, GDPR-friendly &lt;a href=&quot;https://fonts.bunny.net/&quot;&gt;Bunny Fonts&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/uswds/public-sans&quot;&gt;Public Sans&lt;/a&gt; for navigation, UI, and metadata.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/productiontype/Newsreader&quot;&gt;Newsreader&lt;/a&gt; as the serif for body text.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/noirblancrouge/YoungSerif&quot;&gt;Young Serif&lt;/a&gt; for headers and titles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The reason for this change is the same as the update in colours--I was looking for a design for my website that, for lack of a better word, felt more serious and traditional. In fact, I wanted to wait until a specific time to make the change, like my blog&#39;s 1-year anniversary, or whenever I achieve &lt;a href=&quot;https://100daystooffload.com/#:~:text=Brennan%20Kenneth%20Brown&quot;&gt;#100DaysToOffload&lt;/a&gt; for the third time.&lt;/p&gt;
&lt;p&gt;Why? Good question. Despite my progressive views and rather &lt;em&gt;laissez-faire&lt;/em&gt; attitude, there&#39;s something I deeply appreciate about tradition. Let me be specific about what I mean by that: I mean I believe that there are certain things in life that have a serious weight and gravity that ought to be duly respected. The sacredness of ceremony and ritual. Ranging from the Indigenous practice of smudging and burning sage and sweetgrass in my &lt;a href=&quot;http://plaintext.brennan.day/what-can-i-offer-the-shell/&quot;&gt;abalone shell&lt;/a&gt;, to the joyful act of celebrating birthdays.&lt;/p&gt;
&lt;p&gt;I think tradition is regarded as a vehicle to ensure authority is obeyed, and that an argument can be made that no particular act or day of the year is more important or meaningful than another. That it&#39;s all arbitrary and self-imposed. In &lt;a href=&quot;https://www.goodreads.com/book/show/18898804-the-invention-of-tradition&quot;&gt;&lt;em&gt;The Invention of Tradition&lt;/em&gt;&lt;/a&gt;, Eric Hobsbawm and Terence Ranger wrote how many of the customs we assume are ancient, such as Welsh and Scottish national culture or the elaborate rituals of the British monarchy, were invented or elaborated only in the last couple of centuries.&lt;/p&gt;
&lt;p&gt;But, really, I think this idea of everything being profane takes just as much faith and belief.&lt;/p&gt;
&lt;p&gt;Émile Durkheim argued in &lt;a href=&quot;https://durkheim.uchicago.edu/Summaries/forms.html&quot;&gt;&lt;em&gt;The Elementary Forms of Religious Life&lt;/em&gt;&lt;/a&gt; that the feeling of two worlds, sacred and profane, comes from the contrast between rare, intense gatherings and long stretches of scattered everyday life. The sacred is something a community makes when it comes together, a feeling he called &lt;a href=&quot;https://sk.sagepub.com/ency/edvol/the-sage-encyclopedia-of-sociology-of-religion/chpt/collective-effervescence#_&quot;&gt;collective effervescence&lt;/a&gt;, turning ordinary objects and people into sacred symbols.&lt;/p&gt;
&lt;p&gt;In Wittgenstein&#39;s &lt;a href=&quot;https://davidgraeber.org/papers/remarks-on-wittgensteins-remarks-on-frazer/&quot;&gt;remarks on Frazer&#39;s &lt;em&gt;Golden Bough&lt;/em&gt;&lt;/a&gt;, he objected to treating ritual as bad science. People performing ritual aren&#39;t attempting to manipulate cause and effect. The ritual is closer to a grammar of gestures. Like kissing a photograph of someone you love. Ritual comes from a need to &lt;a href=&quot;https://www.cambridge.org/core/books/abs/wittgenstein-rehinged/rituals-philosophy-science-and-progresswittgenstein-on-frazer/437D796F98F50073C51E3CCC4E492DF1&quot;&gt;celebrate whatever we find full of value&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;G.K. Chesterton, who I&#39;ve &lt;a href=&quot;http://plaintext.brennan.day/compulsion-the-writers-who-wrote-the-most-in-history/&quot;&gt;written about before&lt;/a&gt;, wrote in &lt;a href=&quot;https://www.ccel.org/ccel/chesterton/orthodoxy.vii.html&quot;&gt;&lt;em&gt;The Ethics of Elfland&lt;/em&gt;&lt;/a&gt; that tradition is democracy extended through time, trusting a consensus of common human voices over the isolated, arbitrary record. &amp;quot;The democracy of the dead.&amp;quot;&lt;/p&gt;
&lt;p&gt;Thiền monk and activist Thich Nhat Hanh&#39;s meditation &lt;a href=&quot;https://www.awakin.org/v2/read/view.php?tid=222&quot;&gt;on interbeing&lt;/a&gt; asks you to look at a sheet of paper, and see the cloud in it. Without the cloud there is no rain, without rain no trees, and without trees no paper. The paper is part of our perception, so we are in it as well. Nothing is standing alone, including the one doing the perceiving.&lt;/p&gt;
&lt;p&gt;Similarly, one of the earliest meditations I learned when I was practicing Buddhism as a teenager was to attempt to describe a flower without using any of my five senses: no sight, smell, touch, taste, or sound. No colour, no scent, no softness of petal, no shape. You quickly realize it&#39;s an impossible ask. We rely on the subjective, lossy interpretation of a reality we can never fully understand. The flower, like all else, is an illusion.&lt;/p&gt;
&lt;p&gt;Our entire life depends on us having faith in these senses, of having faith in this reality and our interpretation of it. And so I believe we lend ourselves to surrender and reverence, at the very least as an act of humility.&lt;/p&gt;
&lt;p&gt;I like to think about how the prisoners in Plato&#39;s Cave would be watching the shadows together--surely they&#39;d eventually give the shadows names, they would share a misunderstanding, and maybe there would be solace there. None of us can step outside our senses to check whether anything is truly sacred or profane. We will never be able to verify the sacred from the dark. This is what unites all of us. We are all groping for something in the dark, and we are all watching the shadows dance on the cave wall. Together. To have something we agree is sacred--to have a shared language and appreciation for something beyond the materials of our senses, there is a wisdom there.&lt;/p&gt;
&lt;h2 id=&quot;year-of-the-fire-horse&quot; tabindex=&quot;-1&quot;&gt;Year of the Fire Horse&lt;/h2&gt;
&lt;p&gt;I am not somebody that &amp;quot;believes&amp;quot; in Astrology, or Tarot, but I find the practice to still be incredibly interesting and helpful. Not in futures becoming known or in their fixed characteristics, but in the interpretation itself.&lt;/p&gt;
&lt;p&gt;Let me tell you a story from the stars. In 1966, Japan&#39;s birth rate dropped by about 25% during the Year of the Fire Horse (Hinoe-uma) because of an old superstition that women born that year had fiery tempers and would bring bad fortune or death to their husbands. According to sociologist Kikkawa Tōru in &lt;a href=&quot;https://www.nippon.com/en/japan-topics/g02550/&quot;&gt;Nippon.com&lt;/a&gt;, a malicious rumour spread in the early Edo period, through puppet theatre and popular books, that women born in a Fire Horse year were hot-tempered and would devour their husbands. It was tied to the story of Yaoya Oshichi, born in a Fire Horse year, who committed arson in hopes of seeing the man she loved. Births fell from 1.82 million in 1965 to 1.36 million in 1966, then rebounded to 1.94 million in 1967.&lt;/p&gt;
&lt;p&gt;It has been sixty years since then, and the astrology has once again aligned. This is the year of the Fire Horse. Thankfully, people have come to their senses and the superstition hasn&#39;t caused a steep drop in births this year like it did six decades ago. Japan Research Institute&#39;s Takumi Fujinami found January 2026 births up 0.5% year over year, with no Fire Horse effect. A &lt;a href=&quot;https://isvd.or.jp/en/columns/hinoeuma-2026-superstition-vs-structural-decline&quot;&gt;December 2025 survey&lt;/a&gt; found about 80% of mothers knew of the superstition, but 76% said they didn&#39;t care.&lt;/p&gt;
&lt;p&gt;What comes &lt;a href=&quot;https://www.si.edu/spotlight/lunar-year-goat&quot;&gt;next year&lt;/a&gt;? The year of &lt;a href=&quot;https://www.thatsmandarin.com/chinese-zodiac/goat/&quot;&gt;the Red Goat&lt;/a&gt;, &lt;a href=&quot;https://yapfengshui.my/blog/2027-chinese-zodiac/&quot;&gt;the Fire Sheep&lt;/a&gt;, or Ram. The Fire Sheep is gentle-natured, but willing to take a stand when provoked, and capable and decisive, but also somewhat careless and reckless. They&#39;re honest, upright and frank, tending to be natural storytellers. I like to imagine this as a good omen for 2027, of a being both tender and brave in the face of what is to come.&lt;/p&gt;
&lt;p&gt;I was born in April of 1996, I am a &lt;a href=&quot;https://www.travelchinaguide.com/intro/1996-chinese-zodiac-rat-year.htm&quot;&gt;Fire Rat&lt;/a&gt;. Fire Rats are bolder and more outgoing than other Rats, with big ambitions and a talent for persuading people. The downsides are impatience, impulsiveness, and a tendency to burn out and start more than they finish.&lt;/p&gt;
&lt;p&gt;Funnily enough, the Rat is the first animal of the Chinese Zodiac, and I am also the first animal in the Western Zodiac, &lt;a href=&quot;https://www.prokerala.com/astrology/aries-aspects-april-1996.html&quot;&gt;the Ram Aries&lt;/a&gt;. Not only that, but the Ram is a fire sign too, ruled by Mars and cardinal. By chance, both signs describe bold, quick-moving ambition. Both warn about impulsiveness and burning out.&lt;/p&gt;
&lt;p&gt;Beyond that, &lt;a href=&quot;https://www.masterseanchan.com/chinese-zodiac-horse-and-rat-compatibility/&quot;&gt;the Rat sits directly opposite the Horse&lt;/a&gt; in the Chinese Zodiac, so Rats &amp;quot;clash&amp;quot; with the Fire Horse year we&#39;re in now. The diametric opposition is thought to bring on a turbulent year for us rats, with advice to be careful about big changes and to look after your health.&lt;/p&gt;
&lt;p&gt;And yet, this has easily been the best year of my life.&lt;/p&gt;
&lt;p&gt;What the year gave me was the opportunity to look closely, to learn where the story came from, and--at this very moment--to sit down and write this. That is what ritual and tradition do. They give us a story and frame around spans of time, reminding us of what matters, and to pay attention.&lt;/p&gt;
&lt;p&gt;Which brings me back to my redesign, of transitioning to greyscale with old-style serif headers. It sounds silly, but it&#39;s a small ceremony for me. To say my space of writing deserves weight and gravity. It&#39;s arbitrary, and I choose it despite that. That&#39;s all tradition is. I named my new palette after a flower I can&#39;t describe without the illusions of my senses.&lt;/p&gt;
&lt;p&gt;Next year is the Fire Sheep, the Ram in some tellings, which is my sign here in the west. Tender and brave are good things to be try to be, regardless of who (or what) is asking it of you.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>I&#39;ve Never Wasted My Time Writing</title>
		<link href="http://plaintext.brennan.day/i-ve-never-wasted-my-time-writing/"/>
		<updated>2026-09-29T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/i-ve-never-wasted-my-time-writing/</id>
		<content type="html">&lt;p&gt;This blog is an expression of the things I love--I love &lt;a href=&quot;https://brennan.day/collections/community/&quot;&gt;community&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/collections/religion/&quot;&gt;religion&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/collections/science/&quot;&gt;science&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/collections/technical-tutorials/&quot;&gt;good web technologies&lt;/a&gt;, and &lt;a href=&quot;https://brennan.day/collections/history/&quot;&gt;history&lt;/a&gt;, just to name a few topics off the top of my head. Of course, I also love &lt;a href=&quot;https://brennan.day/collections/writing-craft/&quot;&gt;writing&lt;/a&gt;. Focusing on what I love and what brings me joy is how I&#39;ve been able to sustain my publishing cadence over the past year without it ever becoming a slog, or burning me out.&lt;/p&gt;
&lt;p&gt;I&#39;m &lt;a href=&quot;http://plaintext.brennan.day/the-blogging-uebermensch-or-being-the-luckiest-person-on-earth/&quot;&gt;incredibly lucky&lt;/a&gt; and privileged to be able to truly do what I love, but I&#39;ve also cultivated the wisdom to stay firm on my &lt;a href=&quot;https://brennan.day/values&quot;&gt;values&lt;/a&gt; and not deviate toward something more conventional or accept others&#39; advice when it goes against those values.&lt;/p&gt;
&lt;p&gt;For example, there are times when, if I write &amp;quot;too much&amp;quot; on a particular topic, people will tell me I&#39;m wasting my time and effort. That&#39;s quite an absurd premise to me! I could never consider the act of writing wasteful, nor sharing my thoughts on something I think is worth writing about. If I ever thought &amp;quot;eh, this isn&#39;t worth my time,&amp;quot; then I would have far less writing and far fewer thoughts.&lt;/p&gt;
&lt;p&gt;I always try to meet the world with good-faith curiosity. And sure, that bites me in the ass sometimes. Curiosity killed a cat, &lt;a href=&quot;https://newspaperarchive.com/waxahachie-daily-light-apr-14-1909-p-3/&quot;&gt;satisfaction frought it back,&lt;/a&gt;. I&#39;ve never confronted a topic or person I&#39;ve tried to avoid or shy away from.&lt;/p&gt;
&lt;h2 id=&quot;i-%E2%99%A5-internet-weirdos&quot; tabindex=&quot;-1&quot;&gt;I ♥ Internet Weirdos&lt;/h2&gt;
&lt;p&gt;Anyways, something else I really love is people; I love talking to people of all shapes, flavours, and backgrounds. There&#39;s a lot of human interest in my writing.&lt;/p&gt;
&lt;p&gt;Something wonderful about the Internet is that there are so many weird people on it. And I&#39;m using &amp;quot;weird&amp;quot; as an umbrella term for an incredibly wide range of folks: those who have incredible niche interests, those who are unconventional, and those with puzzling, baffling pathologies (usually those who act in continued bad faith).&lt;/p&gt;
&lt;p&gt;A lot of the time, society is incredibly unfair and cruel to weirdos--those who have harmless (and fascinating) hyperfixations are ridiculed and mocked. &lt;a href=&quot;http://plaintext.brennan.day/fandom-is-awesome-furries-are-awesome-bronies-are-awesome-cringe-is-awesome-fuck-you/&quot;&gt;Cringe culture&lt;/a&gt;. And there is a good argument to be made that this is the fault of irony and malignant detachment. &amp;quot;Typical&amp;quot; people ridicule those who are unashamed and vulnerable in their passion and love for something that &amp;quot;doesn&#39;t merit&amp;quot; that kind of affection or affiliation.&lt;/p&gt;
&lt;p&gt;I love weirdos because I myself am a total weirdo. I&#39;d never try to pretend otherwise. I&#39;m silly--it&#39;s no surprise that &lt;a href=&quot;http://plaintext.brennan.day/great-news-brennan-day-is-being-acquired/&quot;&gt;April Fools&#39; Day is my favourite holiday&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some weirdos, though, are not simply misunderstood good people in the margins. (And it&#39;s totally unfair that such disparate groups of people get grouped together.) There are really shitty people out there who fit the bill. The reply-guys and the rage-baiters--those who are completely aware of the malice and harm they&#39;re propagating. Those who spend their finite time alive intentionally trying to fuck with or hurt people.&lt;/p&gt;
&lt;p&gt;The most common advice you&#39;ll see is &amp;quot;don&#39;t feed the trolls&amp;quot;--the idea that any sort of interaction is the attention they&#39;re desperately in search of, oxygen for the flames. If you ignore this type of weirdo, they&#39;ll either stop acting like this or stop bothering you and go harm somebody else instead.&lt;/p&gt;
&lt;p&gt;This has never been advice I&#39;ve taken, personally.&lt;/p&gt;
&lt;p&gt;&amp;quot;&lt;a href=&quot;https://mashable.com/article/should-i-respond-to-trolls&quot;&gt;Don&#39;t feed the trolls&lt;/a&gt;&amp;quot; has been challenged by researchers who often find ignoring trolls doesn&#39;t stop the behaviour. Trolling often reflects deep-seated prejudices that need confrontation, rather than avoidance. &lt;a href=&quot;https://engagingnewsproject.org/wp-content/uploads/2014/04/ENP_Comments_Brief.pdf&quot;&gt;The Engaging News Project&lt;/a&gt; found that when a recognized reporter waded into comment sections, incivility decreased by 17 percent and people were 15 percent more likely to use evidence in their comments. As one &lt;a href=&quot;https://www.abc.net.au/news/2018-06-14/how-to-deal-with-trolls/9831332&quot;&gt;ABC opinion piece&lt;/a&gt; put it, &lt;em&gt;&amp;quot;It&#39;s almost impossible to truly ignore a troll. It&#39;s like saying mosquitos are just annoying and won&#39;t hurt you and you should just ignore them.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Kyle Van Oosterum argues for &amp;quot;&lt;a href=&quot;https://doi.org/10.1111/japp.12791&quot;&gt;reparative civility&lt;/a&gt;,&amp;quot; a Confucian-inspired disposition of turning inward to cultivate open-mindedness, tactfulness, and courage rather than withdrawing from those we find difficult. Even if empathic engagement doesn&#39;t change a die-hard troll, I can demonstrate to bystanders the practice of grace. Bradley Warfield&#39;s work on &lt;a href=&quot;https://doi.org/10.5840/techne202383183&quot;&gt;dialogic communication ethics&lt;/a&gt; reminds us that much online discourse is &amp;quot;ethically impoverished&amp;quot; in its other-directedness--which is why choosing to engage dialogically matters.&lt;/p&gt;
&lt;p&gt;From &lt;a href=&quot;https://centaur.reading.ac.uk/124803/1/Innovations%20and%20Challenges%20in%20Digital%20Literacies_25_10_27_14_56_56.pdf&quot;&gt;&lt;em&gt;Innovations and challenges in digital literacies: literacies of repair&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In her study of the vernacular &#39;troll whispering&#39; strategies of young people, Patricia Lange (2018) reports a range of techniques, from practices of &#39;deep listening&#39; designed to find out what motivates trolls to collective counter-responses by affinity space participants... Among the most interesting findings in Lange&#39;s study was the intense awareness among her interviewees of their own potential for troll-like behaviour, the sense of &#39;an inner troll that may come out in all of us.&#39;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In 2016, political scientists David Broockman and Joshua Kalla sent canvassers door to door in Miami-Dade County for ten-minute conversations with voters about transgender rights. They didn&#39;t debate, but instead invited people to remember a time they&#39;d been judged personally for being different, &amp;quot;encouraging active perspective-taking.&amp;quot; The result? &lt;a href=&quot;https://doi.org/10.1126/science.aad9713&quot;&gt;The study&lt;/a&gt; found that &amp;quot;conversations substantially reduced transphobia, with decreases greater than Americans&#39; average decrease in homophobia from 1998 to 2012. These effects persisted for 3 months.&amp;quot;&lt;/p&gt;
&lt;p&gt;There are other famous examples of successfully extending the olive branch. Daryl Davis, a Black blues musician, befriended members of the Ku Klux Klan. &lt;a href=&quot;https://www.npr.org/2017/08/20/544861933/how-one-man-convinced-200-ku-klux-klan-members-to-give-up-their-robes&quot;&gt;About 200 of them&lt;/a&gt; have quit the Klan after getting to know him.&lt;/p&gt;
&lt;p&gt;Or Megan Phelps-Roper, who grew up on Westboro Baptist Church picket lines, spewing homophobia and other bigotry. Then, on Twitter, strangers just kept talking back to her--civilly and with curiosity. In 2012, she left the church for good, and &lt;a href=&quot;https://www.ted.com/talks/megan_phelps_roper_i_grew_up_in_the_westboro_baptist_church_here_s_why_i_left&quot;&gt;she credits those arguments&lt;/a&gt; as the reason why.&lt;/p&gt;
&lt;p&gt;The fear that engagement entrenches people--the so-called &amp;quot;backfire effect&amp;quot;--turns out to be much rarer than the study that made it famous suggested. When political scientists Thomas Wood and Ethan Porter tried to reproduce the finding across &lt;a href=&quot;https://doi.org/10.1007/s11109-018-9443-y&quot;&gt;52 issues and over 10,000 subjects&lt;/a&gt;, they found almost no cases of corrections making things worse.&lt;/p&gt;
&lt;p&gt;&amp;quot;Nobody changed&amp;quot; is not identical to &amp;quot;nothing happened.&amp;quot; Psychologists Sara Algoe and Jonathan Haidt coined the term &lt;a href=&quot;https://doi.org/10.1080/17439760802650519&quot;&gt;&lt;em&gt;elevation&lt;/em&gt;&lt;/a&gt;, which is the feeling people get from watching someone respond to cruelty with patience. A warm, motivating jolt that makes onlookers want to be more decent themselves.&lt;/p&gt;
&lt;p&gt;I freely admit I play the game as intended, and I get down in the mud and dirt. I&#39;m not an intelligent, detached commentator pontificating from the sidelines, somehow above it all. I&#39;m not somebody who pretends I&#39;m above anybody else--I&#39;m not going to outsmart anybody who talks to me in bad faith, or claim I have the rhetorical magic to change their mind. Most conversations end where they started.&lt;/p&gt;
&lt;p&gt;As I&#39;ve mentioned in my &lt;a href=&quot;http://plaintext.brennan.day/in-defence-of-vent-posting/&quot;&gt;defence of venting posts&lt;/a&gt;, so many of us have maladaptive coping mechanisms because that&#39;s all we knew how to do in order to survive. Don&#39;t get me wrong here--this isn&#39;t an excuse for shitty, bad-faith behaviour. And I&#39;m also sure that, in many cases, these weirdos live comfortable, privileged lives that aren&#39;t even on the margins.&lt;/p&gt;
&lt;p&gt;But you&#39;re still dealing with a human being here. Difficult, unlikable, cruel people are still people. You personally have every right to set boundaries and avoid and ignore people like that, but that isn&#39;t what I choose to do. I love people, and I try to meet them where they are, no matter how low that is.&lt;/p&gt;
&lt;p&gt;I don&#39;t think giving people a chance is a fault of mine. I don&#39;t think I&#39;ve wasted my time corresponding with people, or writing about that correspondence. I don&#39;t think I&#39;ve wasted my time or effort trying to sincerely connect with another person. And I will continue to do that, over and over again. Because I&#39;m a weirdo myself, clearly. Because I love reckoning with difficult, impossible things. For me, the choice to engage--over and over, with weirdos and trolls and difficult people--is a deliberate ethical practice, rooted in love and curiosity, one I&#39;ve never once regretted.&lt;/p&gt;
&lt;p&gt;My attitude of curiosity and openness is how I&#39;ve been able to continue finding so many things to write about. And, frankly, tomorrow is always a blank page for me. If I write 2,000 words on a topic, then I&#39;ve spent only a day or so on it, and I have thousands of days. And if I dedicate five posts to a single topic? Well, that&#39;s about a week&#39;s worth of work for me, and &lt;a href=&quot;https://weeks.brennan.day/&quot;&gt;every week is only a single square in this &lt;strong&gt;visualization of my life&lt;/strong&gt;&lt;/a&gt;. I move on, and I find something else to write about, and today&#39;s post will most likely be forgotten in the archives and will certainly be eroded by the tides of deep time.&lt;/p&gt;
&lt;p&gt;Time will always pass us by; the Earth will never stop rotating. &lt;a href=&quot;http://plaintext.brennan.day/you-must-you-must-you-must/&quot;&gt;Remember, we must die&lt;/a&gt;. Since I started this blog, I&#39;ve felt that I&#39;ve been spending my time wisely. I am doing the good writing and work I&#39;ve always wanted to do.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Kindness as First-class Citizen in Programming</title>
		<link href="http://plaintext.brennan.day/kindness-as-first-class-citizen-in-programming/"/>
		<updated>2026-09-28T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/kindness-as-first-class-citizen-in-programming/</id>
		<content type="html">&lt;p&gt;What do you think the world has too much of, right now? There are probably a lot of answers that come to mind. Too many bills, too much being asked of us, too many stupid and dangerous people in politics, too many plates we need to constantly keep spinning. We are overwhelmed by how overwhelmed we are, and we are exhausted by our exhaustion. We are sick and tired of being sick and tired.&lt;/p&gt;
&lt;p&gt;A few days ago, I shared the thought that &lt;a href=&quot;https://social.lol/@brennan/117288126980773784&quot;&gt;You need to build what you think the world needs more of. Everyone is waiting for somebody else to.&lt;/a&gt;. In other words, what does the world need more of? As a &lt;a href=&quot;https://social.lol/@kyonshi@dice.camp/117326449355669954&quot;&gt;random stranger&lt;/a&gt; noted in my replies, &amp;quot;everyone think the world needs more of something, but we all can&#39;t agree of what, so we are building in out own little corner.&amp;quot; I can understand where they&#39;re coming from. People seem to be eager to demand precision in specifics, to the point where their circle shrinks detrimentally.&lt;/p&gt;
&lt;p&gt;I would like to think that we can agree, universally, that the world needs more kindness. And I don&#39;t mean the hollow motivational poster platitude of kindness. I mean figuring out ways to ensure kindness is intentional, and integrated into our day-to-day lives of work.&lt;/p&gt;
&lt;h2 id=&quot;anti-empathy&quot; tabindex=&quot;-1&quot;&gt;Anti-Empathy&lt;/h2&gt;
&lt;p&gt;Kindness has somehow become a target of culture war. Elon Musk told Joe Rogan that &lt;a href=&quot;https://www.yahoo.com/news/fact-check-musk-said-fundamental-130000768.html&quot;&gt;&amp;quot;the fundamental weakness of Western civilization is empathy,&amp;quot;&lt;/a&gt; using a phrase he&#39;d been posting for months already: &amp;quot;suicidal empathy,&amp;quot; coined by Canadian marketing professor &lt;a href=&quot;https://en.wikipedia.org/wiki/Gad_Saad&quot;&gt;Gad Saad&lt;/a&gt;. Saad published &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Suicidal_empathy&quot;&gt;Suicidal Empathy: Dying to Be Kind&lt;/a&gt;&lt;/em&gt;, which debuted at #1 on the New York Times bestseller list. Then there&#39;s also Joe Rigney&#39;s &lt;em&gt;&lt;a href=&quot;https://canonpress.com/products/the-sin-of-empathy&quot;&gt;The Sin of Empathy&lt;/a&gt;&lt;/em&gt; and Allie Beth Stuckey&#39;s &lt;em&gt;&lt;a href=&quot;https://www.pbs.org/newshour/politics/is-empathy-a-sin-some-conservative-christians-argue-it-can-be&quot;&gt;Toxic Empathy&lt;/a&gt;&lt;/em&gt;. Somehow it&#39;s been manufactured that the problem with the world isn&#39;t a deficit of kindness, but a surplus of it.&lt;/p&gt;
&lt;p&gt;The term &amp;quot;suicidal empathy&amp;quot; &lt;a href=&quot;https://globalextremism.org/post/gad-saad/&quot;&gt;doesn&#39;t appear anywhere in peer-reviewed psychology&lt;/a&gt;, and Saad has never run any studies on the concept. Anti-empathy &lt;a href=&quot;https://unherd.com/2026/05/suicidal-empathy-is-fake-science/&quot;&gt;rests on vibes, not data, as there&#39;s no study behind it, evolutionary or otherwise&lt;/a&gt;. The modern disparagement of empathy is a deliberate way to make it easier to write off the (many) people who desperately need it. Stanford&#39;s &lt;a href=&quot;https://www.hachette.co.uk/titles/jamil-zaki/the-war-for-kindness/9781405543798/&quot;&gt;Jamil Zaki&lt;/a&gt; spent over a decade studying empathy and recognizes its obvious importance. Kindness is &amp;quot;not a sign of weakness but a source of strength,&amp;quot; and something you build intentionally, rather than a fixed trait.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npr.org/2025/03/22/nx-s1-5321299/how-empathy-came-to-be-seen-as-a-weakness-in-conservative-circles&quot;&gt;Conservative commentators and some of the wealthiest people alive&lt;/a&gt; are against empathy. It&#39;s being used to justify &lt;a href=&quot;https://time.com/article/2026/05/19/suicidal-empathy-elon-musk-gad-saad-/&quot;&gt;immigration crackdowns, foreign aid cuts, and DEI rollbacks framed as necessary correctives to a society that supposedly cares too much&lt;/a&gt;. Once compassion is the disease, cruelty is the cure.&lt;/p&gt;
&lt;h2 id=&quot;kindness-in-technology&quot; tabindex=&quot;-1&quot;&gt;Kindness in Technology&lt;/h2&gt;
&lt;p&gt;On the IndieWeb wiki, you&#39;ll read up &lt;a href=&quot;https://indieweb.org/principles&quot;&gt;on principles&lt;/a&gt; like &amp;quot;own your data,&amp;quot; and &amp;quot;use what you make,&amp;quot; but these are all superseded by the informal eleventh principle. &amp;quot;Above all, have fun.&amp;quot; You can interpret this as joy being an explicit design constraint.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://small-tech.org/about/&quot;&gt;Aral Balkan and Laura Kalbag&#39;s&lt;/a&gt; &lt;a href=&quot;https://small-tech.org/videos/ethical-design-manifesto&quot;&gt;manifesto&lt;/a&gt; frames good technology as requiring a focus on human rights, human effort, and human experience. Technology should be easy to use, personal, private-by-default, and inclusive. You can read it as a kindness checklist for software, and it&#39;s explicitly stated as being antithetical to the philosophy guiding the management decisions of technology corporations.&lt;/p&gt;
&lt;p&gt;&amp;quot;Be Kind.&amp;quot; is what starts the code of conduct for the &lt;a href=&quot;https://elm-lang.org/community&quot;&gt;Elm&lt;/a&gt; programming language. Before anything else, be kind. Ask questions, and try to recognize XY problems. (i.e., don&#39;t let someone struggle with a workaround if a fix is upstream).&lt;/p&gt;
&lt;p&gt;In New York City, the self-directed programmer retreat &lt;a href=&quot;https://www.recurse.com/social-rules&quot;&gt;Recurse Center&lt;/a&gt; runs on four rules: no feigned surprise, no &amp;quot;well-actuallys,&amp;quot; no backseat driving, and no subtle -isms. These are rules designed to protect people&#39;s ability to say &amp;quot;I don&#39;t know&amp;quot; without being punished. The rules are aimed at targeting common, &lt;em&gt;unwitting&lt;/em&gt; bad behaviour. Not malice. The intent is for people to course-correct, rather than be scolded or shamed.&lt;/p&gt;
&lt;p&gt;The most popular Linux distribution in the world is named after a Nguni Bantu concept, &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, usually translated as &lt;a href=&quot;https://www.lionsroar.com/ubuntu-i-am-because-we-are/&quot;&gt;&amp;quot;I am because we are&amp;quot;&lt;/a&gt; or &amp;quot;a person is a person through other persons.&amp;quot; Your personhood is relational, and your humanity is forged through your connections to others. There is the related Zulu greeting sawubona, which can be understood as &amp;quot;I see you&amp;quot; and responded to with &amp;quot;I am seen.&amp;quot; I have seen, time and time again, how deeply people simply want to be seen.&lt;/p&gt;
&lt;p&gt;And if you want to be more concise about it, there&#39;s also &lt;a href=&quot;https://knowyourmeme.com/memes/wheatons-law&quot;&gt;Wheaton&#39;s Law&lt;/a&gt;, where actor Wil Wheaton coined &amp;quot;don&#39;t be a dick&amp;quot; at a 2007 PAX keynote regarding sportsmanship in gaming, which spread into Internet shorthand.&lt;/p&gt;
&lt;p&gt;On the flip side, J. Halberstam&#39;s 2011 book &lt;em&gt;The Queer Art of Failure&lt;/em&gt; popularized the idea of toxic positivity, and what I&#39;m advocating for here certainly is not that. Kindness means you do the right thing; it means you say the uncomfortable truth out loud and deal with things directly in order to maintain the long-term, sustainable joy of people in the community. In her 1981 keynote &amp;quot;The Uses of Anger,&amp;quot; &lt;a href=&quot;https://blackpast.org/african-american-history/1981-audre-lorde-uses-anger-women-responding-racism/embed&quot;&gt;Audre Lorde&lt;/a&gt; argued anger at injustice isn&#39;t cruel, but rather a form of care. She &lt;a href=&quot;https://asterixjournal.com/uses-of-anger/&quot;&gt;drew a line between hatred, which aims at destruction, and anger, which aims at change&lt;/a&gt;. Kindness must hold righteous anger. Otherwise it&#39;s just avoidance.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Coraline_Ada_Ehmke&quot;&gt;Coraline Ada Ehmke&lt;/a&gt;, a fellow Rubyist and Ruby Hero award winner, spent two and a half decades making the industry kinder. She wrote the &lt;a href=&quot;https://en.wikipedia.org/wiki/Contributor_Covenant&quot;&gt;Contributor Covenant&lt;/a&gt; in 2014, now &lt;a href=&quot;https://eyeondesign.aiga.org/are-codes-of-conduct-changing-the-diversity-stats-in-open-source/&quot;&gt;used by tens of thousands of open source projects&lt;/a&gt;, including the Linux kernel, and it exists because just telling people to &amp;quot;be nice&amp;quot; with no mechanism for enforcement doesn&#39;t protect the people being harmed. Real kindness, done right, includes boundaries, consequences, and the necessary no, not only the parts which feel good to say.&lt;/p&gt;
&lt;h2 id=&quot;minaswan!&quot; tabindex=&quot;-1&quot;&gt;MINASWAN!&lt;/h2&gt;
&lt;p&gt;Perhaps the most well-known example of kindness as a first-class citizen in programming is MINASWAN from the programming language Ruby: &amp;quot;Matz is nice, and so we are nice!&amp;quot; Yukihiro &amp;quot;Matz&amp;quot; Matsumoto is the Japanese computer scientist who created Ruby in the mid-1990s.&lt;/p&gt;
&lt;p&gt;Matz designed the Ruby programming language by asking what a programmer would &lt;em&gt;feel&lt;/em&gt;, rather than what was strictly optimal for the machine. He views programming as a medium for &lt;a href=&quot;https://www.artima.com/articles/the-philosophy-of-ruby&quot;&gt;human expression and joy&lt;/a&gt;. In Ruby&#39;s early days, when online message boards saw typical technical hostility, Matz&#39;s personal kindness and &lt;a href=&quot;https://medium.com/@lainakarosic/7-facts-about-ruby-and-its-creator-yukihiro-matz-matsumoto-bd8fba7b753d&quot;&gt;positive attitude set a welcoming standard&lt;/a&gt;, which early adopters actively protected and propagated. &lt;a href=&quot;https://blakecrosley.com/blog/engineering-philosophy-yukihiro-matsumoto#:~:text=intent%2E-,MINASWAN&quot;&gt;The culture he created was a design output.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sadly, a lot of people do not associate Ruby with kindness anymore. This has almost solely been the fault of Ruby on Rails creator DHH, who I have been &lt;a href=&quot;https://stopomarchy.org/&quot;&gt;vocally against&lt;/a&gt; for a while now. When people hear Ruby, they often hear &amp;quot;Rails,&amp;quot; but Ruby has always been so much more than that. Ruby existed ten years before Rails, and will exist many, many years after Rails as well.&lt;/p&gt;
&lt;p&gt;Being an early adopter of &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt;, I actually began learning programming with Ruby myself, and I think it is a beautiful, elegant language. My friend Melo is also a Rubyist and wrote an &lt;a href=&quot;https://bubblegum.girlonthemoon.xyz/articles/things-to-be-excited-about-in-the-ruby-world&quot;&gt;excellent blog post&lt;/a&gt; going over interesting and current projects in Ruby. As she writes, there is a lot to be excited about in the Ruby world, totally unrelated to Rails! I really recommend you give it a read.&lt;/p&gt;
&lt;p&gt;The lovely folks at &lt;a href=&quot;https://mosscap.dev/&quot;&gt;Mosscap&lt;/a&gt; have taken on the ambitious endeavour to make a hard fork of Rails, and that will take time and technical work. But what we can do &lt;strong&gt;now&lt;/strong&gt; is reclaim the philosophy of Ruby. There is nothing stopping us from choosing kindness and actively propagating the warmth and niceness of Matz that was foundational to the Ruby programming language in the first place.&lt;/p&gt;
&lt;p&gt;When I create free and open-source projects myself, I always try to make them as accessible as possible. And I always try to make the process of using them a joyful experience. As such, I&#39;ve decided to do a restoration project of a major learning resource for anybody who wants to learn Ruby themselves.&lt;/p&gt;
&lt;h2 id=&quot;announcing-learnwebdev.fyi&quot; tabindex=&quot;-1&quot;&gt;Announcing &lt;a href=&quot;https://learnwebdev.fyi/&quot;&gt;&lt;strong&gt;LearnWebDev.fyi&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://learnwebdev.fyi/&quot;&gt;&lt;strong&gt;LearnWebDev.fyi&lt;/strong&gt;&lt;/a&gt; is a reconstruction of the curriculum from &lt;a href=&quot;https://github.com/learn-co&quot;&gt;Learn.co&lt;/a&gt;, a free, open-source online coding bootcamp run by &lt;a href=&quot;https://flatironschool.com/&quot;&gt;Flatiron School&lt;/a&gt;. There are lessons on Git, HTML and CSS, Ruby, SQL, Sinatra, Rails, JavaScript, React/Redux, and more. This, too, was where I learned Ruby.&lt;/p&gt;
&lt;p&gt;In 2021, Flatiron sadly retired the platform and moved the curriculum into its paid programs. Learn.co shut down on June 30, 2021, and the database that recorded how the lessons were organized together was also deleted. The lesson repositories stayed online in the (incredibly unorganized) learn-co-curriculum GitHub organisation, which contains a staggering 12,000 code repositories, which is what made my restoration possible.&lt;/p&gt;
&lt;p&gt;I took the time to make some Python scrapers with RegEx to populate the site, which has 1,672 lessons available for self-study in your browser, in the original order, for free.&lt;/p&gt;
&lt;p&gt;The lessons are rather dated, ranging from the years 2015 to 2020, but the fundamentals of programming and Ruby are the same. On the plus side, there&#39;s also no generative AI anywhere in this curriculum, as it did not exist yet. Every explanation was written by a human instructor, every lab was tested on real students, and the difficulty curve assumes you&#39;re doing the thinking yourself.&lt;/p&gt;
&lt;p&gt;I didn&#39;t create any of the hundreds of lessons on the site. The curriculum was written by Flatiron School&#39;s faculty and team, with contributions from thousands of students, and was published under Flatiron&#39;s open content license. I just decided that it should be accessible to people again.&lt;/p&gt;
&lt;p&gt;Avi Flombaum of Flatiron School wrote &lt;a href=&quot;https://medium.com/learn-love-code/why-teach-ruby-bac8416c77ba&quot;&gt;an excellent article&lt;/a&gt; on why the school chose to teach Ruby specifically, writing:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The most important thing for a student to first learn, regardless of language, is to fall deeply and profoundly in love with code.&lt;br /&gt;
Programming languages are invented for hundreds of reasons, almost all of which have to do with the environment of the code -- to compile easily across platforms, to optimize parallel processing, to &amp;quot;run faster,&amp;quot; and the such. As far as I know, the only programming language in history invented for your happiness is Ruby. The Ruby language values you, the programmer, over the machine.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And concludes with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Ruby language encourages and empowers innovation. If a hammer is meant to be swung and a screwdriver meant to be turned, Ruby is meant to create. The Ruby tool wants you to be happy and when we are happy we can play and explore. The Ruby tool wants you to value expression and allows you to communicate as purely as a human-language. The Ruby tool wants you to be different and make the language your own. The Ruby programmer inherits these values and they fuel the creative human spirit.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>man.</title>
		<link href="http://plaintext.brennan.day/man/"/>
		<updated>2026-09-26T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/man/</id>
		<content type="html">&lt;p&gt;man &lt;a href=&quot;https://unstory.eu/&quot;&gt;starts blog&lt;/a&gt;. man&#39;s blog different. man writes real truth on blog. man understand all tricks brain plays, all illusions. man shrug nonchalantly at stupid things like stress and emotions &lt;a href=&quot;http://plaintext.brennan.day/i-m-looking-for-love/&quot;&gt;and love&lt;/a&gt;. man writes Brennan tried and failed to be &lt;a href=&quot;https://unstory.eu/mmu/&quot;&gt;healer and saviour&lt;/a&gt;. man right.&lt;/p&gt;
&lt;p&gt;man writes about swede &lt;a href=&quot;https://unstory.eu/esz/&quot;&gt;robert birming&lt;/a&gt;, his stupid positivity. how does robert not know all positivity is false? man helpfully informs the world of this. man doing service on his blog. man create interesting and subversive &lt;a href=&quot;https://unstory.eu/ikn/&quot;&gt;black-and-white photography&lt;/a&gt;. very different from what you&#39;d find on 2013 hipster tumblr, man promise.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://unattributed.cc/2026/09/16/re-who-is-unstory/&quot;&gt;man plays character&lt;/a&gt;. man plays &lt;a href=&quot;https://unstory.eu/ids/&quot;&gt;free clown&lt;/a&gt; and declare number of readers, 500 in case foolish reader was wondering, but man write about this in different, enlightened way. callous cool way. man makes note to write how different this is to other foolish bloggers who keep track of numbers in uncool ego way. man does not care about uptoots on Bubbles.town but also does not request man&#39;s blog to be removed.&lt;/p&gt;
&lt;p&gt;man not misanthropic, just calls fools &lt;a href=&quot;https://unstory.eu/bfh/&quot;&gt;subhuman&lt;/a&gt; and &lt;a href=&quot;https://unstory.eu/poh/&quot;&gt;fleas&lt;/a&gt;. man knows religious people all foolishly worship &lt;a href=&quot;https://unstory.eu/kns/&quot;&gt;cosmic daddy&lt;/a&gt;, lacking wisdom man has to know truth: man knows science is correct. all chemicals and nothing beyond this. safely detached.&lt;/p&gt;
&lt;p&gt;man enjoy &lt;a href=&quot;https://unstory.eu/kts/&quot;&gt;simple protocol&lt;/a&gt; but think people who love simple protocols &lt;a href=&quot;https://unstory.eu/ihp/&quot;&gt;wrong way&lt;/a&gt; stupid. man understand web much better than fools. man has &lt;a href=&quot;https://unstory.eu/cmz/&quot;&gt;short urls&lt;/a&gt; and knows this is superior. man knows inline links are evil propaganda.&lt;/p&gt;
&lt;p&gt;man does not concern himself with stupid timewasters like corporations. man smartly spends time going over what &lt;a href=&quot;https://unstory.eu/akb/&quot;&gt;other men think of corporations&lt;/a&gt; instead. man care a lot about thoughts of &lt;a href=&quot;https://unstory.eu/bum/&quot;&gt;markdown man&lt;/a&gt; and &lt;a href=&quot;https://unstory.eu/tmc/&quot;&gt;microblog man&lt;/a&gt; in particular. man understand other men, you see. man never writes about women.&lt;/p&gt;
&lt;p&gt;man knows all morality is myth. man sees online warriors try to care about stupid things &lt;a href=&quot;https://unstory.eu/swy/&quot;&gt;like fascism&lt;/a&gt; yet participate in society. man scoffs at online warriors for attempts to make things better. man is doing something different, and worth time and effort. man know if warrior has iphone, then &lt;a href=&quot;https://unstory.eu/ibi/&quot;&gt;why care about nazis?&lt;/a&gt;. &lt;a href=&quot;https://unstory.eu/ors/&quot;&gt;man also political victim :( &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;man is mysterious in a cool way. anonymous. cannot be pinned down like foolish &lt;a href=&quot;https://unstory.eu/tri/&quot;&gt;obedient leashed humans&lt;/a&gt; who use labels.&lt;/p&gt;
&lt;p&gt;so, what man do when not on blog dedicating time and life to sharing thoughts? man normal guy blowing off steam? man in any silly group chat? or man&#39;s day-to-day life more like a &amp;quot;vacancy&amp;quot; hotel sign lit neon? man enjoy warm sunlight and autumn air? man have inside jokes with coworkers? man laugh? man have siblings? man applies scented aftershave each morning? what song man hum to himself? man ever recognized by old schoolmate? man do midnight countdown for new year? man ever avoid walking underneath ladder or opening umbrella inside? man scroll kitten .GIFs when taking shit? man ever get unexpected compliment from stranger on street? what man think about before falling asleep? man ever question? doubt? who wishes man birthday? man&#39;s mother make sure he eats well? man says to mom i love you?&lt;/p&gt;
&lt;p&gt;hm.&lt;/p&gt;
&lt;p&gt;man wonder why nobody reply to man&#39;s email. man wonders why everyone deletes man&#39;s comments. must be because foolish bloggers only pretend to want connection.&lt;/p&gt;
&lt;p&gt;man take time out of his day to write careful, personal email to fellow blogger (and Brennan&#39;s friend) &lt;a href=&quot;https://candyether.space/&quot;&gt;Candy&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I saw few your own &amp;quot;complains&amp;quot; about your writing or shit around.&lt;br /&gt;
Your website is pure trash, like your expression. And it&#39;s good that way. You want probably to fit in and disappear in the herd. This your trash is at least different than most junk online.&lt;br /&gt;
You probably think, that if you become &amp;quot;better&amp;quot; at writing or whatever, you get more visibility. Like it matters. If you have one visitor - reader or thousands, what will change? Nothing. You will not get money for that shit, no matter how many &amp;quot;followers&amp;quot; you get. Popularity is fake and if money are not included it&#39;s pointless and energy sucking.&lt;br /&gt;
Nothing will change in your life if you have thousands of readers, people who will repost, like and praise your writing. It would be just artificially made situation when your body will produce dopamine and other chemicals so you feel &amp;quot;important&amp;quot;.&lt;br /&gt;
Now your horrible website is at least &amp;quot;remarkable&amp;quot; shitty ;/ and also very hard to read or navigate. If you improve it or delete, nothing will change.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;man have no idea why Candy not reply back. man gives wise advice for free. man puzzled.&lt;/p&gt;
&lt;p&gt;man starts blog. man&#39;s blog different. totally different from other blogs man talks about. man knows length is not depth, that is why man has 13,000 words on his blog now. man spends time well before total oblivion. man will have sharp, smart rebuttal to this post and win. man feels good. man continues.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>A Love Letter to the Super Dimension Fortress</title>
		<link href="http://plaintext.brennan.day/a-love-letter-to-the-super-dimension-fortress/"/>
		<updated>2026-09-25T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-love-letter-to-the-super-dimension-fortress/</id>
		<content type="html">&lt;p&gt;The more I learn about the web, the more appreciative I become of what came before. We truly are standing on the shoulders of giants. In the past week, I&#39;ve had the pleasure of (finally) becoming an ARPA member on &lt;a href=&quot;https://freeshell.org/&quot;&gt;SDF&lt;/a&gt;, a non-profit public-access UNIX system and online community that has been in continuous operation since 1987.&lt;/p&gt;
&lt;p&gt;But what is SDF? Well, to answer that, we need to go back four decades and talk about the BBS era.&lt;/p&gt;
&lt;h2 id=&quot;bulletin-board-systems&quot; tabindex=&quot;-1&quot;&gt;Bulletin Board Systems&lt;/h2&gt;
&lt;p&gt;It&#39;s June 16, 1987. Ted Uhlemann (&amp;quot;iczer&amp;quot;) plugs an Apple IIe&#39;s 300-baud[^1] modem into a phone line his mother had just given him for his birthday, running &lt;em&gt;Magic City Micro-BBS&lt;/em&gt; (written in Applesoft BASIC). He names it SDF-1 after his favorite anime, hoping to attract fans of &amp;quot;anime, industrial music and the &lt;a href=&quot;https://en.wikipedia.org/wiki/Church_of_the_SubGenius&quot;&gt;Church of the SubGenius&lt;/a&gt;,&amp;quot; per a &lt;a href=&quot;http://snh.freeshell.org/sdf30/&quot;&gt;30th-anniversary retrospective by Stephen Jones&lt;/a&gt;. The original hardware is one 1200bps modem and two floppy drives holding 280 kilobytes each.&lt;/p&gt;
&lt;p&gt;[^1]: Terminal baud rate is the speed at which a hardware terminal or serial console communicates, measured in the number of signal changes (symbols) transmitted per second. At 300 baud, a terminal displays 30 characters per second. This is roughly the speed of a fast typist. Instead of text appearing instantly, you can physically watch the letters appear on the screen one by one, line by line.&lt;/p&gt;
&lt;p&gt;This was the very beginning of SDF.&lt;/p&gt;
&lt;p&gt;SDF is self-described as &amp;quot;a community platform for inspiring, facilitating and implementing new ideas&amp;quot;. It&#39;s a multi-user NetBSD machine, funded solely by its members as a 501(c)(7) nonprofit, where tens of thousands of people hold accounts. The name comes from the anime &lt;em&gt;Super Dimension Fortress Macross&lt;/em&gt; (known in the West as part of &lt;em&gt;Robotech&lt;/em&gt;), and the system began as a BBS for Japanese anime fans. The BBS-era of SDF was can be witnessed in the &lt;a href=&quot;https://www.youtube.com/playlist?list=PL7nj3G6Jpv2G6Gp6NvN1kUtQuW8QshBWE&quot;&gt;eight-part 2004 documentary on YouTube&lt;/a&gt; titled &lt;em&gt;BBS: The Documentary&lt;/em&gt;, which includes a recorded interview with Stephen Jones, SDF&#39;s longtime sysadmin.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://subnetzero.info/2019/08/15/before-the-internet-the-bulletin-board-system/&quot;&gt;Bulletin board systems predate the modern Internet&lt;/a&gt;, and arguably turned personal computers from expensive novelty kits into far more popular machines. BBSes were what changed PCs &lt;a href=&quot;https://spectrum.ieee.org/bulletin-board-system-bbs-history/pioneers-of-cyberspace-welcome-screens-from-various-computer-bulletin-board-systems-show-their-operators-wild-creativity&quot;&gt;into essential gateways for global and local communication&lt;/a&gt; during the 1980s and early 1990s. They were proof the computer was for connecting with other people.&lt;/p&gt;
&lt;p&gt;There were no search engines at the time, so you had to look through computer magazines or text files from other boards to find a BBS. A &amp;quot;website address&amp;quot; was a local 7-digit phone number. You opened a terminal program on your computer and typed a command to make your modem dial the BBS phone number. Because it used your home phone line, nobody in your house could use the phone while you were online. You would listen to the computer physically dial the number, followed by the &lt;a href=&quot;https://www.youtube.com/watch?v=vvr9AMWEU-c&quot;&gt;iconic, harsh screeching and static hiss&lt;/a&gt; of two modems talking to each other.&lt;/p&gt;
&lt;p&gt;At its peak of popularity, there were over 150,000 BBSes operating in North America. By 2005, there were only a few hundred.&lt;/p&gt;
&lt;p&gt;In a &lt;a href=&quot;http://bsdtalk.blogspot.com/2006/03/bsdtalk021-interview-with-stephen.html&quot;&gt;2006 bsdtalk interview&lt;/a&gt;, one longtime member summed up what makes the place stick around:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;SDF is more than a shell account, it&#39;s a community of people who communicate with one another via the various methods that SDF provides... What makes SDF special is that it is run like a computing environment in the early days of the Internet. It&#39;s not corporate at all.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A university researcher&#39;s 2019 survey of public-access UNIX systems, &lt;a href=&quot;https://cmccabe.sdf.org/files/pubax_unix.pdf&quot;&gt;&lt;em&gt;History, Evolution and Future of Public Access UNIX&lt;/em&gt;&lt;/a&gt;, hosted on SDF itself, describes the modern system as &amp;quot;a fully articulated social community,&amp;quot; and adds that SDF supports special interest groups for ham radio (SDFARC), Python, Gopher enthusiasts, and Minecraft players alongside &amp;quot;digital artists, computer historians, web developers, gamers, and of course many, many programmers.&amp;quot; SDF&#39;s own &lt;a href=&quot;https://sdf.org/?tour&quot;&gt;pictorial tour&lt;/a&gt; documents the hardware year by year back to 1985, including a &lt;a href=&quot;https://sdf.org/?tour/museum/index&quot;&gt;stint at a telephone museum&lt;/a&gt; and the machines running today.&lt;/p&gt;
&lt;p&gt;Today the network includes NetBSD servers on DEC Alpha and AMD Opteron hardware, plus live retrocomputing environments: a TOPS-20 system (&lt;a href=&quot;https://twenex.org/&quot;&gt;twenex.org&lt;/a&gt;, running Panda Distribution TOPS-20 on two &lt;a href=&quot;http://xkl.com/&quot;&gt;XKL&lt;/a&gt; TOAD-2s), a Symbolics Genera machine, and an ITS system. Free accounts are available on all of them.&lt;/p&gt;
&lt;p&gt;In the past four decades, SDF has survived hardware failures, countless DDoSes, a &lt;a href=&quot;https://sdfeu.org/w/faq:basics02&quot;&gt;termination by its own ISP&lt;/a&gt;, and multiple relocations across the United States. It has never gone commerical, nor lost its userbase in that time. Jones, still running SDF decades in, wrote in his 30th-anniversary letter:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Some people today may come here and see us as outdated and &#39;retro.&#39; But if you get involved, you&#39;ll see it is quite alive with new ideas.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;services-offered-by-sdf&quot; tabindex=&quot;-1&quot;&gt;Services Offered by SDF&lt;/h2&gt;
&lt;p&gt;SDF has come a long way since its BBS days, though it&#39;s still one of the last places offering free dial-up access. When you become a member on SDF, you get a lot of services--rather similar to getting a &lt;a href=&quot;https://tildeverse.org/&quot;&gt;Tildeverse&lt;/a&gt; or &lt;a href=&quot;https://omg.lol/&quot;&gt;omg.lol&lt;/a&gt; account, and predating both.&lt;/p&gt;
&lt;p&gt;You begin in the shell. Running the command &lt;code&gt;ssh you@tty.sdf.org&lt;/code&gt; puts you in NetBSD with typical stuff like &lt;code&gt;bash&lt;/code&gt;, &lt;code&gt;ksh&lt;/code&gt;, &lt;code&gt;tcsh&lt;/code&gt;, &lt;code&gt;rc&lt;/code&gt;, and &lt;code&gt;zsh&lt;/code&gt;; editors from &lt;code&gt;ed&lt;/code&gt; to &lt;code&gt;emacs&lt;/code&gt;. And &lt;code&gt;ping&lt;/code&gt;, &lt;code&gt;traceroute&lt;/code&gt;, &lt;code&gt;dig&lt;/code&gt;, &lt;code&gt;whois&lt;/code&gt;, and &lt;code&gt;finger&lt;/code&gt;, etc.&lt;/p&gt;
&lt;p&gt;You get your own web page, running &lt;code&gt;mkhomepg&lt;/code&gt; on the shell will create a &lt;code&gt;~/html&lt;/code&gt; folder, and asks which URL you want. You add your files in &lt;code&gt;~/html&lt;/code&gt; and the site is live immediately at &lt;code&gt;you.sdf.org&lt;/code&gt;. ARPA members can pick a vanity domain from ~60 choices (&lt;code&gt;pdp10.org&lt;/code&gt;, &lt;code&gt;twenex.org&lt;/code&gt;, &lt;code&gt;chaosnet.org&lt;/code&gt;, &lt;code&gt;freak.net&lt;/code&gt;, &lt;code&gt;multics.org&lt;/code&gt;...). See &lt;a href=&quot;https://wiki.sdf.org/doku.php?id=domains_available_to_arpa_members&quot;&gt;wiki.sdf.org&lt;/a&gt; for the list. CGI works out of the box. Shell/awk/sed for everyone, and full &lt;code&gt;php&lt;/code&gt;/&lt;code&gt;perl&lt;/code&gt;/&lt;code&gt;python&lt;/code&gt;/&lt;code&gt;ruby&lt;/code&gt; for ARPA members.&lt;/p&gt;
&lt;p&gt;The Gopher and Gemini protocols are typically more used by SDF users. Run &lt;code&gt;mkgopher&lt;/code&gt; in the shell and choose setup. It&#39;ll create &lt;code&gt;~/gopher&lt;/code&gt; (a symlink into &lt;code&gt;/ftp/pub/users/you&lt;/code&gt;) served as both &lt;code&gt;gopher://sdf.org/1/users/you&lt;/code&gt; and &lt;code&gt;gemini://sdf.org/users/you&lt;/code&gt;. One directory, two protocols! Write a &lt;code&gt;gophermap&lt;/code&gt; or add &lt;code&gt;.gmi&lt;/code&gt; files. See &lt;a href=&quot;https://wiki.sdf.org/doku.php?id=gopher_site_setup_and_hosting_features&quot;&gt;gopher setup&lt;/a&gt; and &lt;a href=&quot;https://wiki.sdf.org/doku.php?id=gemini_site_setup_and_hosting_features&quot;&gt;gemini setup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And that&#39;s just the tip of the iceberg:&lt;/p&gt;
&lt;div class=&quot;scroll&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Where&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IRC&lt;/td&gt;
&lt;td&gt;&lt;code&gt;irc.sdf.org&lt;/code&gt;:6667&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jabber/XMPP&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jabber.sdf.org&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Matrix&lt;/td&gt;
&lt;td&gt;&lt;code&gt;matrix.sdf.org&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gitea&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://git.sdf.org/&quot;&gt;git.sdf.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mastodon&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://mastodon.sdf.org/&quot;&gt;mastodon.sdf.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PixelFed&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://pixelfed.sdf.org/&quot;&gt;pixelfed.sdf.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PeerTube&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://toobnix.org/&quot;&gt;toobnix.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TT-RSS&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://ttrss.sdf.org/&quot;&gt;ttrss.sdf.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lemmy&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://lemmy.sdf.org/&quot;&gt;lemmy.sdf.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gallery&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://sdf.org/g&quot;&gt;sdf.org/g&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deskshots&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://deskshots.org/&quot;&gt;deskshots.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jitsi&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://jitsi.sdf.org/&quot;&gt;jitsi.sdf.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;aNONradio&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://anonradio.net/&quot;&gt;anonradio.net&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Minecraft&lt;/td&gt;
&lt;td&gt;&lt;code&gt;mc.sdf.org&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BZFlag&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sdf.org:5154&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SDFMud&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://sdf.org/mud&quot;&gt;sdf.org/mud&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TOPS-20&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://twenex.org/&quot;&gt;twenex.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;h2 id=&quot;how-to-join&quot; tabindex=&quot;-1&quot;&gt;How to Join&lt;/h2&gt;
&lt;p&gt;Originally, the only way to join SDF and get verified was to &lt;a href=&quot;https://sdf.org/?faq?MEMBERS?01&quot;&gt;physically mail one dollar to their PO box in Seattle&lt;/a&gt; with your username. This was a clever way of preventing spam and abuse.&lt;/p&gt;
&lt;p&gt;Nowadays, thankfully, you can just &lt;a href=&quot;https://www.paypal.com/webapps/shoppingcart?flowlogging_id=f740888d56cea&amp;amp;mfid=1790256131994_f740888d56cea#/checkout/openButton&quot;&gt;donate via Paypal&lt;/a&gt;, making the entire process a lot easier.&lt;/p&gt;
&lt;p&gt;I think one of the coolest things about SDF is the lifetime &lt;em&gt;ARPA membership&lt;/em&gt;. For a one-time fee of $36USD, you get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Outbound tools: &lt;code&gt;telnet&lt;/code&gt;, &lt;code&gt;ssh&lt;/code&gt;, &lt;code&gt;sftp&lt;/code&gt;, &lt;code&gt;ftp&lt;/code&gt;, &lt;code&gt;snarf&lt;/code&gt;, &lt;code&gt;wget&lt;/code&gt;, &lt;code&gt;ytalk&lt;/code&gt;, external IRC. Free accounts are inbound-only; ARPA opens the network both ways&lt;/li&gt;
&lt;li&gt;File transfer: &lt;code&gt;scp&lt;/code&gt;/&lt;code&gt;sftp&lt;/code&gt; and non-interactive SSH: &lt;code&gt;ssh-copy-id&lt;/code&gt; is enabled&lt;/li&gt;
&lt;li&gt;Development: &lt;code&gt;gcc&lt;/code&gt;, &lt;code&gt;perl&lt;/code&gt;, &lt;code&gt;php&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;ruby&lt;/code&gt;, &lt;code&gt;elisp&lt;/code&gt; on the box&lt;/li&gt;
&lt;li&gt;Full CGI: &lt;code&gt;php&lt;/code&gt;/&lt;code&gt;perl&lt;/code&gt;/&lt;code&gt;python&lt;/code&gt;/&lt;code&gt;ruby&lt;/code&gt; on your site&lt;/li&gt;
&lt;li&gt;VoIP: internet calling, voicemail, conferencing (PSTN calling is a $15/quarter add-on with a real DID option)&lt;/li&gt;
&lt;li&gt;UUCP + ClariNET: mail and newsfeeds via TCP or dialup&lt;/li&gt;
&lt;li&gt;Voting rights: on system features and policy&lt;/li&gt;
&lt;li&gt;Quotas: ~150 MB / 5000 files each for home, mail, webspace, gopherspace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not only do you get all of the above for life, but you&#39;re supporting a networked community that&#39;s been around longer than I&#39;ve been alive!&lt;/p&gt;
&lt;h2 id=&quot;bonus%3A-making-a-perl-cgi-guestbook-on-sdf&quot; tabindex=&quot;-1&quot;&gt;Bonus: Making a Perl CGI Guestbook on SDF&lt;/h2&gt;
&lt;p&gt;Back in the day, to add functionality to your website, you wrote scripts that interacted with a web server via the Common Gateway Interface (CGI) protocol. In the late 1990s and early 2000s, it was the primary technology used to transition the World Wide Web from static HTML pages to dynamic, interactive websites.&lt;/p&gt;
&lt;p&gt;Sadly, they&#39;re not used much in modern-day web development, and are considered obsolete and discouraged. You see, traditional CGI spawns a brand new operating system process for every single visitor click. So on busy websites, they consumed massive amounts of server memory, and slowed performance down to a crawl.&lt;/p&gt;
&lt;p&gt;But when you&#39;re making a little personal website, things like &amp;quot;scaling&amp;quot; and &amp;quot;efficient resource usage&amp;quot; can be thrown out the window! Who cares? Since I have access to Perl CGI as an ARPA member, I decided to make a simple guestbook on my little SDF webpage. Here&#39;s how I put it together.&lt;/p&gt;
&lt;h3 id=&quot;1.-understanding-sdf-directories&quot; tabindex=&quot;-1&quot;&gt;1. Understanding SDF directories&lt;/h3&gt;
&lt;p&gt;In SDF, the root of your webpage is the &lt;code&gt;~/html&lt;/code&gt; directory, but that isn&#39;t your home directory. Rather, its a symlink into &lt;code&gt;/www/&amp;lt;a&amp;gt;/&amp;lt;b&amp;gt;/&amp;lt;username&amp;gt;&lt;/code&gt; (the parent directories come from your username, so mine is &lt;code&gt;/www/af/b/bren&lt;/code&gt;). Your real home directory is somewhere like &lt;code&gt;/sdf/arpa/af/b/bren&lt;/code&gt;. Now, you don&#39;t want your data file living inside the publicly-served &lt;code&gt;~/html&lt;/code&gt; folder, where a visitor could request it directly. Instead, keep it one level up, outside the web root:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/sdf/arpa/af/b/bren/guestbook.dat   &amp;lt;- data file, NOT web-accessible
/www/af/b/bren/guestbook.cgi        &amp;lt;- the script itself, lives in ~/html
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Also, &lt;code&gt;$ENV{HOME}&lt;/code&gt; isn&#39;t set when your CGI script runs under &lt;code&gt;suexec&lt;/code&gt;, so you can&#39;t rely on relative paths like &lt;code&gt;~&lt;/code&gt; inside the script. I just hardcoded the absolute path to the data file.&lt;/p&gt;
&lt;h3 id=&quot;2.-writing-the-script&quot; tabindex=&quot;-1&quot;&gt;2. Writing the script&lt;/h3&gt;
&lt;p&gt;For this, I use core Perl and &lt;code&gt;Fcntl&lt;/code&gt; for file locking (if two visitors ever signed at the same time), but that&#39;s pretty much it. The script reads &lt;code&gt;$ENV{REQUEST_METHOD}&lt;/code&gt;, parses the POSTed form body by hand (no &lt;code&gt;CGI.pm&lt;/code&gt;, it&#39;s deprecated), validates the name/message length, and appends a line to the file:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-perl&quot;&gt;#!/usr/pkg/bin/perl
use strict;
use warnings;
use Fcntl qw(:flock);

my $DATA_FILE = &amp;quot;/sdf/arpa/af/b/bren/guestbook.dat&amp;quot;;

sub add_entry {
    my ($name, $message, $url) = @_;
    my $ts = scalar localtime;
    my $enc_message = $message;
    $enc_message =~ s/&#92;&#92;/&#92;&#92;&#92;&#92;/g;
    $enc_message =~ s/&#92;n/&#92;&#92;n/g;

    open(my $fh, &#39;&amp;gt;&amp;gt;&#39;, $DATA_FILE) or return;
    flock($fh, LOCK_EX);
    print $fh join(&amp;quot;&#92;x01&amp;quot;, $ts, $name, $enc_message, $url) . &amp;quot;&#92;n&amp;quot;;
    flock($fh, LOCK_UN);
    close($fh);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Every entry is a single line, &lt;code&gt;timestamp &#92;x01 name &#92;x01 message &#92;x01 url&lt;/code&gt;, using the otherwise-unused &lt;code&gt;&#92;x01&lt;/code&gt; control character as a field separator, as this ensures names or messages containing regular punctuation don&#39;t break parsing. Newlines inside a message escape with a literal &lt;code&gt;&#92;n&lt;/code&gt; on write and unescaped again on read, turning multi-line messages into single lines as well.&lt;/p&gt;
&lt;p&gt;There&#39;s also a honeypot field, &lt;code&gt;website&lt;/code&gt;, that&#39;s hidden from visitors with CSS. If it&#39;s filled in, the submission is ignored, but the robot will still see a &amp;quot;Thanks for signing!&amp;quot;&lt;/p&gt;
&lt;h3 id=&quot;3.-locking-down-the-data-file&quot; tabindex=&quot;-1&quot;&gt;3. Locking down the data file&lt;/h3&gt;
&lt;p&gt;Since the data file has to live somewhere Apache can access (in my case, I didn&#39;t want to think too hard about symlinks), add a &lt;code&gt;.htaccess&lt;/code&gt; in &lt;code&gt;~/html&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-apacheconf&quot;&gt;&amp;lt;Files &amp;quot;guestbook.dat&amp;quot;&amp;gt;
    Order allow,deny
    Deny from all
&amp;lt;/Files&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;4.-uploading-and-make-it-executable&quot; tabindex=&quot;-1&quot;&gt;4. Uploading and make it executable&lt;/h3&gt;
&lt;p&gt;SDF requires CGI scripts to (1) end in &lt;code&gt;.cgi&lt;/code&gt; and (2) be executable. There&#39;s no &lt;code&gt;cgi-bin&lt;/code&gt; directory requirement, so it can be put anywhere in &lt;code&gt;~/html&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;scp guestbook.cgi bren.sdf.org:html/
ssh bren.sdf.org
chmod 755 html/guestbook.cgi
mkhomepg -p
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;mkhomepg -p&lt;/code&gt; will correctly reset your homepage permissions to SDF&#39;s expected secure defaults.&lt;/p&gt;
&lt;h3 id=&quot;5.-visit-it&quot; tabindex=&quot;-1&quot;&gt;5. Visit it&lt;/h3&gt;
&lt;p&gt;That&#39;s it! &lt;code&gt;guestbook.cgi&lt;/code&gt; renders the same page for both &lt;code&gt;GET&lt;/code&gt; (showing the form and the last 50 entries) and &lt;code&gt;POST&lt;/code&gt; (validating and saving a new one). There&#39;s no database, framework, or build. It&#39;s a little janky by 2026 standards, and I love it. Sign it if you want: &lt;a href=&quot;http://bren.sdf.org/guestbook.cgi&quot;&gt;bren.sdf.org/guestbook.cgi&lt;/a&gt; (note the http, not https).&lt;/p&gt;
&lt;h2 id=&quot;bonus%3A-making-a-dillo-compatible-website&quot; tabindex=&quot;-1&quot;&gt;Bonus: Making a Dillo-compatible Website&lt;/h2&gt;
&lt;p&gt;Finally, I was rather inspired by Sunny&#39;s blog post &lt;em&gt;&lt;a href=&quot;https://sny.sh/hypha/blog/pieces&quot;&gt;on positive, human-made software&lt;/a&gt;&lt;/em&gt;, which listed the Internet browser &lt;a href=&quot;https://dillo-browser.org/&quot;&gt;Dillo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Way back in the day, when my only computer was a painfully slow Intel Core 2 Duo, I remember trying to find lightweight browsers that would make websurfing a less painful experience. Dillo is certainly one of them! The &amp;quot;code base is currently 0.2% the size of Chromium&#39;s&amp;quot; and has ridiculously low memory usage.&lt;/p&gt;
&lt;p&gt;Unsurprisingly, that comes with a price. There&#39;s a lot of the web that doesn&#39;t render or function properly with Dillo because of its limitations. But to me, that&#39;s a feature. One of the best ways we can ensure our web pages honour &lt;a href=&quot;https://smolweb.org/&quot;&gt;smol web&lt;/a&gt; principles while also having source code that&#39;s easy for beginners to read is by making our sites Dillo-compatible.&lt;/p&gt;
&lt;p&gt;What does this actually mean, though?&lt;/p&gt;
&lt;p&gt;Well, Dillo supports a subset of HTML 4.01 with some HTML5 elements layered in, and a subset of CSS 2.1 with some CSS3 layered in. No JavaScript, at all.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; and all inline event handlers (&lt;code&gt;onclick&lt;/code&gt;, etc.) are discarded. &lt;code&gt;frameset&lt;/code&gt;/&lt;code&gt;frame&lt;/code&gt;/&lt;code&gt;iframe&lt;/code&gt; have no rendering support. No &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; or &lt;code&gt;video&lt;/code&gt;, &lt;code&gt;audio&lt;/code&gt;, &lt;code&gt;source&lt;/code&gt;, &lt;code&gt;embed&lt;/code&gt;, &lt;code&gt;object&lt;/code&gt; playback support, either.&lt;/p&gt;
&lt;p&gt;Regarding CSS and styles, there&#39;s no support for CSS variables (&lt;code&gt;var()&lt;/code&gt;). There&#39;s also no &lt;code&gt;flexbox&lt;/code&gt; and no CSS &lt;code&gt;grid&lt;/code&gt;. Grid rules are just ignored. You&#39;ll have to do your layouts with (&lt;em&gt;gulp&lt;/em&gt;) &lt;code&gt;table&lt;/code&gt; and &lt;code&gt;float&lt;/code&gt;, instead.&lt;/p&gt;
&lt;p&gt;There&#39;s also no custom webfonts with &lt;code&gt;@font-face&lt;/code&gt;, as fonts resolve to the five CSS generic families: &lt;code&gt;serif&lt;/code&gt;, &lt;code&gt;sans-serif&lt;/code&gt;, &lt;code&gt;monospace&lt;/code&gt;, &lt;code&gt;cursive&lt;/code&gt;, and &lt;code&gt;fantasy&lt;/code&gt;, all of which are set in the user&#39;s &lt;code&gt;dillorc&lt;/code&gt; config (&lt;code&gt;font_serif&lt;/code&gt;, &lt;code&gt;font_sans&lt;/code&gt;, etc.). Dillo doesn&#39;t have the ability to load specific webfont files.&lt;/p&gt;
&lt;p&gt;Take this with a grain of salt, as I couldn&#39;t actually find a canonical compatibility table. The Dillo devs communicate through the manual, changelog, and bug tracker.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;It&#39;s funny, the more I learn about web development, the more simple and back-in-time I go. I think this makes sense--good code is unbloated code. The closer you can get to no interface, the better the interface. It&#39;s a wonderfully paradoxical aspect of programming and working with computers. These are always going to be machines with finite limits--no different than us--and we need to not only be mindful of that, but lean into it.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Static Site Generators for Beginners</title>
		<link href="http://plaintext.brennan.day/static-site-generators-for-beginners/"/>
		<updated>2026-09-23T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/static-site-generators-for-beginners/</id>
		<content type="html">&lt;p&gt;I&#39;ve been writing &lt;a href=&quot;https://brennan.day/collections/technical-tutorials/&quot;&gt;technical tutorials&lt;/a&gt; on my website since I started it last November, but &lt;a href=&quot;https://discourse.32bit.cafe/t/ssg-resources-for-total-newbies/5218?u=brennan&quot;&gt;this thread&lt;/a&gt; asking about static site generators for beginners on 32-bit Café made me realize I&#39;ve never made a proper tutorial regarding SSGs from the ground-up basics. This post initially began as a reply to that thread, but I realized I had enough to say to fill an entire blog post. I hope this is helpful to anybody who has been interested in static-site generators but has found trying them out to be difficult, obtuse, and with a lot of friction.&lt;/p&gt;
&lt;p&gt;I&#39;m someone that grew up using SSGs, going from editing the HTML on my Tumblr straight to setting up a blog with &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; when I was a teenager around 15 years ago now. While I would say I&#39;m knowledgeable, being able to communicate and articulate that knowledge (particularly to beginners) is another skill entirely, and one I want to cultivate more. Hopefully I do a good job with that here!&lt;/p&gt;
&lt;h2 id=&quot;prerequisites&quot; tabindex=&quot;-1&quot;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Let me start off by saying that, if you&#39;re brand new to web development, I do &lt;strong&gt;not&lt;/strong&gt; recommend beginning with a static-site generator. If you&#39;re making your first website (or ten), I really recommend writing out the HTML and CSS yourself--this removes a lot of the abstraction that occurs with SSGs.&lt;/p&gt;
&lt;p&gt;Nearly all SSGs assume you know the fundamentals of HTML, CSS, and sometimes JavaScript. They also assume some familiarity with programming concepts, the terminal, and usually version control such as Git. You certainly do not need to master all of these before making a site with an SSG, but knowing what is going on underneath the hood will make the inevitable errors much less mysterious.&lt;/p&gt;
&lt;h3 id=&quot;free-resources&quot; tabindex=&quot;-1&quot;&gt;Free resources&lt;/h3&gt;
&lt;p&gt;I would work through the resources below in the order I&#39;ve listed, creating your own sites along the way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HTML:&lt;/strong&gt; &lt;a href=&quot;https://htmlforpeople.com/&quot;&gt;HTML for People&lt;/a&gt; is a friendly introduction written for people with no previous coding or web experience. &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content&quot;&gt;MDN&#39;s HTML learning module&lt;/a&gt; is a more technical reference for when you want to get to aspects like semantic elements and accessibility.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CSS:&lt;/strong&gt; &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics&quot;&gt;MDN&#39;s CSS styling and layout modules&lt;/a&gt; explain things like the box model and CSS layouts. If you prefer interactive exercises and projects, &lt;a href=&quot;https://www.freecodecamp.org/learn/responsive-web-design-v9/&quot;&gt;freeCodeCamp&#39;s Responsive Web Design course&lt;/a&gt; covers HTML, CSS, accessibility, and responsive design. (Responsive meaning mobile-friendly in most cases)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript and web fundamentals:&lt;/strong&gt; &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting&quot;&gt;MDN&#39;s JavaScript module&lt;/a&gt; is a good addition to its HTML and CSS lessons. And &lt;a href=&quot;https://www.freecodecamp.org/learn/javascript-v9/&quot;&gt;freeCodeCamp&#39;s JavaScript curriculum&lt;/a&gt; is another free, interactive option.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Programming fundamentals:&lt;/strong&gt; &lt;a href=&quot;https://cs50.harvard.edu/x/&quot;&gt;CS50x&lt;/a&gt; is Harvard&#39;s free introduction to computer science. Computational thinking, algorithms, data structures, functions, variables, conditionals, and loops. You don&#39;t need to know all of this, but the first few weeks of the course would give you a good foundation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The terminal:&lt;/strong&gt; &lt;a href=&quot;https://missing.csail.mit.edu/&quot;&gt;MIT&#39;s Missing Semester&lt;/a&gt; teaches the shell, command-line environments, editors, and debugging. Check out the &lt;a href=&quot;https://missing.csail.mit.edu/2026/course-shell/&quot;&gt;introduction to the shell&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git and version control:&lt;/strong&gt; &lt;a href=&quot;https://git-scm.com/book/en/v2&quot;&gt;Pro Git&lt;/a&gt; is a free online book that starts with the command line and basic commits before moving on to branches, remotes, and hosting. Reading this on a Kobo during my commute to college was how I learned git myself.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Markdown and YAML:&lt;/strong&gt; The &lt;a href=&quot;https://www.markdownguide.org/basic-syntax/&quot;&gt;Markdown Guide&lt;/a&gt; is good for seeing how symbols are used for writing in Markdown. For YAML, the &lt;a href=&quot;https://yaml.org/spec/1.2.2/&quot;&gt;official YAML 1.2 docs&lt;/a&gt; are more detailed than you need, but the introductory explanation is useful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checking your work:&lt;/strong&gt; To see if your HTML has any errors, the &lt;a href=&quot;https://validator.w3.org/nu/&quot;&gt;W3C Nu HTML Checker&lt;/a&gt; is a good resource to detect any invalid markup.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Learn_web_development&quot;&gt;MDN has a &amp;quot;Learn Web Development&amp;quot;&lt;/a&gt; resource as a single place to learn HTML, CSS, JavaScript, and browser fundamentals. There are others, like &lt;a href=&quot;https://www.theodinproject.com/&quot;&gt;the Odin Project&lt;/a&gt;, &lt;a href=&quot;https://web.dev/learn&quot;&gt;web.dev&lt;/a&gt;, &lt;a href=&quot;https://www.w3schools.com/whatis/&quot;&gt;w3schools&lt;/a&gt;, and more.&lt;/p&gt;
&lt;p&gt;Understand that you don&#39;t need to know everything. You&#39;re doing this as a hobby, it&#39;s fine to make mistakes or do things in unorthodox ways that guides don&#39;t recommend. The important thing is not to finish every course before starting--build tiny sites as you go along with what you learn. Each step will give you more competency and functionality to add to your projects.&lt;/p&gt;
&lt;h2 id=&quot;definitions&quot; tabindex=&quot;-1&quot;&gt;Definitions&lt;/h2&gt;
&lt;p&gt;Next, before I jump into the history of static sites, I want to define some often-used terms you&#39;ll see when reading static-site documentation and guides, since a lot of this jargon is typically not defined well. Most developers will simply think you already know all of this stuff by default.&lt;/p&gt;
&lt;h3 id=&quot;the-web-and-the-generator&quot; tabindex=&quot;-1&quot;&gt;The Web and the Generator&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;HTML (HyperText Markup Language)&lt;/strong&gt; is the base document of a webpage, it&#39;s a language of structure and semantics. Headings, paragraphs, links, images, lists, and stuff like that. HTML is not a programming language, so it doesn&#39;t make decisions or repeat actions by itself.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;My First Page&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Hello, world!&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;This page has a &amp;lt;a href=&amp;quot;https://brennan.day&amp;quot;&amp;gt;link&amp;lt;/a&amp;gt; and a list:&amp;lt;/p&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;HTML gives a page its structure.&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;There&#39;s no CSS yet, so this is all default styling.&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Save that as &lt;code&gt;index.html&lt;/code&gt;, open it in a browser, and you get a real page--&lt;a href=&quot;https://brennan.day/examples/html/&quot;&gt;see it live here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CSS (Cascading Style Sheets)&lt;/strong&gt; changes how HTML is rendered. This is how you add specific and unique colours, spacing, fonts, responsive behaviour, etc.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;body {
  font-family: Georgia, serif;
  max-width: 35rem;
  margin: 2rem auto;
  padding: 0 1rem;
  background: #fff2ce;
  color: #02005d;
}

h1 {
  color: rebeccapurple;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Add that inside a &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; tag in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; and the exact same page &lt;a href=&quot;https://brennan.day/examples/css/&quot;&gt;now looks like this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; is the most commonly-used programming language in web browsers. It is frankly rather janky, but it&#39;s what we have to work with. It can add behaviour and interactivity to your site, but it is rarely ever necessary and can slow down and bloat a webpage. &lt;a href=&quot;http://plaintext.brennan.day/respecting-the-no-js-choice-making-your-site-work-for-everyone/&quot;&gt;I personally recommend using it sparingly.&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;const button = document.querySelector(&amp;quot;#surprise&amp;quot;);

button.addEventListener(&amp;quot;click&amp;quot;, () =&amp;gt; {
  document.querySelector(&amp;quot;h1&amp;quot;).textContent = &amp;quot;JavaScript did this!&amp;quot;;
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With a &lt;code&gt;&amp;lt;button id=&amp;quot;surprise&amp;quot;&amp;gt;&lt;/code&gt; added to the page, that script &lt;a href=&quot;https://brennan.day/examples/js/&quot;&gt;does this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;An SSG can also use JavaScript, for example, to run its build process or its template code. In 11ty, you can even write an entire template as JavaScript:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;// hello.11ty.js
module.exports = function () {
  return &amp;quot;&amp;lt;h1&amp;gt;Hello from JavaScript!&amp;lt;/h1&amp;gt;&amp;quot;;
};
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Static&lt;/strong&gt; means that a server returns a file as-is, without generating a new page for every request (typically a user visiting the page). A static page can still contain JavaScript and can still be changed later, as &amp;quot;static&amp;quot; only describes how the page is delivered, not whether it is immutable or boring.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic&lt;/strong&gt; means that something generates or changes the response at request time. A traditional content-management system might query a database and assemble a page whenever someone visits it. A store website would need to keep a database of inventory that changes based on when people add an item to their cart and purchase, for example.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Static-site generator (SSG)&lt;/strong&gt; is a program that takes source files (like Markdown content, templates, configuration, and assets) and builds a rendered site of HTML, CSS, JavaScript, and image files from them that can be hosted as a static site.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Build&lt;/strong&gt; is running the generator&#39;s command that turns those source files into output files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source files&lt;/strong&gt; are the files you edit, such as Markdown posts, templates, stylesheets, and configuration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output files&lt;/strong&gt; or &lt;strong&gt;built files&lt;/strong&gt; are the finished files produced by the build, often placed in a folder such as &lt;code&gt;_site/&lt;/code&gt;, &lt;code&gt;public/&lt;/code&gt;, or &lt;code&gt;dist/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local server&lt;/strong&gt; is a web server running on your own computer. A development server lets you view the built site at a local address (like &lt;code&gt;localhost:8000&lt;/code&gt;) and can rebuild it when you save a change to a source file.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;configuration-and-data&quot; tabindex=&quot;-1&quot;&gt;Configuration and Data&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Configuration file&lt;/strong&gt; is a file containing site-wide settings--it can include things like a site&#39;s name, base URL, menus, output directory, RSS options, etc. Different SSGs use different filenames and formats, including &lt;code&gt;config.yml&lt;/code&gt;, &lt;code&gt;hugo.toml&lt;/code&gt;, and &lt;code&gt;eleventy.config.js&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YAML&lt;/strong&gt; (usually pronounced &amp;quot;yamel&amp;quot;) is a human-readable data language often used for configuration and front matter. It represents values such as strings, numbers, lists, and key-value mappings. Indentation in YAML is significant, so a stray space can cause a build error.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Key-value pair&lt;/strong&gt; really just means here&#39;s two parts to each config option, such as &lt;code&gt;title: My post&lt;/code&gt;. In YAML, a collection of these pairs is called a mapping.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parameter&lt;/strong&gt; or &lt;strong&gt;option&lt;/strong&gt; is a setting passed to a command or configured in a file. For example, &lt;code&gt;--serve&lt;/code&gt; is an option in a command shown later in this guide.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&#39;s an 11ty site settings file (&lt;code&gt;src/_data/site.json&lt;/code&gt;), where you edit the user-facing details of your site:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;name&amp;quot;: &amp;quot;My Cool Blog&amp;quot;,
  &amp;quot;description&amp;quot;: &amp;quot;Where I write about whatever interests me.&amp;quot;,
  &amp;quot;author&amp;quot;: &amp;quot;Your Name&amp;quot;,
  &amp;quot;url&amp;quot;: &amp;quot;https://example.com&amp;quot;,
  &amp;quot;language&amp;quot;: &amp;quot;en&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Every key-value pair becomes a variable your templates can use: putting &lt;code&gt;{{ site.name }}&lt;/code&gt; in a layout prints &amp;quot;My Cool Blog&amp;quot;, so changing the name here updates it everywhere at once. This is one of the neat features of SSGs, and it means you only have to change the name in one place. Other SSGs put the same idea in &lt;code&gt;config.yml&lt;/code&gt; (Jekyll) or &lt;code&gt;hugo.toml&lt;/code&gt; (Hugo) instead.&lt;/p&gt;
&lt;h3 id=&quot;templates-and-content&quot; tabindex=&quot;-1&quot;&gt;Templates and Content&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Template&lt;/strong&gt; is a reusable file containing the structure of a page, with various placeholders.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Layout&lt;/strong&gt; is a template for a larger page shape, containing all of the following: the document language declaration, &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, header, main content area, and footer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Partial&lt;/strong&gt; is a smaller reusable fragment, such as a navigation bar, header, footer, or post metadata block. &amp;quot;Include&amp;quot; is the instruction that inserts one file or fragment into another.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Templating language&lt;/strong&gt; is the syntax used to insert variables, loop over data, and make decisions inside templates. Liquid, Nunjucks, and Go templates are examples.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Conditional&lt;/strong&gt; is a yes-or-no instruction in a template, such as &amp;quot;show this element only if the post has an image.&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&#39;s a simple layout (&lt;code&gt;_includes/layouts/base.njk&lt;/code&gt;, written in the Nunjucks templating language) that uses a few partials:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;{{ title }} | {{ site.name }}&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    {% include &amp;quot;partials/header.njk&amp;quot; %}

    &amp;lt;main&amp;gt;
      {{ content | safe }}
    &amp;lt;/main&amp;gt;

    {% include &amp;quot;partials/footer.njk&amp;quot; %}
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the partials are fragments of HTML:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!-- partials/header.njk --&amp;gt;
&amp;lt;header&amp;gt;
  &amp;lt;a href=&amp;quot;/&amp;quot;&amp;gt;{{ site.name }}&amp;lt;/a&amp;gt;
  {% include &amp;quot;partials/nav.njk&amp;quot; %}
&amp;lt;/header&amp;gt;

&amp;lt;!-- partials/nav.njk --&amp;gt;
&amp;lt;nav&amp;gt;
  &amp;lt;a href=&amp;quot;/&amp;quot;&amp;gt;Home&amp;lt;/a&amp;gt;
  &amp;lt;a href=&amp;quot;/archive/&amp;quot;&amp;gt;Archive&amp;lt;/a&amp;gt;
  &amp;lt;a href=&amp;quot;/about/&amp;quot;&amp;gt;About&amp;lt;/a&amp;gt;
&amp;lt;/nav&amp;gt;

&amp;lt;!-- partials/footer.njk --&amp;gt;
&amp;lt;footer&amp;gt;
  &amp;lt;p&amp;gt;&amp;amp;copy; 2026 {{ site.author }}&amp;lt;/p&amp;gt;
&amp;lt;/footer&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When a post&#39;s front matter says &lt;code&gt;layout: base.njk&lt;/code&gt;, 11ty wraps it in this template: &lt;code&gt;{{ content | safe }}&lt;/code&gt; is where the rendered post body goes, and each &lt;code&gt;{% include %}&lt;/code&gt; puts a partial in place. Edit the header once and every page on the site updates. This is the copy-paste problem SSGs solve.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Content file&lt;/strong&gt; is a source file, like a page or a post, typically written in Markdown. In SSGs this is often Markdown, but it may also be HTML, plain text, or another supported format.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Markdown&lt;/strong&gt; is a rather well-known markup language that uses punctuation symbols to represent headings, links, lists, emphasis, and other document structure. A generator converts this into HTML.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Front matter&lt;/strong&gt; is a small metadata block at the beginning of a content file, commonly enclosed by two lines of &lt;code&gt;---&lt;/code&gt;. It can contain a title, date, tags, layout name, or draft status.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blog-aware&lt;/strong&gt; means that a generator is specifically built for posts. It can usually sort them by date, and can generate specific pages like an archive, tags page, and RSS feed automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metadata&lt;/strong&gt; is information like a post&#39;s title, author, publication date, tags, description, canonical URL, or chosen layout.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&#39;s a single 11ty blog post (&lt;code&gt;posts/my-first-post.md&lt;/code&gt;) that uses all of the above: front matter metadata written as YAML key-value pairs, Markdown content, and a little templating language.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;---
title: My First Post
date: 2026-09-22
tags:
  - posts
  - cats
layout: post.njk
draft: false
---

Welcome to my blog! This paragraph is **Markdown**.

This post is called &amp;quot;{{ title }}&amp;quot;.

{% if draft %}
  This sentence only appears while the post is a draft.
{% endif %}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The front matter between the two &lt;code&gt;---&lt;/code&gt; lines is metadata 11ty reads before rendering. &lt;code&gt;layout&lt;/code&gt; tells it which template to wrap the page in, &lt;code&gt;tags&lt;/code&gt; makes it part of the &lt;code&gt;posts&lt;/code&gt; collection, and &lt;code&gt;date&lt;/code&gt; is how the blog-aware sorting knows where it belongs. Everything below the second &lt;code&gt;---&lt;/code&gt; is the content file&#39;s body.&lt;/p&gt;
&lt;h3 id=&quot;validation-and-publishing&quot; tabindex=&quot;-1&quot;&gt;Validation and Publishing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hosting&lt;/strong&gt; is the service or computer that stores the output files and makes them available on the internet. Hosting is separate from writing the site, and also separate from version control.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Backend&lt;/strong&gt; is the server-side code and infrastructure that runs behind a website. It handles authentication, forms, business logic, or database queries. A purely static site does not need a backend to serve its pages.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Database&lt;/strong&gt; is similar to a spreadsheet that software can query and update. A traditional dynamic blog stores posts, comments, and settings in a database. Anytime you see &lt;code&gt;SQL&lt;/code&gt;, that&#39;s a database.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FTP (File Transfer Protocol)&lt;/strong&gt; is the protocol used to copy files between computers, commonly from your computer to a web host. It is one way to publish a site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;rsync&lt;/strong&gt; is a command-line program that synchronizes files between locations. It can copy just the files that were modified, which makes it useful for uploading a built site to a server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Link validation&lt;/strong&gt; is a nice quality-of-life feature that checks if any links go to missing pages. Some SSGs do this during the build, and others require a plugin or an external checker.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;version-control&quot; tabindex=&quot;-1&quot;&gt;Version Control&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Version control&lt;/strong&gt; is a system for recording changes to files over time so you can inspect history, compare versions, restore an earlier state, and collaborate with other people.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git&lt;/strong&gt; is one specific version-control program. It runs locally on your computer and can record the history of a project without requiring a hosting service.
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Repository&lt;/strong&gt; (or &lt;strong&gt;repo&lt;/strong&gt;) is a folder/project directory with a history managed by Git.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Commit&lt;/strong&gt; is a saved snapshot of changes in a repository, typically with a message describing the change.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remote&lt;/strong&gt; is another copy of a repository. Typically, there&#39;s a remote hosted version of the repo on Codeberg, GitHub, GitLab, or a server you control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push&lt;/strong&gt; is a command that copies commits from your local repository to a remote. And &lt;strong&gt;Pull&lt;/strong&gt; retrieves commits from a remote and incorporates them into your local repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git hosting&lt;/strong&gt; is a service that stores Git repositories and may provide extras such as issue tracking, code review, or automatic builds. This includes GitHub, GitLab, Codeberg, etc.
&lt;ul&gt;
&lt;li&gt;Git hosting is convenient, but it&#39;s good to remember that it is not the same thing as Git, and is not required to use Git.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&#39;s what publishing a new post with git looks like in the terminal:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;git init                             # turn this folder into a repository (once)
git add posts/new-post.md            # stage the file for your next commit
git commit -m &amp;quot;Add new post&amp;quot;         # save a snapshot with a message
git push                             # copy your commits to the remote
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;a-(very)-brief-history-of-static-site-generators&quot; tabindex=&quot;-1&quot;&gt;A (Very) Brief History of Static Site Generators&lt;/h2&gt;
&lt;p&gt;Now that we have all those definitions out of the way, let&#39;s actually talk about the context of static-site generators.&lt;/p&gt;
&lt;p&gt;SSGs didn&#39;t start with Jekyll. The idea of separating your writing from the code goes back to the mid-1990s. A really early example is &lt;a href=&quot;https://github.com/mbethke/hsc&quot;&gt;HSC&lt;/a&gt; (&amp;quot;HTML Sucks Completely&amp;quot;), an HTML preprocessor Thomas Aglassinger released in 1996. The term &amp;quot;static site generator&amp;quot; wouldn&#39;t exist for another decade or so, but HSC already had includes, conditionals, and link validation.&lt;/p&gt;
&lt;p&gt;For most of the late 90s and 2000s, the mainstream answer to &amp;quot;how do I blog&amp;quot; wasn&#39;t static. It was hosted, dynamic services like Blogger, LiveJournal, and Open Diary. Or full-stack tools with databases and a backend, like WordPress. The one exception was &lt;a href=&quot;https://www.movabletype.org/&quot;&gt;Movable Type&lt;/a&gt;, a Perl-based platform Ben and Mena Trott built in 2001 that did something clever: every time you published through its web GUI, it rebuilt your blog into plain static HTML files behind the scenes. You weren&#39;t using the terminal, but the output was static. Movable Type was one of the first tools to bring the benefits of a static site for people who never typed a &lt;code&gt;build&lt;/code&gt; command.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/nanoc/nanoc&quot;&gt;Nanoc&lt;/a&gt; was built by Denis Defreyne in 2007 after finding all Ruby-based CMSes ran painfully slow on the 96MB VPS he was using. Nanoc introduced layouts, page metadata, Markdown support, and plugins. It was a year later, in December 2008, that GitHub co-founder Tom Preston-Werner released Jekyll, out of frustration with complex blogging engines like WordPress. Jekyll built on Nanoc&#39;s ideas and added two things: front matter (the YAML block of metadata at the top of every content file) and being &amp;quot;blog-aware&amp;quot; out of the box, meaning you could put Markdown files in a folder and it would turn them into a blog with no extra setup. GitHub launched &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub Pages&lt;/a&gt; alongside Jekyll as free static hosting, and that combination is a large reason why Jekyll popularized SSGs for many, including myself.&lt;/p&gt;
&lt;p&gt;Everything since has really been reinvention and iteration on the same idea in different languages. Some prospered and some failed. &lt;a href=&quot;https://octopress.org/&quot;&gt;Octopress&lt;/a&gt; (RIP) and &lt;a href=&quot;https://middlemanapp.com/&quot;&gt;Middleman&lt;/a&gt; iterated on SSGs in Ruby. &lt;a href=&quot;https://getpelican.com/&quot;&gt;Pelican&lt;/a&gt; and &lt;a href=&quot;https://hydephp.com/&quot;&gt;Hyde&lt;/a&gt; are Python-based and Laravel-based SSGs, respectively.&lt;/p&gt;
&lt;p&gt;In July 2013, Steve Francia released &lt;a href=&quot;https://gohugo.io/&quot;&gt;Hugo&lt;/a&gt;, written in Go and compiled to a single binary. This was far simpler relative to Jekyll: there was no entire Ruby environment you had to install, or gem versioning you needed to wrestle with, and Hugo is fast enough to render thousands of pages in seconds.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://11ty.dev/&quot;&gt;Eleventy (11ty)&lt;/a&gt; was created by &lt;a href=&quot;https://zachleat.com/&quot;&gt;Zach Leatherman&lt;/a&gt; in late 2017 as an agnostic alternative to Jekyll, using JavaScript and NPM instead. Whereas Jekyll required you to use the Liquid language, 11ty lets you use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTML &lt;code&gt;*.html&lt;/code&gt;, Markdown &lt;code&gt;*.md&lt;/code&gt;, WebC &lt;code&gt;*.webc&lt;/code&gt;, JavaScript &lt;code&gt;*.11ty.js&lt;/code&gt;, Liquid &lt;code&gt;*.liquid&lt;/code&gt;, Nunjucks &lt;code&gt;*.njk&lt;/code&gt;, Handlebars &lt;code&gt;*.hbs&lt;/code&gt;, Mustache &lt;code&gt;*.mustache&lt;/code&gt;, EJS &lt;code&gt;*.ejs&lt;/code&gt;, Haml &lt;code&gt;*.haml&lt;/code&gt;, Pug &lt;code&gt;*.pug&lt;/code&gt;, TypeScript &lt;code&gt;*.ts&lt;/code&gt;, JSX &lt;code&gt;*.jsx&lt;/code&gt;, MDX &lt;code&gt;*.mdx&lt;/code&gt;, Sass &lt;code&gt;*.scss&lt;/code&gt;, and even Custom &lt;code&gt;*.*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://jamstack.org/generators/&quot;&gt;Jamstack.org&lt;/a&gt; has a full list of different SSGs, if you happen to have experience in a specific programming language and want to leverage that.&lt;/p&gt;
&lt;p&gt;Something important I want to note is that some of these generators haven&#39;t been updated in years. And guess what? That&#39;s actually usually fine! The &amp;quot;static&amp;quot; part of SSGs means there&#39;s no backend or database to hack. Another benefit is that security isn&#39;t something you need to worry about. Did your favourite SSG add genAI slop in the newest update? Just never update. Your SSG will continue working and building your site the way it is now indefinitely. Hurray!&lt;/p&gt;
&lt;h2 id=&quot;why-is-git-always-recommended%3F&quot; tabindex=&quot;-1&quot;&gt;Why is git always recommended?&lt;/h2&gt;
&lt;p&gt;Aside from programmers just finding git to be the status quo default, I think a lot of the assumptions regarding git are due to the fact that Jekyll, the first popular SSG, &lt;a href=&quot;https://github.com/jekyll/jekyll&quot;&gt;began as a GitHub-specific project&lt;/a&gt;. Using GitHub (or Codeberg, or GitLab, etc.) answers the question &amp;quot;where do the files live?&amp;quot; which is in the repository. Neocities/Nekoweb answer this by you uploading your files onto the site.&lt;/p&gt;
&lt;p&gt;When you use something like Codeberg Pages or &lt;a href=&quot;https://docs.gitlab.com/user/project/pages/&quot;&gt;GitLab Pages&lt;/a&gt;, a lot is happening underneath the hood, and every time you upload or edit a file, it &lt;em&gt;is&lt;/em&gt; being committed and pushed with git, you just aren&#39;t running the commands yourself manually via the terminal or GUI interface.&lt;/p&gt;
&lt;p&gt;If you&#39;re self-hosting, then the answer is just your own computer, somewhere like the &lt;code&gt;/var/www/html&lt;/code&gt; folder if you&#39;re on Linux. If you have a &lt;a href=&quot;https://tildeverse.org/&quot;&gt;Tildeverse&lt;/a&gt; account (which is yet another rabbit hole), then your files would live on the publicly-shared computer. Here&#39;s my &lt;a href=&quot;https://tilde.town/~brennan/&quot;&gt;Tilde.town site&lt;/a&gt; for example, where I use the command &lt;code&gt;rsync&lt;/code&gt; to upload my local files from my computer to the tilde.town computer and they&#39;re hosted automatically.&lt;/p&gt;
&lt;p&gt;There are two different things git is actually doing here, and they&#39;re easy to conflate.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Version history (so you can undo a bad edit or see what changed and when)&lt;/li&gt;
&lt;li&gt;Hosting (somewhere for the built files to actually live).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You don&#39;t need git for either one. &lt;code&gt;rsync&lt;/code&gt;, an FTP client, or dragging files into a browser upload window all work fine for hosting. And you can take care of backups for your own small personal site instead of worrying about version history. Git just happens to solve both problems at once and for free, which is why it often becomes the path of least resistance.&lt;/p&gt;
&lt;h2 id=&quot;theory-vs.-practice&quot; tabindex=&quot;-1&quot;&gt;Theory vs. Practice&lt;/h2&gt;
&lt;p&gt;On paper:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You take Markdown files in a &lt;code&gt;posts/&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;They&#39;re rendered with a template in a &lt;code&gt;layout/&lt;/code&gt; folder
&lt;ul&gt;
&lt;li&gt;Which has modules of HTML in &lt;code&gt;partials/&lt;/code&gt; like &lt;code&gt;header.html&lt;/code&gt; and &lt;code&gt;footer.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;And there&#39;s probably a &lt;code&gt;config.yml&lt;/code&gt; file in the root or something similar where you can edit the parameters of the site, like the name, colours, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;That &lt;code&gt;config.yml&lt;/code&gt; handles site-wide settings, but most SSGs also give each individual post its own small metadata block, usually called front matter, sitting at the top of the file between two lines of &lt;code&gt;---&lt;/code&gt;.
&lt;ul&gt;
&lt;li&gt;That&#39;s where a single post&#39;s title, publish date, and tags live, separate from the global config, so the generator knows how to sort and label a page without you having to name it &lt;code&gt;&amp;quot;2024-03-14-my-post-title.md&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In practice, it is far more complicated. The process of taking all of the above and outputting it to a rendered static site (say, into a &lt;code&gt;/_site&lt;/code&gt; folder) requires a programming language to process it.&lt;/p&gt;
&lt;p&gt;Most popular SSGs &lt;em&gt;try&lt;/em&gt; to make this simple: you run a command like &lt;code&gt;hugo build&lt;/code&gt; or &lt;code&gt;npx @11ty/eleventy --serve&lt;/code&gt; in the terminal, and that will do the above.&lt;/p&gt;
&lt;p&gt;(That &lt;code&gt;--serve&lt;/code&gt; flag will start a local server on your computer, and regenerate the site anytime you edit the source files, rather than just building once and quitting. That&#39;s what makes editing a static site feel nearly as immediate as editing a live page.)&lt;/p&gt;
&lt;p&gt;Platforms like &lt;a href=&quot;https://netlify.app/&quot;&gt;Netlify&lt;/a&gt; (or the self-hosted &lt;a href=&quot;https://coolify.io/&quot;&gt;Coolify&lt;/a&gt;) essentially have a restricted remote computer that will detect which SSG you&#39;re using and run the appropriate command automatically, and your &lt;code&gt;/_site&lt;/code&gt; is then hosted at &lt;code&gt;yoursitename.netlify.app&lt;/code&gt; similar to how you&#39;d manually upload your own HTML files to Neocities and have your site hosted at &lt;code&gt;yoursitename.neocities.org&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There are other platforms that do the same (that I would not personally recommend): &lt;a href=&quot;https://vercel.com/&quot;&gt;Vercel&lt;/a&gt;, &lt;a href=&quot;https://developers.cloudflare.com/pages/&quot;&gt;Cloudflare Pages&lt;/a&gt;, &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub Pages&lt;/a&gt;, and &lt;a href=&quot;https://surge.sh/&quot;&gt;surge.sh&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But all of the above has &lt;em&gt;a lot&lt;/em&gt; of assumptions built-in: you&#39;ve done everything perfectly, &lt;em&gt;and&lt;/em&gt; the programming language used to build the site installed correctly, &lt;em&gt;and&lt;/em&gt; you know how to use the terminal. &lt;a href=&quot;https://xkcd.com/2501/&quot;&gt;This XKCD comic&lt;/a&gt; on average familiarity comes to mind.&lt;/p&gt;
&lt;p&gt;If you have a typo anywhere important that breaks something (which could be as innocuous as an extra comma somewhere) the entire thing is fragile enough to break either during the initialization or build process, and the error message is designed for the programming language, &lt;em&gt;not&lt;/em&gt; the SSG. Which means you&#39;ll get a very technical output. Here&#39;s an example of a &lt;a href=&quot;https://paste.lol/brennan/netlify-error.md&quot;&gt;failed Netlify build&lt;/a&gt; my site had recently simply because I had a trailing comma in the file that stores JSON.&lt;/p&gt;
&lt;p&gt;If you don&#39;t have the stubbornness that masochistic programmers (like me) have, it&#39;s very understandable that you see the above error and go &amp;quot;fuck that&amp;quot; and just handroll your HTML, or use a CMS, or just don&#39;t make a site at all. That last one is the most heartbreaking to me.&lt;/p&gt;
&lt;h2 id=&quot;my-starters%2Fthemes&quot; tabindex=&quot;-1&quot;&gt;My Starters/Themes&lt;/h2&gt;
&lt;p&gt;The way I learned was by taking pre-made starters/themes others have made (as others in this thread have recommended) and tinkering with them. Then, I started to get proficient enough to make my own. If you want to get to know an SSG, I hope I can recommend these, as they have good-enough documentation/guides and are designed to be instructive for beginners:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/brennanbrown/indiepaper&quot;&gt;IndiePaper&lt;/a&gt;&lt;/strong&gt; is a Hugo starter I made with all the IndieWeb stuff built-in (microformats2, h-card, etc.), where you put your posts in the &lt;a href=&quot;https://github.com/brennanbrown/indiepaper/tree/main/exampleSite/content/post&quot;&gt;&lt;code&gt;/post&lt;/code&gt;&lt;/a&gt; folder and edit the &lt;a href=&quot;https://github.com/brennanbrown/indiepaper/blob/main/hugo.toml&quot;&gt;&lt;code&gt;hugo.toml&lt;/code&gt;&lt;/a&gt; file to customize.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/brennanbrown/11ty-Indie-Web-Blog-Starter&quot;&gt;11ty-Indie-Web-Blog-Starter&lt;/a&gt;&lt;/strong&gt; is an 11ty starter I made from the ground-up based on my own site, where you put your posts in the &lt;a href=&quot;https://github.com/brennanbrown/11ty-Indie-Web-Blog-Starter/tree/main/src/posts&quot;&gt;&lt;code&gt;/posts&lt;/code&gt;&lt;/a&gt; folder and edit the &lt;a href=&quot;https://github.com/brennanbrown/11ty-Indie-Web-Blog-Starter/blob/main/src/_data/site.js&quot;&gt;&lt;code&gt;site.js&lt;/code&gt;&lt;/a&gt; file to customize.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/brennanbrown/watery&quot;&gt;Watery&lt;/a&gt;&lt;/strong&gt; is a Jekyll starter I made ages ago, where you put your posts in &lt;a href=&quot;https://github.com/brennanbrown/watery/tree/main/_posts&quot;&gt;&lt;code&gt;/_posts&lt;/code&gt;&lt;/a&gt; and edit the &lt;a href=&quot;https://github.com/brennanbrown/watery/blob/main/_config.yml&quot;&gt;&lt;code&gt;_config.yml&lt;/code&gt;&lt;/a&gt; file to customize.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these themes are minimal and plain (and kinda ugly) because the actual CSS styling and design aspects are left to the user.&lt;/p&gt;
&lt;h2 id=&quot;other-(simpler)-alternatives&quot; tabindex=&quot;-1&quot;&gt;Other (Simpler) Alternatives&lt;/h2&gt;
&lt;p&gt;All the SSGs I used above are very popular ones, but there are many more relatively simple options out there. Like &lt;a href=&quot;https://git.sr.ht/~bt/barf&quot;&gt;barf&lt;/a&gt; and &lt;a href=&quot;https://github.com/cfenollosa/bashblog&quot;&gt;bashblog&lt;/a&gt; and &lt;a href=&quot;https://tomotama.com/kiki&quot;&gt;kiki&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://git.sr.ht/~bt/barf&quot;&gt;&lt;strong&gt;barf&lt;/strong&gt;&lt;/a&gt; (blogs are really fun) is a shell script by btxx that&#39;s only 170 lines. It&#39;s forked from &lt;a href=&quot;https://github.com/karlb/karl.berlin&quot;&gt;Karl Bartel&#39;s blog.sh&lt;/a&gt;. There&#39;s no front matter and no templating, you just write Markdown files, run &lt;code&gt;make build&lt;/code&gt;, and it produces a &lt;code&gt;build/&lt;/code&gt; folder you rsync to your server. It generates valid RSS automatically, runs natively on Linux, macOS, and OpenBSD, and the stylesheet is four lines of CSS. You can read the &lt;a href=&quot;https://git.btxx.org/barf/about&quot;&gt;README&lt;/a&gt; or view a &lt;a href=&quot;https://barf.btxx.org/&quot;&gt;live demo&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cfenollosa/bashblog&quot;&gt;&lt;strong&gt;bashblog&lt;/strong&gt;&lt;/a&gt; is a single ~1,000-line &lt;code&gt;bb.sh&lt;/code&gt; script with zero dependencies, using base Unix utilities such as &lt;code&gt;date&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, and &lt;code&gt;head&lt;/code&gt;. Carlos Fenollosa built the first version in 2011, &lt;a href=&quot;https://cfenollosa.com/blog/creating-a-simple-blog-system-with-a-500-line-bash-script.html&quot;&gt;writing about it on his own blog&lt;/a&gt;, and it&#39;s still maintained today. You download &lt;code&gt;bb.sh&lt;/code&gt;, put it in a public folder on your server, and run &lt;code&gt;./bb.sh post&lt;/code&gt; to start writing. It handles drafts, tags, Markdown, and RSS out of the box, no installation step at all. If you want more features, there&#39;s a community fork called &lt;a href=&quot;https://github.com/DavidSatimeWallin/bashblog-ng&quot;&gt;bashblog-ng&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tomotama.com/kiki&quot;&gt;&lt;strong&gt;kiki&lt;/strong&gt;&lt;/a&gt; is by vga256 and self-describes as &amp;quot;a tiny homepage construction kit with a small footprint&amp;quot;. It uses PHP rather than shell, and it can run as either a live dynamic site or generate a static one, and also double as a public wiki or (in preliminary form) a Gopher hole. It&#39;s shareware and free with a footer credit, or pay $15 CAD and get additional features. It&#39;s 1,500 lines of hand-written code, zero JavaScript and zero external dependencies. It&#39;s a great option if you have a host that only allows PHP and doesn&#39;t give shell access.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And here are a few others:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rgz.ee/bin/ssg5&quot;&gt;&lt;strong&gt;ssg&lt;/strong&gt;&lt;/a&gt; is Roman Zolotarev&#39;s POSIX-compliant shell script. It&#39;s the inspiration for several of the others on this list; there&#39;s a Python rewrite called &lt;a href=&quot;https://pypi.org/project/pyssg/&quot;&gt;pyssg&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jroimartin/sw&quot;&gt;&lt;strong&gt;sw&lt;/strong&gt;&lt;/a&gt; is a minimal web framework written in C, and the fork &lt;a href=&quot;https://github.com/wlangstroth/simple-static&quot;&gt;&lt;strong&gt;simple-static&lt;/strong&gt;&lt;/a&gt; strips it down further into what its README calls &amp;quot;the simplest static site generator I can think of.&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/sunainapai/makesite&quot;&gt;&lt;strong&gt;makesite.py&lt;/strong&gt;&lt;/a&gt; is a Python equivalent of barf and bashblog. It&#39;s under 130 lines and built by Sunaina Pai around the idea that &amp;quot;the code is the documentation.&amp;quot; The idea being that there&#39;s nothing to configure that you can&#39;t just read and edit directly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of these alternatives have anywhere near the features that Hugo or 11ty have, but as a result, they also don&#39;t have the complexity.&lt;/p&gt;
&lt;p&gt;Finally, you may also be interested in making &lt;a href=&quot;http://plaintext.brennan.day/creating-a-blog-in-gemini/&quot;&gt;a blog in Gemini://&lt;/a&gt; which is an entirely different rabbit hole I&#39;ve been getting into recently, and eliminates the need to generate anything at all.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I use SSGs because if I were to handroll the HTML for my site, then I&#39;d have to copy-paste the header and footer for every page, and SSGs take care of that kind of thing. I go into more detail about this in my &lt;a href=&quot;http://plaintext.brennan.day/softcore-first-hardcore-eventually-a-ladder-for-the-indieweb/&quot;&gt;IndieWeb ladder article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To me, I don&#39;t care how you webweave or what method you use to get your work online, as long as you&#39;re participating and trying, I think you&#39;re succeeding! Give my &lt;a href=&quot;http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/&quot;&gt;WEBMASTER@ manifesto&lt;/a&gt; a read if you haven&#39;t already. Static-site generators are just one of many ways to get into webweaving, and I certainly hope you join us--however that looks.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>LLMs Democratize Extraction and Scale Malice</title>
		<link href="http://plaintext.brennan.day/llms-democratize-extraction-and-scale-malice/"/>
		<updated>2026-09-21T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/llms-democratize-extraction-and-scale-malice/</id>
		<content type="html">&lt;p&gt;In a post a few months ago, &lt;a href=&quot;https://tante.cc/2026/04/01/dissolving-the-social/&quot;&gt;Tante wrote that&lt;/a&gt; &amp;quot;&#39;AI&#39; exists to disenfranchise labor,&amp;quot; and earlier today, Coyote posted a &lt;a href=&quot;https://osteophage.neocities.org/essays/responses/disowning-your-data&quot;&gt;short essay&lt;/a&gt; on what data ownership truly means for the IndieWeb when we&#39;re subject to genAI scrapers, extractors, and bad-faith actors.&lt;/p&gt;
&lt;p&gt;On a similar note, maybe your inbox has recently been flooded by &lt;a href=&quot;https://tedium.co/2026/09/11/ilands-agents-email-spam-kaixin-tang/&quot;&gt;iLands genAI agents&lt;/a&gt;, as &lt;a href=&quot;https://www.gordonmclean.co.uk/2026/09/19/i-received-an-ai-email/&quot;&gt;Gordon&lt;/a&gt; and &lt;a href=&quot;https://cleberg.net/blog/ai-email.html&quot;&gt;cleberg&lt;/a&gt; have recently written about. Or maybe you&#39;re an administrator for &lt;a href=&quot;https://arstechnica.com/ai/2026/09/ai-agents-flood-the-internet-with-slop-infused-spam/&quot;&gt;a Mastodon instance&lt;/a&gt; that&#39;s been flooded with users who turn out to be AI agents.&lt;/p&gt;
&lt;p&gt;And this is happening at the same time that Anthropic researchers warn &lt;a href=&quot;https://www.theguardian.com/technology/2026/sep/09/anthropic-researchers-ai-human-extinction&quot;&gt;AI could cause human extinction by 2030&lt;/a&gt;. This is happening at the same time that Nvidia CEO, Jensen Huang, announces that &lt;a href=&quot;https://www.businessinsider.com/nvidia-jensen-huang-agi-openai-astra-ai-2026-9&quot;&gt;Artificial General Intelligence has arrived&lt;/a&gt;. Which, I&#39;m sure, has nothing to do with him running &lt;a href=&quot;https://isaiprofitable.com/&quot;&gt;the only company&lt;/a&gt; that&#39;s been profitable due to genAI.&lt;/p&gt;
&lt;p&gt;Hm.&lt;/p&gt;
&lt;p&gt;This post began as a response to Coyote&#39;s short essay, about how we need &amp;quot;personal control&amp;quot; and an &amp;quot;assertion of boundaries&amp;quot; for our data. That we need to practice &amp;quot;resistance over infinite intrusion&amp;quot; and &amp;quot;autonomy and solidarity&amp;quot; in response.&lt;/p&gt;
&lt;p&gt;I agree, but I&#39;m not sure I have an answer as to how, and the problem seems far more existential than just that. I frankly admit that my earlier philosophy and tactic of &lt;a href=&quot;http://plaintext.brennan.day/apathetic-intentionally-why-i-dont-block-ai-scrapers-on-my-website/&quot;&gt;apathy and ignorance&lt;/a&gt; are no longer sufficient.&lt;/p&gt;
&lt;p&gt;Years ago, when the IndieWeb movement was founded, people had the idea that having their own website would prevent the extractive, surveillance-style dark patterns that corporate social media use. You would no longer have to worry about the black box of scripts, cookies, pixel trackers, and HTML fingerprints building a profile of you that would be bought and sold across various marketers (and governments).&lt;/p&gt;
&lt;p&gt;And for a while, I think that was true. Sure, &lt;a href=&quot;https://www.theverge.com/2018/4/11/17225482/facebook-shadow-profiles-zuckerberg-congress-data-privacy&quot;&gt;shadow profiles&lt;/a&gt; exist, where your data is collected by other means and used even if you don&#39;t have an account, but you were still creating on a sovereign Internet.&lt;/p&gt;
&lt;p&gt;But now, you don&#39;t need to be a multi-billion dollar corporation. You can deploy a genAI agent to scrape and extract data from any website, and use that data to try to make money yourself. What used to require software engineers and marketers and addiction psychologists is now ubiquitous and accessible to anyone (who&#39;s willing to pay the upfront cost of tokens).&lt;/p&gt;
&lt;p&gt;This has been a large part as to why I&#39;ve become interested in &lt;a href=&quot;http://plaintext.brennan.day/creating-a-blog-in-gemini/&quot;&gt;the Gemini Project&lt;/a&gt;, as I believed this could be a way to continue cultivating a more-human Internet. Unfortunately, I learned only yesterday about &lt;a href=&quot;https://portal.mozz.us/gemini/sava.rocks/blog/when-the-small-web-gets-an-ai-door/&quot;&gt;Gopher-MCP&lt;/a&gt;, designed to allow genAI agents to interface with Gopher and Gemini protocols.&lt;/p&gt;
&lt;p&gt;I&#39;ve seen creative ways people have tried to make their websites resistant to genAI beyond adding a &lt;code&gt;robots.txt&lt;/code&gt; file. Be it having a tricky-to-navigate false homepage, eliminating easy extraction methods like disabling RSS, or creating honeypots at certain URLs (which &lt;a href=&quot;https://brennan.day/metadata/v1/*&quot;&gt;I&#39;ve done myself&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Alas, all of these are band-aid solutions to a systemic problem. I&#39;m all for &lt;a href=&quot;https://guides.douglascollege.ca/c.php?g=729501&amp;amp;p=5234362&quot;&gt;open culture&lt;/a&gt;, and my blog posts are in the Creative Commons, but are genAI and other content mills honouring the required &lt;a href=&quot;https://pitt.libguides.com/openlicensing/cc-sharealike&quot;&gt;ShareAlike&lt;/a&gt; clause of my work? No, of course not.&lt;/p&gt;
&lt;p&gt;This extraction is nothing new. What&#39;s novel here is the scale and, again, accessibility. Nearly everyone on an IndieWeb forum I browse has been spammed by iLands agents because someone decided to scrape the public boards of the forum; so long as people have the money, and so long as the hardware exists, we will only get more proliferation of this annoying grey goo-esque slop of incompetent spam and data extraction.&lt;/p&gt;
&lt;h2 id=&quot;ai-2027&quot; tabindex=&quot;-1&quot;&gt;AI 2027&lt;/h2&gt;
&lt;p&gt;At the start of April last year, a website was published up called &lt;a href=&quot;https://ai-2027.com/&quot;&gt;AI 2027&lt;/a&gt; speculating on the cascading, catastrophic consequences we will globally face due to the accelerating developments in generative AI. It&#39;s certainly an interesting read, especially now that we&#39;re nearly at the end of 2026, to see what was guessed at correctly and incorrectly so far.&lt;/p&gt;
&lt;p&gt;When we take a step back and examine what&#39;s been going on, and what narratives we&#39;re being told about generative artificial intelligence, both in its current form and the upcoming delta of change, there are two realities:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The first is that we are still working with the same frustrating, irritating slop; these LLMs seem stuck and stagnant, and that it&#39;s only becoming more capable at spreading and more ubiquitous, but still often fails the simplest tasks (those iLands spam emails, for example, don&#39;t actually provide a way for people to actually pay them money). That the only tangible difference between loading up ChatGPT and deploying an expensive agent is that the agent has far more vectors to be annoying. If you&#39;ve had the displeasure of reading any messages written by agents, you understand what I mean.&lt;/li&gt;
&lt;li&gt;The second is that we are on the cusp of collective artificial intelligence becoming autonomous, while also becoming so exponentially more intelligent than humanity that it could be apocalyptic.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I think anybody who&#39;s been able to not fall into the throes of genAI (&lt;a href=&quot;https://www.cambridge.org/core/journals/bjpsych-open/article/artificial-intelligence-ai-psychosis-mechanisms-clinical-risks-and-safety-considerations-in-generative-ai-chatbots/04B53C8C3E11C7B4B0DC7E665B6A317A&quot;&gt;psychosis&lt;/a&gt; or otherwise) can see that these models are still just large language models. The fundamental mechanics of how they&#39;re built and operate greatly limit their capabilities. There is (thankfully) a dark, impossible ceiling that cannot be breached with this current iteration of artificial intelligence.
But that has not deterred many people with a lot of money and power. The data centres &lt;a href=&quot;https://grist.org/health/former-epa-officials-trump-is-letting-data-centers-make-people-sick/&quot;&gt;making people sick&lt;/a&gt; are still being constructed, and every product and service still continues to inappropriately shove genAI into the faces of consumers and end-users.&lt;/p&gt;
&lt;p&gt;And we have made innovations, regardless of these limitations, just different ones. GenAI is no longer limited to chat windows and API calls; it&#39;s now given &lt;a href=&quot;https://appleinsider.com/articles/26/07/27/claude-cowork-can-escape-its-sandbox-rummage-through-all-of-your-files&quot;&gt;root access&lt;/a&gt; with &lt;a href=&quot;https://eu.36kr.com/en/p/3965936673054211&quot;&gt;destructive consequences&lt;/a&gt;. &amp;quot;Swarms&amp;quot; of agents are &lt;a href=&quot;https://www.cbc.ca/news/canada/openai-university-toronto-rogue-agents-link-shortener-ai-9.7349607&quot;&gt;using the Internet in unpredictable ways&lt;/a&gt;, costing &lt;a href=&quot;https://the-decoder.com/ai-agent-swarms-are-a-massive-waste-of-tokens-with-zero-quality-gain-says-openai-codex-developer/&quot;&gt;huge amounts of tokens&lt;/a&gt;, which is a euphemism for money and energy lost.&lt;/p&gt;
&lt;p&gt;And this is why I initially thought patience would win out, given how obviously foolish and expensive this endeavour continues to be. And yet it continues and escalates and only has gotten worse with time.&lt;/p&gt;
&lt;h2 id=&quot;what-do-we-do%3F&quot; tabindex=&quot;-1&quot;&gt;What Do We Do?&lt;/h2&gt;
&lt;p&gt;Tools already exist to make extraction more expensive--the community-maintained &lt;a href=&quot;https://github.com/ai-robots-txt/ai.robots.txt&quot;&gt;ai.robots.txt&lt;/a&gt; list is a good start. If your work is visual, &lt;a href=&quot;https://glaze.cs.uchicago.edu/index.html&quot;&gt;Glaze and Nightshade&lt;/a&gt;, out of the University of Chicago, let you cloak or poison images. Spawning&#39;s &lt;a href=&quot;https://haveibeentrained.com/&quot;&gt;Have I Been Trained&lt;/a&gt; registry can help you opt out of extraction (though it&#39;s currently under maintenance).&lt;/p&gt;
&lt;p&gt;Individual bloggers and artists can only do so much, though. I look to the workers who are being pushed to build and deploy the tools hollowing out humanity: The Tech Workers Coalition&#39;s &lt;a href=&quot;https://techworkerscoalition.org/blog/2025/12/12/workersdecide-tech-resources-to-fight-ai-sloppification-at-work/&quot;&gt;workersdecide.tech&lt;/a&gt; project is a set of resources for organizing against AI mandates at work. The Alphabet Workers Union-CWA has an &lt;a href=&quot;https://www.alphabetworkersunion.org/our-campaigns&quot;&gt;AI committee&lt;/a&gt; fighting for protections. Groups like the &lt;a href=&quot;https://futureoflife.org/press-release/fli-launches-multimillion-dollar-nationwide-ai-regulation-campaign/&quot;&gt;Future of Life Institute&lt;/a&gt; and the &lt;a href=&quot;https://en.wikipedia.org/wiki/Distributed_Artificial_Intelligence_Research_Institute&quot;&gt;Distributed AI Research Institute&lt;/a&gt; are building a public case for regulation and centering the people AI harms most.&lt;/p&gt;
&lt;p&gt;If you&#39;re someone who&#39;s found themselves dependent on genAI, know that you&#39;re not alone and it isn&#39;t your fault. The sycophantic nature of these LLMs is designed to pull you in. There are &lt;a href=&quot;https://www.airecoverycollective.com/home&quot;&gt;recovery collectives&lt;/a&gt; and the best thing you can do for yourself is come clean and admit there&#39;s a problem.&lt;/p&gt;
&lt;p&gt;Finally, the &lt;a href=&quot;https://www.gida-global.org/care&quot;&gt;CARE Principles for Indigenous Data Governance&lt;/a&gt; (Collective Benefit, Authority to Control, Responsibility, Ethics) and, specifically for First Nations, the &lt;a href=&quot;https://fnigc.ca/wp-content/uploads/2022/10/OCAP_Brochure_20220927_web.pdf&quot;&gt;OCAP principles&lt;/a&gt; (Ownership, Control, Access, Possession) exist because generations of data have been taken from our communities without consent, and used against us.&lt;/p&gt;
&lt;p&gt;I love people, and I know people are inherently good. But that does not mean good people will act when they need to. As important as reclaiming joy and preserving our hope are to activism, we need more than that. We need direct action, we need righteous fury to be channelled. We need people willing to sacrifice and risk themselves for the next generation. There seems to be this epidemic of the bystander effect. People need to remember that &lt;a href=&quot;http://plaintext.brennan.day/deeds-not-words-the-myth-of-polite-revolution/&quot;&gt;polite revolution is a non-existent oxymoron&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I think of the Audre Lorde quote, how &lt;a href=&quot;https://theanarchistlibrary.org/library/audre-lorde-the-master-s-tools-will-never-dismantle-the-master-s-house&quot;&gt;&amp;quot;the master&#39;s tools will never dismantle the master&#39;s house.&amp;quot;&lt;/a&gt; We must stop using these products, and urge others to as well. And those who work for companies that have dystopian genAI quotas must speak up.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Creating a Blog in Gemini://</title>
		<link href="http://plaintext.brennan.day/creating-a-blog-in-gemini/"/>
		<updated>2026-09-19T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/creating-a-blog-in-gemini/</id>
		<content type="html">&lt;p&gt;Welcome to my third post on Gemini and the alternative Internets and smallnets! This is going to be my most helpful and detailed article on the topic yet--and it&#39;s something I&#39;m excited to get into.&lt;/p&gt;
&lt;p&gt;If you&#39;d like a history and explanation of what Gemini is, read my first post, &lt;a href=&quot;http://plaintext.brennan.day/gemini-gophers-and-fingers-oh-my-alternative-internets-beyond-https/&quot;&gt;&amp;quot;Gemini, Gophers, and Fingers. Oh My! Alternative Internets Beyond HTTPS&amp;quot;&lt;/a&gt;. My second article, &lt;a href=&quot;http://plaintext.brennan.day/oldnets-and-altnets-a-guide-to-building-a-low-spec-daily-internet-out-of-gemini-gopher-and-terminal-tools/&quot;&gt;&amp;quot;Oldnets and Altnets: A Guide to Building a Low-Spec Daily Internet Out of Gemini, Gopher, and Terminal Tools&amp;quot;&lt;/a&gt; was aimed more at resources that would allow people to use older hardware to connect to the Internet in general.&lt;/p&gt;
&lt;p&gt;This, however, is going to be only about Gemini (and a little of Gopher and Spartan, too). Because I realized that I only really explored the surface-level of what this protocol has to offer. While there are interesting things to read (which I&#39;ll be linking to), this guide is aimed more at creation, socialization, and interactivity that&#39;s possible on Gemini.&lt;/p&gt;
&lt;p&gt;But if you want a tl;dr, Gemini is a modern, minimal Internet protocol alternative to &lt;code&gt;https://&lt;/code&gt;, and requires a different Internet browser to use it. It was built in 2019 by a pseudonymous developer who goes by Solderpunk, and instead of HTML, every page is written in &lt;a href=&quot;https://geminiprotocol.net/docs/gemtext-specification.gmi&quot;&gt;Gemtext&lt;/a&gt;, which is a stripped-down format with only headings, links, and lists. Every connection runs over TLS on port 1965, and it&#39;s one request, one response, then the connection closes.&lt;/p&gt;
&lt;h2 id=&quot;blogging-on-gemini%3A-why%3F&quot; tabindex=&quot;-1&quot;&gt;Blogging on Gemini: Why?&lt;/h2&gt;
&lt;p&gt;First, I want to answer why someone would want to blog on Gemini compared to the widely-used, popular clearnet (which is &lt;code&gt;https://&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;To start, you may have read headlines about how &lt;a href=&quot;https://www.popularmechanics.com/science/a73753782/ai-agent-taking-over-internet/&quot;&gt;AI swarms could take over the Internet soon&lt;/a&gt;, which sounds rather terrifying. While I think the wording is alarmist, I think we can all agree that there has been an annoying increase of generative AI and agents on the Internet lately. With Gemini, you avoid all of that. There&#39;s no real viable revenue (and it&#39;s also obscure in general) meaning there&#39;s just humans in that part of cyberspace.&lt;/p&gt;
&lt;p&gt;Next, you don&#39;t need to worry about the technical complexity of JavaScript or CSS. Hell, you don&#39;t even need to worry about HTML. All your content will be in the &lt;a href=&quot;https://gmi.sbgodin.fr/htmgem/docs/tutogemtext-en.gmi&quot;&gt;Gemtext format&lt;/a&gt;, which can be understood as being an even simpler version of Markdown. (I also created &lt;a href=&quot;https://gemtext.brennan.day/&quot;&gt;an easy-to-use converter&lt;/a&gt; as well.) This means that you don&#39;t have to spend time and effort worrying about design or troubleshooting anything. This means you have a space where you&#39;re compelled to focus on the craft of writing, and to be more mindful of blogging. There&#39;s nothing else to distract you.&lt;/p&gt;
&lt;p&gt;Of course, for some people that&#39;s the &lt;em&gt;fun&lt;/em&gt; of creating things on the web. But if you want to have your work online before learning all of that, Gemini is a great place to start. As I&#39;ve said before, being a webweaver means you wear a lot of different hats, and it can be overwhelming to try to learn how to be a better writer, web developer, and UX designer all at the same time, and starting with Gemini helps in that sense. You can always convert your files into Markdown and create a webpage proper with them at a later point in time.&lt;/p&gt;
&lt;p&gt;Now, there&#39;s nothing you can&#39;t do on the clearnet that you can do in Gemini, but I like to make the comparison of the popular, small eink reader &lt;a href=&quot;https://www.xteink.com/&quot;&gt;Xteink&lt;/a&gt; which is designed to go on the back of your phone. Can you easily read the same content on your bigger phone screen? Yes, but the eink reader is limited by design. It&#39;s a different, and arguably better experience.&lt;/p&gt;
&lt;p&gt;Or maybe you want more privacy while still being public. Your audience in the Geminispace is much smaller, and it&#39;s also much more intentional because of that.&lt;/p&gt;
&lt;p&gt;Finally, as I&#39;ve mentioned in my previous posts, Gemini is far less resource-intensive compared to the regular Internet. You can use Gemini entirely from a terminal-based browser, meaning that any hardware you have that can&#39;t handle the modern web still has a way to get online again.&lt;/p&gt;
&lt;h2 id=&quot;blogging-platforms-for-gemini&quot; tabindex=&quot;-1&quot;&gt;Blogging Platforms for Gemini&lt;/h2&gt;
&lt;p&gt;There are a wonderfully surprising amount of places you can join and get started with your own Gemini capsule.&lt;/p&gt;
&lt;p&gt;If you want a blog that&#39;s both on the clearnet and Gemini (and Gopher), then I recommend &lt;a href=&quot;https://smol.pub/&quot;&gt;SmolPub&lt;/a&gt;, which has a very simple interface and only costs $5 for a lifetime of the service.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://tildeverse.org/&quot;&gt;Tildeverse&lt;/a&gt; is another great way to get started (and has so many other features!), though that does require getting a little familiar with the terminal and &lt;code&gt;ssh&lt;/code&gt;. Servers like &lt;a href=&quot;https://tilde.pink/&quot;&gt;Tilde.pink&lt;/a&gt; are Gemini-only and will give you a capsule automatically, whereas &lt;a href=&quot;https://tilde.town/&quot;&gt;Tilde.town&lt;/a&gt; will require you to &lt;a href=&quot;https://tilde.town/wiki/editing-your-homepage/gemini.html&quot;&gt;use a command&lt;/a&gt; to set up a capsule, like &lt;code&gt;town request-gemini&lt;/code&gt;. Similarly, &lt;a href=&quot;https://freeshell.org/&quot;&gt;SDF/Freeshell.org&lt;/a&gt; will give you a Gopher site.&lt;/p&gt;
&lt;p&gt;There are Gemini-specific platforms too, such as &lt;a href=&quot;https://flounder.online/&quot;&gt;flounder.online&lt;/a&gt; and the &lt;a href=&quot;https://midnight.pub/&quot;&gt;Midnight Pub&lt;/a&gt;, though these require manual approval to get into.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gemcities.com/&quot;&gt;Gemcities&lt;/a&gt; is another platform I stumbled upon. Although it looks a &lt;em&gt;little&lt;/em&gt; vibecoded, it&#39;s also free and gives you instant access and a rather easy-to-use web interface to create and manage your capsule.&lt;/p&gt;
&lt;p&gt;Of course, you can also &lt;a href=&quot;https://kevinboone.me/gemini_vps.html&quot;&gt;host your own Gemini server&lt;/a&gt;, and there are &lt;a href=&quot;https://html-chunder.neocities.org/posts/self-hosting-a-gemini-capsule/&quot;&gt;plenty of resources&lt;/a&gt; on that, but that&#39;s outside the scope of this article.&lt;/p&gt;
&lt;h2 id=&quot;what-to-put-in-your-capsule%3F&quot; tabindex=&quot;-1&quot;&gt;What To Put In Your Capsule?&lt;/h2&gt;
&lt;p&gt;The answer is the same as &lt;a href=&quot;http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/&quot;&gt;any webpage you make: anything you want!&lt;/a&gt; But here are some ideas to get you started:&lt;/p&gt;
&lt;p&gt;Less is more here, more than almost anywhere else on the Internet. All you need is a folder and some plain text files. A flat folder structure like this is already enough to get going:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;index.gmi    # root (the file served by default at a base URL, 
             #       the Gemini equivalent of index.html)
about.gmi    # who you are
now.gmi      # what you&#39;re currently up to
hobbies.gmi  # what you&#39;re interested in
links.gmi    # interesting non-https links you&#39;ve found
quotes.gmi   # quotes you want to keep and share
gemroll.gmi  # other people&#39;s capsules you want to share
gemlog/
      index.gmi  # the root file of the gemlog (see below)
      2026-09-15-thoughts.gmi   # a blog post
      2026-09-01-update.gmi     # another blog post
      etc...
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;the-gemlog&quot; tabindex=&quot;-1&quot;&gt;The Gemlog&lt;/h2&gt;
&lt;p&gt;Now, a blog in a Gemini capsule is usually called a gemlog, and although there&#39;s no official gemlog spec, the community has settled on some norms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File naming: dated posts, often &lt;code&gt;YYYY-MM-DD-slug.gmi&lt;/code&gt; and/or organized under a &lt;code&gt;/posts/&lt;/code&gt; or &lt;code&gt;/gemlog/&lt;/code&gt; directory.&lt;/li&gt;
&lt;li&gt;Index page (index.gmi): a reverse-chronological list of posts as =&amp;gt; links, each usually prefixed with the date:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;# My Gemlog

=&amp;gt; /gemlog/2026-09-15-thoughts.gmi 2026-09-15: Some thoughts
=&amp;gt; /gemlog/2026-09-01-update.gmi 2026-09-01: An update
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Atom feed: many gemlogs also publish an &lt;code&gt;atom.xml&lt;/code&gt;, so people can subscribe with an RSS feed reader, since Gemini has no native subscription mechanism.&lt;/li&gt;
&lt;li&gt;First line as title: the convention (not spec) is that a post&#39;s first line is a &lt;code&gt;#&lt;/code&gt; heading used as its title when aggregated elsewhere.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;other-goodies&quot; tabindex=&quot;-1&quot;&gt;Other Goodies&lt;/h2&gt;
&lt;p&gt;Most browsers built for Gemini, such as Bombadillo, Lagrange, and Kristall--all can also interface with protocols like Gopher, Spartan, etc., and work with the older &lt;code&gt;finger://&lt;/code&gt; protocol too. You can add a finger link into your capsule like any other:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;=&amp;gt; finger://brennan@omg.lol Finger me for my current status
=&amp;gt; finger://example.com/kenny .plan file
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also have &lt;code&gt;.plan&lt;/code&gt; and &lt;code&gt;.project&lt;/code&gt; files, which can also live on a &lt;code&gt;now.gmi&lt;/code&gt; page.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.plan&lt;/code&gt; → current status, what you&#39;re working on right this week (the original microblog)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.project&lt;/code&gt; → a one-line &amp;quot;what is this account/person about&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://portal.mozz.us/gemini/mozz.us/files/rfc_gemini_favicon.gmi?&quot;&gt;Michael Lazar has a spec&lt;/a&gt; for Gemini capsules to have a plain-text file named &lt;code&gt;favicon.txt&lt;/code&gt; containing a single Unicode emoji. A supporting client resolves a favicon for any given page by checking that directory for &lt;code&gt;favicon.txt&lt;/code&gt;, and if absent, looks in the parent directory (the same logic as looking for &lt;code&gt;robots.txt&lt;/code&gt;). Having a /favicon.txt in your capsule&#39;s root (e.g. 🍇) enables it for your whole site, and you can override it with different ones in subdirectories. Support is optional, though, and client-dependent.&lt;/p&gt;
&lt;p&gt;It&#39;s also good practice to add a &lt;code&gt;.well-known/security.txt&lt;/code&gt; to your capsule just as on any other website, with something like:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;Contact: mailto:security@example.com
Contact: https://example.com
Expires: 2027-12-31T23:59:00.000Z
Encryption: https://example.com
Policy: https://example.com
Preferred-Languages: en, es
Canonical: https://example.com/.well-known/security.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Gemini also supports &lt;code&gt;robots.txt&lt;/code&gt; files, but Gemini requests carry no user-agent string, so instead of naming specific bots, the convention defines virtual user-agents by purpose:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;User-agent: archiver
Disallow: /private/

User-agent: indexer
Disallow: /drafts/

User-agent: researcher
Disallow:

User-agent: webproxy
Disallow: /

User-agent: *
Disallow: /cgi-bin/
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;ascii-art&quot; tabindex=&quot;-1&quot;&gt;ASCII Art&lt;/h3&gt;
&lt;p&gt;Because you&#39;re mostly limited to text, Gemini is a great excuse to dive into ASCII art. There are great &lt;a href=&quot;https://patorjk.com/software/taag/&quot;&gt;text-to-ASCII generators&lt;/a&gt;, archives of &lt;a href=&quot;https://www.asciiart.eu/&quot;&gt;ASCII art made by others&lt;/a&gt;, and tools to help you &lt;a href=&quot;https://www.asciiart.eu/ascii-draw-studio/app&quot;&gt;draw your own ASCII art&lt;/a&gt;. Hell, even &lt;a href=&quot;https://www.wikihow.com/Create-ASCII-Art&quot;&gt;WikiHow&lt;/a&gt; has a pretty good tutorial.&lt;/p&gt;
&lt;h2 id=&quot;social-media-and-interactivity-on-gemini&quot; tabindex=&quot;-1&quot;&gt;Social Media and Interactivity on Gemini&lt;/h2&gt;
&lt;p&gt;Now, I loved learning about this: despite how minimal Gemini is, there are still sites where you can sign up and interact with other users.&lt;/p&gt;
&lt;p&gt;The two most popular examples of this are &lt;strong&gt;Gemini BBS&lt;/strong&gt; and &lt;strong&gt;Station&lt;/strong&gt;. There is also a wonderful plant game called &lt;strong&gt;Astrobotany&lt;/strong&gt; which also operates similarly.&lt;/p&gt;
&lt;p&gt;None of the interactivity breaks Gemini&#39;s design, rather, it&#39;s built from four small primitives in clever combinations. Instead of reading files off disk, a Gemini server can be configured to run scripts, which get a request URL (including query strings) and then gemtext is written to stdout:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Client requests a URL.&lt;/li&gt;
&lt;li&gt;Server replies with status 10 (or 11 for sensitive input like a password) plus a prompt string instead of content.&lt;/li&gt;
&lt;li&gt;The client shows a single text field with that prompt.&lt;/li&gt;
&lt;li&gt;Whatever the user types gets URL-encoded and appended as a query string, and the client re-requests the same URL with that string attached.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gemini has no cookies, so persistent state across visits is handled with TLS client certificates. A server can respond with status 60 (&amp;quot;certificate required&amp;quot;) for a path, and the client either generates one (with the user&#39;s permission) or presents one it already has. The server then keys any stored state to that certificate&#39;s fingerprint. This is how a capsule &amp;quot;remembers you&amp;quot; between sessions without passwords or cookies.&lt;/p&gt;
&lt;p&gt;For more information on this, I recommend looking at solderpunk&#39;s repository &lt;a href=&quot;https://git.sr.ht/~solderpunk/gemcert&quot;&gt;gemcert&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;getting-started&quot; tabindex=&quot;-1&quot;&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;Now, it might be confusing to get started with Gemini. First things first, you&#39;ll need an actual Gemini browser, since your regular one can&#39;t speak the protocol. &lt;a href=&quot;https://github.com/skyjake/lagrange&quot;&gt;Lagrange&lt;/a&gt; is the one I use and recommend; one of the things I love about it is the sidebar, which has a &amp;quot;structure&amp;quot; option that lets you view the site you&#39;re on like a folder directory. But &lt;a href=&quot;https://github.com/makew0rld/amfora&quot;&gt;Amfora&lt;/a&gt; is a great terminal-based option.&lt;/p&gt;
&lt;p&gt;Past that, some of the hosting options above require using the terminal and SSH, so if you&#39;ve never generated a key pair before, &lt;a href=&quot;https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent&quot;&gt;GitHub&#39;s guide to generating an SSH key&lt;/a&gt; is a good walkthrough even if you&#39;re not using it for GitHub itself. And for actually writing gemtext, the &lt;a href=&quot;https://geminiprotocol.net/docs/gemtext-specification.gmi&quot;&gt;official specification&lt;/a&gt; is good, as there&#39;s not much to it.&lt;/p&gt;
&lt;p&gt;In most cases, you&#39;ll have to use the terminal to edit and add to your capsule, unless you use a platform like &lt;a href=&quot;https://smol.pub/&quot;&gt;SmolPub&lt;/a&gt; or &lt;a href=&quot;https://gemcities.com/&quot;&gt;Gemcities&lt;/a&gt;, which have web interfaces. That means getting comfortable with commands and a terminal-based editor, which I know sounds intimidating. For an editor, I recommend &lt;a href=&quot;https://micro-editor.github.io/&quot;&gt;Micro&lt;/a&gt;, which is far friendlier than vim or nano, as it has mouse support and familiar shortcuts like &lt;code&gt;ctrl+s&lt;/code&gt; to save and &lt;code&gt;ctrl+q&lt;/code&gt; to quit. And if you&#39;re new to the command line, &lt;a href=&quot;https://linuxcommand.org/lc3_learning_the_shell.php&quot;&gt;LinuxCommand.org&#39;s &amp;quot;Learning the Shell&amp;quot;&lt;/a&gt; walks you through the terminal specifically, while &lt;a href=&quot;https://missing.csail.mit.edu/&quot;&gt;The Missing Semester of Your CS Education&lt;/a&gt; from MIT is a good broader crash course.&lt;/p&gt;
&lt;p&gt;For more information and browser options, I recommend the &lt;a href=&quot;https://github.com/kr1sp1n/awesome-gemini&quot;&gt;Awesome Gemini&lt;/a&gt; repository.&lt;/p&gt;
&lt;h2 id=&quot;cgi-scripting-on-gemini&quot; tabindex=&quot;-1&quot;&gt;CGI Scripting on Gemini&lt;/h2&gt;
&lt;p&gt;Gemini doesn&#39;t have anything like PHP or server-side JavaScript, but it does support old-school CGI (Common Gateway Interface) scripting. Instead of serving a static &lt;code&gt;.gmi&lt;/code&gt; file, your server runs a script and pipes what it prints to stdout back to the client as the response.&lt;/p&gt;
&lt;p&gt;The response format is: a status code and MIME type on the first line, a blank line, then the body. Here&#39;s an example in Python that says hello:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;#!/usr/bin/env python3
print(&amp;quot;20 text/gemini&amp;quot;)
print()
print(&amp;quot;# Hello!&amp;quot;)
print(&amp;quot;Welcome to my little corner of Geminispace.&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Save that as &lt;code&gt;hello.cgi&lt;/code&gt;, make it executable with the command &lt;code&gt;chmod +x&lt;/code&gt;, and put it in the directory that your server uses as its cgi-bin. Most Gemini servers that support CGI, including &lt;a href=&quot;https://github.com/michael-lazar/jetforce&quot;&gt;Jetforce&lt;/a&gt; (the same server behind Astrobotany, mentioned earlier) pass along request details through environment variables like QUERY_STRING and PATH_INFO, so you can build search boxes, guestbooks, or anything else interactive. There are &lt;a href=&quot;https://xitzin.readthedocs.io/en/latest/how-to/cgi-scripts/&quot;&gt;plenty of CGI scripting tutorials&lt;/a&gt; out there if you&#39;re curious to learn more.&lt;/p&gt;
&lt;h2 id=&quot;a-revivalist&#39;s-revival&quot; tabindex=&quot;-1&quot;&gt;A Revivalist&#39;s Revival&lt;/h2&gt;
&lt;p&gt;Gemini isn&#39;t an old technology being dusted off, it was created in 2019. But it borrows heavily from Gopher&#39;s spirit, BBSes, and the decades-old phlogosphere. Yet, sadly, during my research and browsing of Geminispace, I came across nearly as many dead/abandoned links as I did active and alive ones. I get it. There&#39;s a lot of friction when it comes to using an entirely different protocol. I confess that it took me months until I finally got serious with it. I don&#39;t think Gemini will ever &amp;quot;take off&amp;quot; and I&#39;m glad for that, really. It&#39;s a wonderfully peaceful and calm alternative to the Internet without having to unplug. I&#39;m planning to use it a lot more, and I think I&#39;m going to start adding some of my writing on the protocol exclusively.&lt;/p&gt;
&lt;p&gt;But I do hope you consider trying it out, it may be the only place online where there aren&#39;t hordes of genAI bots pissing everyone off, who knows.&lt;/p&gt;
&lt;div class=&quot;rule&quot; aria-hidden=&quot;true&quot;&gt;------------------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;h2 id=&quot;links&quot; tabindex=&quot;-1&quot;&gt;Links&lt;/h2&gt;
&lt;p&gt;Here are all the links I&#39;ve collected in my journey across the smallnet so far. None of these use the &lt;code&gt;https://&lt;/code&gt; protocol, so you&#39;ll have to use a Gemini protocol browser to visit any of them.&lt;/p&gt;
&lt;p&gt;I tried to make sure each one is still active and operating, but please let me know if any aren&#39;t.&lt;/p&gt;
&lt;h3 id=&quot;the-gemini-project&quot; tabindex=&quot;-1&quot;&gt;The Gemini Project&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://geminiprotocol.net/ Gemini Protocol, official project site
=&amp;gt; gemini://geminiquickst.art/ Gemini Quickstart guide
=&amp;gt; gemini://mozz.us/files/rfc_gemini_favicon.gmi Emoji favicons in Gemini, a spec proposal
=&amp;gt; gemini://gemi.dev/gemlog/2022-02-08-favicons.gmi On favicons and how to add one to your capsule
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;search-%26-discovery&quot; tabindex=&quot;-1&quot;&gt;Search &amp;amp; Discovery&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://kennedy.gemi.dev Kennedy, Geminispace search engine: discovery, historical snapshots, backlinks, and capsule health
=&amp;gt; gemini://kennedy.gemi.dev/archive/ Delorean, the Geminispace time machine
=&amp;gt; gemini://gemini.thegonz.net/cdg/ Collaborative Directory of Geminispace
=&amp;gt; gemini://fediring.net/ Fediring, a Gemini webring
=&amp;gt; gemini://geminispace.info/ geminispace.info, public Gemini search provider
=&amp;gt; gemini://tlgs.one/ TLGS, another public Gemini search provider
=&amp;gt; gemini://gemplex.space/ Gemplex, experimental search engine
=&amp;gt; gemini://aurasearch.ddns.net/ Aura Search, covering Gemini, Nex, Spartan, and Scroll
=&amp;gt; gemini://medusae.space/ Medusae, hand-maintained capsule directory
=&amp;gt; gemini://geddit.glv.one Geddit, interactive link service with comments
=&amp;gt; gemini://fumble-around.mediocregopher.com Fumble-around, explore gemspace by hopping between random interesting pages
=&amp;gt; gopher://gopher.floodgap.com:70/1/v2 Veronica, Gopherspace search
=&amp;gt; gopher://gopher.icu:70/1/quarry Quarry, Gopherspace search
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;aggregators&quot; tabindex=&quot;-1&quot;&gt;Aggregators&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://warmedal.se/~antenna/ Antenna
=&amp;gt; gemini://antenna.ucant.org/ Antenna, ucant.org instance
=&amp;gt; gemini://gemini.circumlunar.space/capcom/ CAPCOM
=&amp;gt; gemini://gemini.circumlunar.space/users/gemlog/ CircumLunar gemlog feed
=&amp;gt; gemini://skyjake.fi/~Cosmos/ Cosmos
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;geminispace-statistics&quot; tabindex=&quot;-1&quot;&gt;Geminispace Statistics&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://gemini.bortzmeyer.org/software/lupa/stats.gmi Lupa&#39;s Geminispace Statistics
=&amp;gt; gemini://tlgs.one/statistics TGLS&#39; Geminispace Statistics
=&amp;gt; gemini://botond.online/en/stats/ Botond&#39;s Geminispace Stats Visualized
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;communities&quot; tabindex=&quot;-1&quot;&gt;Communities&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://bbs.geminispace.org/ Gemini BBS: discussion, microblogging, and issue tracking
=&amp;gt; gemini://station.martinrue.com/ Station: status updates, capsuleers can hang out and socialise
=&amp;gt; gemini://midnight.pub/ Midnight Pub: small-scale personal publishing with a human-scale social feel
=&amp;gt; gemini://flounder.online Flounder
=&amp;gt; gemini://gemlog.blue Gemlog Blue
=&amp;gt; gemini://smol.pub Smol Pub
=&amp;gt; gemini://gemcities.com GemCities, capsule publisher
=&amp;gt; gemini://gemini.smallweb.space/ SmallWeb.Space, smol web host
=&amp;gt; gemini://gemini.circumlunar.space CircumLunar.Space, community capsule host
=&amp;gt; gemini://software-freedom.org Software Freedom
=&amp;gt; gemini://cities.yesterweb.org Yestercities (defunct)
=&amp;gt; gopher://gopher.club:70/ Internet Gopher Club Underground Syndicate
=&amp;gt; gopher://magical.fish:70/1/ magical.fish
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;pubnixes-%26-tildes&quot; tabindex=&quot;-1&quot;&gt;Pubnixes &amp;amp; Tildes&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://gem.sdf.org SDF Public Access UNIX System
=&amp;gt; gemini://gemini.ctrl-c.club/ Ctrl-C Club
=&amp;gt; gemini://envs.net Envs
=&amp;gt; gemini://breadpunk.club/ Breadpunk Club
=&amp;gt; gemini://heathens.club/ heathens.club
=&amp;gt; gemini://tanelorn.city/ tanelorn city
=&amp;gt; gemini://tilde.cafe/ Tilde Cafe
=&amp;gt; gemini://tilde.club/ Tilde Club
=&amp;gt; gemini://tilde.pink/ tilde.pink
=&amp;gt; gemini://tilde.team/ Tilde Team
=&amp;gt; gemini://tilde.town/ tilde.town
=&amp;gt; gemini://rawtext.club/ Raw Text Club (RTC) (defunct)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;capsules-of-interest&quot; tabindex=&quot;-1&quot;&gt;Capsules of Interest&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://zaibatsu.circumlunar.space/~solderpunk/ solderpunk, creator of Gemini
=&amp;gt; gopher://zaibatsu.circumlunar.space/1/~solderpunk/ solderpunk&#39;s Gopherhole
=&amp;gt; gemini://athanasia.gemcities.com/ Athanasia
=&amp;gt; gemini://balloon.fusen.nya.je/ Balloon/Fusen
=&amp;gt; gemini://elektito.com/gemlog/ Elektito
=&amp;gt; gemini://nytpu.com Nytpu
=&amp;gt; gemini://sava.rocks sava.rocks
=&amp;gt; gemini://mozz.us mozz.us
=&amp;gt; gemini://cyberdreams.info CyberDreams
=&amp;gt; gemini://gem.acdw.net ACDW&#39;s Gemini Cottage
=&amp;gt; gemini://drewdevault.com/ Drew DeVault
=&amp;gt; gemini://hexdsl.co.uk HexDSL
=&amp;gt; gemini://gemini.lottalinuxlinks.com Lotta Linux Links
=&amp;gt; gemini://pennywhether.xyz PennyWhether&#39;s Place
=&amp;gt; gemini://gemini.circumlunar.space/users/hundredrabbits/ Hundred Rabbits
=&amp;gt; gemini://gemini.circumlunar.space/users/laur%C3%AB/ Laurë&#39;s capsule
=&amp;gt; gemini://skyjake.fi/ Skyjake, developer of Lagrange
=&amp;gt; gemini://alexschroeder.ch/ Alex Schroeder
=&amp;gt; gemini://freeshell.de/ JBanana
=&amp;gt; gemini://gmi.bacardi55.io/ bacardi55
=&amp;gt; gemini://warmedal.se/~bjorn/ ew0k
=&amp;gt; gemini://taoetc.org Tao Etc
=&amp;gt; gemini://caolan.uk/ Caolan
=&amp;gt; gemini://adele.work Adele&#39;s capsule
=&amp;gt; gemini://going-flying.com/~mernisse/ Mernisse
=&amp;gt; gemini://tobykurien.com/ Toby Kurien&#39;s capsule
=&amp;gt; gemini://friendo.monster/ Drew&#39;s capsule
=&amp;gt; gemini://rawtext.club/~ecliptik ecliptik
=&amp;gt; gemini://rawtext.club/~sloum/ sloum
=&amp;gt; gopher://zaibatsu.circumlunar.space/1/~sloum/ sloum&#39;s Gopherhole
=&amp;gt; gopher://gopher.black/ Tomasino&#39;s gopherhole
=&amp;gt; gopher://box.matto.nl:70/1/ Matto&#39;s gopherhole
=&amp;gt; gopher://tilde.pink/1/~bencollver/ bencollver&#39;s gopherhole
=&amp;gt; gemini://tilde.cafe/~spellbinding/ ~spellbinding&#39;s word games
=&amp;gt; gemini://corstar.flounder.online corstar
=&amp;gt; gemini://subphase.xyz/index.gmi subphase
=&amp;gt; gemini://pixeldreams.tokyo/ kyo
=&amp;gt; gemini://tilde.pink/~kaction kaction
=&amp;gt; gemini://sdf.org/clinquant/index.gmi clinquant
=&amp;gt; gemini://tilde.pink/~ali ali
=&amp;gt; gemini://devinprater.flounder.online devin
=&amp;gt; gemini://vignette.kalasarn.se/ mmww
=&amp;gt; gemini://republic.circumlunar.space/users/joneworlds/ joneworlds
=&amp;gt; gemini://tanelorn.city/~vidak/ vidak
=&amp;gt; gemini://tilde.town/~hush/ ~hush
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;link-curators&quot; tabindex=&quot;-1&quot;&gt;Link curators&lt;/h4&gt;
&lt;p&gt;These capsules maintain the collections many of the links here were found through. Thank you!!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://tilde.pink/~emily ~emily
=&amp;gt; gemini://gemini.ctrl-c.club/~aesophod/ ~aesophod
=&amp;gt; gemini://gemini.ctrl-c.club/~de_alchmst/ ~de_alchmst
=&amp;gt; gemini://gemini.ctrl-c.club/~edisondotme/ ~edisondotme
=&amp;gt; gemini://gemini.ctrl-c.club/~gzj/ ~gzj
=&amp;gt; gemini://gemini.ctrl-c.club/~w3bk3rn3l/ ~w3bk3rn3l
=&amp;gt; gemini://gemini.ctrl-c.club/~zenspace/ ~zenspace
=&amp;gt; gemini://eluum.net/ eluum
=&amp;gt; gemini://gmi.hedy.dev/ hedy
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;active-~pink-capsules&quot; tabindex=&quot;-1&quot;&gt;Active ~pink capsules&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://tilde.pink/~johl ~johl
=&amp;gt; gemini://tilde.pink/~kirch ~kirch
=&amp;gt; gemini://tilde.pink/~lacour ~lacour
=&amp;gt; gemini://tilde.pink/~m040601 ~m040601
=&amp;gt; gemini://tilde.pink/~para ~para
=&amp;gt; gemini://tilde.pink/~rebel1725 ~rebel1725
=&amp;gt; gemini://tilde.pink/~ssb22 ~ssb22
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;good-gemlogs&quot; tabindex=&quot;-1&quot;&gt;Good Gemlogs&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://degrowther.smol.pub/ Degrowther
=&amp;gt; gemini://idiomdrottning.org/sub Idiomdrottning
=&amp;gt; gemini://rawtext.club/~left_adjoint/ Left adjoint&#39;s free monoid microblog
=&amp;gt; gemini://gemini.ctrl-c.club/~lettuce/ Lettuce Gemlog
=&amp;gt; gemini://njms.ca/gemlog/ njms&#39; gemlog
=&amp;gt; gemini://officialdonut.smol.pub/ Official Donut of the Small Web
=&amp;gt; gemini://ploum.net/index_en.gmi Ploum&#39;s English gemlog
=&amp;gt; gemini://rawtext.club/~ploum/ Ploum&#39;s Offline Typewriter
=&amp;gt; gemini://gemini.circumlunar.space/users/shufei/phlog/index.gmi Shufei&#39;s Gmiphlog
=&amp;gt; gemini://gemini.circumlunar.space/users/shufei/phlog/Shufei-ThisAndThat-Weiphlog.gmi Shufei&#39;s Weiphlog
=&amp;gt; gemini://arcanesciences.com/gemlog/ Sunset&#39;s gemlog
=&amp;gt; gemini://rawtext.club/~winter/gemlog/ Winter&#39;s gemlog
=&amp;gt; gemini://samsai.eu/gemlog.gemini Samsai&#39;s gemlog
=&amp;gt; gemini://perso.pw/blog/ Solene&#39;s gemlog
=&amp;gt; gemini://gemini.cyberbot.space/gemlog/ kelbot&#39;s gemlog
=&amp;gt; gemini://carcosa.net/journal prothetic conscience, a comrade&#39;s gemlog
=&amp;gt; gemini://zach.e-worm.club/ zach&#39;s frequently updated log
=&amp;gt; gemini://gmi.noulin.net/feed.gmi Remy Noulin&#39;s tech articles
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;documents-%26-libraries&quot; tabindex=&quot;-1&quot;&gt;Documents &amp;amp; Libraries&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://library.inu.red Gemini mirror of the Anarchist Library
=&amp;gt; gemini://gemini.bortzmeyer.org/rfc-mirror/rfc-index.gmi Gemini mirror of all IETF RFCs
=&amp;gt; gemini://park-city.club/library/ Park City Library: collecting, categorizing, and preserving the works of internet communities
=&amp;gt; gemini://vault.transjovian.org TransJovian, a Gemini encyclopedia
=&amp;gt; gemini://gemini.cyberbot.space/smolzine/ smolzine
=&amp;gt; gopher://rawtext.club:70/1~cmccabe/pubnixhist/ A history of public unix systems
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/dict/ Dictionary look-ups
=&amp;gt; gopher://tilde.pink:70/9/~bencollver/books/FederalPLGuidelines.pdf Federal Plain Language Guidelines (PDF)
=&amp;gt; gopher://tilde.pink:70/9/~bencollver/books/how-to-write-clearly.pdf How to Write Clearly (PDF)
=&amp;gt; gopher://tilde.pink:70/0/~bencollver/text/nato-alphabet.txt NATO phonetic alphabet
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/effman/ Writing effective man pages
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/dos/ DOS nostalgia
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/ftp/ FTP sites
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/gamefaqs/ GameFAQs archive
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/books/basic-asanas/ Basic asanas
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/books/surya-namaskar/ Surya namaskar
=&amp;gt; gopher://sdf.org:70/1/users/agk/1st First aid
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;arts-%26-fun&quot; tabindex=&quot;-1&quot;&gt;Arts &amp;amp; Fun&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://cyberdreams.info/videos/index.gmi CyberDreams Video Archive
=&amp;gt; gemini://tilde.pink/~doriancodes/asciimoji.gmi ~doriancodes&#39; ASCIImoji / Kaomoji Collection
=&amp;gt; gemini://mozz.us/cgi-bin/cowsay Mozz&#39;s Cowsay Generator
=&amp;gt; gemini://astrobotany.mozz.us/ Astrobotany
=&amp;gt; gemini://zaibatsu.circumlunar.space/~shufei/pnp/PikiAndPoko.gmi Shufei&#39;s Smolnet Piki and Poko Fancapsule
=&amp;gt; gemini://gemini.nasman.us/dad_tips.py Dad tips generator
=&amp;gt; gopher://workingpayphones.com:70/1/ Working phone booths
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;games&quot; tabindex=&quot;-1&quot;&gt;Games&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://spell.mywire.org:1966/ Spellbinding, an addictive word game
=&amp;gt; gemini://tilde.cafe/~spellbinding/wordo/cgi? Wordo, a wordle-like game
=&amp;gt; gemini://tilde.cafe/~spellbinding/wall/cgi A public wall to leave messages on
=&amp;gt; gemini://tictactoe.lanterne.chilliet.eu Tic-tac-toe
=&amp;gt; gemini://rawtext.club/~sloum/cgi/othello/ Othello/Reversi against the computer
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;music&quot; tabindex=&quot;-1&quot;&gt;Music&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://gemini.circumlunar.space:1965/~sloum/ Drift Theory, a small collection of music released on Gemini
=&amp;gt; gemini://tilde.team/~jonathan/music/ Jonathan&#39;s noughties music reviews
=&amp;gt; gemini://konpeito.media The legendary Konpeito quarterly mixtapes
=&amp;gt; gemini://kovok.band/ Kovok, possibly the first band on Gemini
=&amp;gt; gemini://republicofsound.flounder.online/ Republic of Sound, free album downloads
=&amp;gt; gemini://rawtext.club/~sloum/musicmachine/ Music Machine, short album reviews
=&amp;gt; gemini://oberdada.pollux.casa/metal_intro.gmi Oberdada&#39;s Guide to Obscure Metal
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;photography&quot; tabindex=&quot;-1&quot;&gt;Photography&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://158.nu 158.nu&#39;s film photography hobby projects
=&amp;gt; gemini://kota.nz/pics/ Kota&#39;s pics
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;recipes&quot; tabindex=&quot;-1&quot;&gt;Recipes&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://rawtext.club/~sloum/cgi/recipes/ A searchable index of 1,000 recipes
=&amp;gt; gemini://breadpunk.club/~rye/ Rye, a collection of vegan, mostly soy-free recipes
=&amp;gt; gemini://gemini.circumlunar.space/users/hundredrabbits/recipes.gmi Vegan recipes from Hundred Rabbits
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;indigenous-language&quot; tabindex=&quot;-1&quot;&gt;Indigenous Language&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://taisui.space/tatis/index.gmi Siɂisim Tatis, a smol newsletter in Chinuk Wawa
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;permacomputing-%26-essays&quot; tabindex=&quot;-1&quot;&gt;Permacomputing &amp;amp; Essays&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://perma.computer/letter Technological Futures: A Letter to the Smolnet
=&amp;gt; gemini://smol.earth/manifesto.gmi Personal computing in the Anthropocene with eyes, minds and hearts wide open
=&amp;gt; gemini://idiomdrottning.org/texts.gmi Idiomdrottning&#39;s collected texts
=&amp;gt; gemini://midnight.pub/posts/163 Nick Cave on finding good ideas
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;software-%26-how-tos&quot; tabindex=&quot;-1&quot;&gt;Software &amp;amp; How-tos&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://skyjake.fi/lagrange/ Lagrange, a Gemini browser
=&amp;gt; gemini://makeworld.space/amfora-wiki Amfora Wiki
=&amp;gt; gemini://rawtext.club/~sloum/spacewalk.gmi Spacewalk
=&amp;gt; gemini://qwertqwefsday.eu/agate.gmi Agate, a Gemini server
=&amp;gt; gemini://gemini.smallweb.space/HOWTO/managing-your-own-capsule.gmi How to self-host a capsule
=&amp;gt; gemini://aelspire.info/posts/2022-07-28-dotfiles/post.gmi Managing dot files
=&amp;gt; gemini://srht.site/ SourceHut Gemini hosting
=&amp;gt; gemini://srht.site/quickstart.gmi SourceHut&#39;s quick start guide
=&amp;gt; gemini://glv.one glv.one, PaaS that runs any Gemini server in the cloud
=&amp;gt; gemini://gemini.omarpolo.com/cgi/gempkg/ gempkg, an interface to the OpenBSD ports collection
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;tools-%26-services&quot; tabindex=&quot;-1&quot;&gt;Tools &amp;amp; Services&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://gemi.dev/cgi-bin/waffle.cgi NewsWaffle, read any news website via Gemini
=&amp;gt; gemini://gemi.dev/cgi-bin/wp.cgi Gemipedia, Gemini frontend to Wikipedia
=&amp;gt; gemini://gemi.dev/stargate.gmi Stargate, public Gemini-to-HTTP gateway
=&amp;gt; gemini://rawtext.club/~sloum/geminews/ Geminews, an NPR, CSM, and CNN mirror
=&amp;gt; gopher://nihirash.net:7000/1/ Gopher web proxy
=&amp;gt; gemini://ur.gs/ ur.gs, English-Spanish translator
=&amp;gt; gemini://rawtext.club/~sloum/cgi/weather US weather reports by zip code
=&amp;gt; gemini://tilde.cafe/~stack/weather Weather forecast powered by wttr.in
=&amp;gt; gopher://gopher.floodgap.com:70/1/groundhog/us/zipcode%3F97526 Takelma weather
=&amp;gt; gopher://tilde.pink:70/1/~bencollver/dir/ Gopher Google directions
=&amp;gt; gemini://houston.gmi.bacardi55.io Houston, check whether a capsule is up
=&amp;gt; gemini://hashnix.club:1958/ hashnix.club email service
=&amp;gt; gemini://kevachat.duckdns.org KevaChat clearnet node
=&amp;gt; gemini://kvazar.duckdns.org Observe the Kevacoin Universe
=&amp;gt; gemini://betahowto.duckdns.org Yggdrasil DokuWiki satellite
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;other-link-collections&quot; tabindex=&quot;-1&quot;&gt;Other Link Collections&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;=&amp;gt; gemini://rawtext.club/~winter/links/ Winter&#39;s link garden
=&amp;gt; gemini://hnr.fyi/research.gmi Honor Ash&#39;s collected resources on degrowth, communities &amp;amp; scale, and more
=&amp;gt; gopher://tilde.pink/1/~bencollver/links/ bencollver&#39;s links list
=&amp;gt; gemini://gemini.ctrl-c.club/~aesophod/bookmarks/bookmarks.gmi ~aesophod&#39;s bookmarks
=&amp;gt; gemini://gemini.ctrl-c.club/~zenspace/bookmarks.gmi ~zenspace&#39;s bookmarks
=&amp;gt; gemini://gmi.hedy.dev/blogroll.gmi hedy&#39;s blogroll
=&amp;gt; gemini://eluum.net/link-garden.gmi eluum&#39;s link garden
=&amp;gt; gemini://gemini.cyberbot.space/links.gmi kelbot&#39;s links
=&amp;gt; gemini://nytpu.com/feed.gmi nytpu&#39;s list of capsules and gopherholes
=&amp;gt; gopher://box.matto.nl:70/1/phlogroll phlogroll
=&amp;gt; gopher://box.matto.nl:70/1/burrows-of-interest Burrows of Interest
=&amp;gt; gemini://station.martinrue.com/softwarepagan/4f077db00e7541b082403650735d954d Station thread: everyone&#39;s coolest Gemini links
&lt;/code&gt;&lt;/pre&gt;
</content>
	</entry>
	<entry>
		<title>&#39;Would You Like to Reload a Previous Save?&#39; (➤Yes / No)</title>
		<link href="http://plaintext.brennan.day/would-you-like-to-reload-a-previous-save-yes-no/"/>
		<updated>2026-09-18T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/would-you-like-to-reload-a-previous-save-yes-no/</id>
		<content type="html">&lt;p&gt;A common &lt;a href=&quot;http://plaintext.brennan.day/confessions-of-a-maladaptive-daydreamer/&quot;&gt;maladaptive daydream I have&lt;/a&gt; is imagining that I wake up and I&#39;m much younger again, spontaneously and miraculously, with all of my knowledge and understanding still intact. Magically, I find myself back at a specific age in my life, and I can redo everything all over again from that point on.&lt;/p&gt;
&lt;p&gt;For me, I always imagine awakening to find myself twelve and in grade six again. Back when I would walk down 17th Avenue travelling home after elementary school ended to take care of our four cats--we adopted one off Kijiji and she ended up having three kittens--and I&#39;d always walk in and open a§ large can of chicken-tuna flavoured wet food and watch them hungrily scurry in excitement.&lt;/p&gt;
&lt;p&gt;The kittens--Cream, Lynx, and Jeremiah--were a highlight during an otherwise difficult point in my life. I felt lonely, and I was being bullied at school (more so by teachers than students), not to mention my overworked single mom was struggling to take care of me and my little brother on her own, in a city she&#39;d just moved to where she didn&#39;t know anybody.&lt;/p&gt;
&lt;p&gt;I think I choose this time specifically because I feel as though I can right the most wrongs and adjust course most significantly, while still being old enough to do so. I would be a better older brother to Byron, who just entered the first grade, so I could take some of the pressure off my mom&#39;s shoulders. I would avoid talking to weird older teenagers on MSN Messenger, which would only cause me further social isolation in the years to come.&lt;/p&gt;
&lt;p&gt;And of course, that&#39;s just the tip of the iceberg. To be transplanted back in time would mean you would have so much foresight and wisdom to reinvest. So much extra time to learn what I&#39;ve been putting off, so much capability to avoid all the regrets and mistakes I&#39;ve made over the years. Of course, the monetary gains are obvious as well--you&#39;d always be able to bet on the right horse. I could use my birthday money when I turned fourteen and buy Bitcoin when it only cost a few cents per BTC.&lt;/p&gt;
&lt;p&gt;I could learn how to whistle and roll my R&#39;s before grade seven instead of after. I&#39;d take Byron to the wave pool before summer ended instead of promising it every June and letting it slide. I&#39;d learn to skate at Shaw Millennium before it was renamed Cowboys. And I&#39;d be able to make sure we kept our four cats after we moved farther south when I was in junior high.&lt;/p&gt;
&lt;p&gt;You can see why it&#39;s such a compelling daydream. There are so many decisions to make right, so many points in life where you could have done the correct thing and avoided hurt and pain.&lt;/p&gt;
&lt;p&gt;But when you really start to think about it, there is also so much you lose. Nearly everything, actually. Every journal entry and poem and thought I ever had is gone. Every coding project I sunk hours into. All 280 posts and over 500,000 words on this site, gone. Would I be able to re-write them all? Would I even want to? There would be fields upon fields of the unrecoverable.&lt;/p&gt;
&lt;p&gt;Your favourite music and books and films you&#39;d have to wait for them to exist. I&#39;d witness every disaster again, every cultural rise and fall. I&#39;d sit through the hundred hours of schooling again that I wouldn&#39;t need. Only to arrive again at the handful of things worth keeping--the essay I read that changed how I write essays, the album that got me through painful winters.&lt;/p&gt;
&lt;p&gt;And, far more existentially, what about relationships? What if you weren&#39;t able to reconnect with the people you found and loved the first time? What if it didn&#39;t work out? (&lt;em&gt;Rick and Morty&lt;/em&gt;, surprisingly, did a &lt;a href=&quot;https://www.youtube.com/watch?v=K8DaX0FFthc&quot;&gt;good job visualizing the horror that can be found here&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;But there is actually an incredibly useful meditation here. For we are not at the edge of time, only able to look backwards. We are currently on a continuum of our life, unknowingly somewhere in the middle.&lt;/p&gt;
&lt;p&gt;And in the future, there&#39;s a version of you that&#39;s looking back at where you are. Right now. As you&#39;re reading this very sentence. And they wish desperately, more than anything, to go back to this point. Identical to how I yearn to go back to feeding three hungry kittens after school.&lt;/p&gt;
&lt;p&gt;You don&#39;t need a magical impossibility, you don&#39;t need to fantasize about something that will never happen. Time moves forward.&lt;/p&gt;
&lt;p&gt;There&#39;s a version of you, ten years from now. Wherever they are and whatever they&#39;re doing, the memory of reading this will surface. The version of you ten years from now won&#39;t remember the big things nearly as clearly as they&#39;ll remember the temperature of the room you&#39;re currently in, and the sound your chair makes as you shift your weight. The version of you ten years from today would trade anything for one more ordinary day, the kind of day you&#39;re having right now. Not the bullshit highlight reel of wedding days and manufactured ceremonies. But this. Unremarkable and unrecorded, already slipping past you while you decide whether or not it&#39;s worth paying attention to.&lt;/p&gt;
&lt;p&gt;That version of you, ten years from now, is standing at the end of the doorway made of days like today. They&#39;re looking back and trying to find you. The doorway is already halfway closed.&lt;/p&gt;
&lt;p&gt;Although we don&#39;t have the foresight to see exactly how the world plays out, or to make incredible financial gains, we do have the capacity to act differently right now. I don&#39;t know exactly what the forty-year-old version of me in 2036 would want me to be doing right now, but I do know what I&#39;d want the &lt;a href=&quot;https://blog.brennanbrown.ca/becoming-an-adult-10fd7135ce3c&quot;&gt;twenty-year-old&lt;/a&gt; version of me to be doing. And that&#39;s a good enough starting point, I think.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Proper English is a Myth: There&#39;s No &#39;Correct&#39; Way to Write</title>
		<link href="http://plaintext.brennan.day/proper-english-is-a-myth-theres-no-correct-way-to-write/"/>
		<updated>2026-09-16T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/proper-english-is-a-myth-theres-no-correct-way-to-write/</id>
		<content type="html">&lt;p&gt;I&#39;ve been keeping up with the blogosphere, and there have been a couple of posts that have irked me enough to write a post about linguistics. And that&#39;s saying something.&lt;/p&gt;
&lt;p&gt;A good example is from itsme, who wrote a blog post asking people to &lt;a href=&quot;https://itsme.bearblog.dev/please-learn-how-to-write/&quot;&gt;please learn how to write&lt;/a&gt;. And it received over a hundred uptoots.&lt;/p&gt;
&lt;p&gt;I&#39;m afraid I have to pull rank here and say I studied English at university, and although the majority of my classes were about reading books, I did also take classes on the meta-disciplinary understanding of how the pedagogy of English is taught, and that gets into what English actually is.&lt;/p&gt;
&lt;p&gt;To ask someone to write properly is to assume there is a way to write proper. &lt;a href=&quot;https://www.theguardian.com/commentisfree/2012/mar/02/no-correct-grammar-martin-gwynne&quot;&gt;There isn&#39;t.&lt;/a&gt; &lt;a href=&quot;https://www.campusreform.org/article/english-prof-no-such-thing-as-correct-and-incorrect-way-to-speak/16073&quot;&gt;There is no universal, static version of English.&lt;/a&gt; Or any other language, for that matter. &lt;a href=&quot;https://www.cambridge.org/elt/blog/2020/02/24/no-such-thing-as-standard-english/&quot;&gt;Every dialect of English&lt;/a&gt;, including regional accents and non-standard forms, follows complex, systematic grammatical rules.&lt;/p&gt;
&lt;p&gt;For example, should a writer avoid splitting infinitives, or avoid double negatives? These, like every other mechanic, are stylistic choices rather than absolute laws of human communication.&lt;/p&gt;
&lt;p&gt;You probably don&#39;t realize it, but when you attempt to &amp;quot;correct&amp;quot; somebody&#39;s writing, you are invoking centuries of &lt;a href=&quot;https://www.bbc.com/worklife/article/20210528-the-pervasive-problem-of-linguistic-racism&quot;&gt;oppression and racism&lt;/a&gt;. Standard English is tied to institutional power and formal education, and this does not make other dialects inferior or broken. Standard form has always belonged to people with historical social, economic, and political power. The idea of strict &amp;quot;correctness&amp;quot; was largely created in the &lt;a href=&quot;https://exhibits.lib.ku.edu/exhibits/show/english-language/governing-english&quot;&gt;18th century by grammarians&lt;/a&gt;, who wanted to stabilize and control a constantly changing language.&lt;/p&gt;
&lt;p&gt;Somebody who comes from a computer science background might understand the desire to stabilize language--programming languages are deterministic and set (though they, too, get updated and changed between version numbers). The syntax of coding needs to stay the same so the program runs the same each time. But this is not how spoken word, writing, and communication works.&lt;/p&gt;
&lt;p&gt;English is always in a state of flux, it is as malleable and loose as the concept of symbols can be. Treating other forms of language as &amp;quot;wrong&amp;quot; ignores the cultural and historical context of how people communicate. My friend Agnes &lt;a href=&quot;https://blog.agnes.love/write-for-yourself-unless-i-dont-like-it/&quot;&gt;wrote an excellent post&lt;/a&gt; about this topic as well. I recommend you give it a read, she&#39;s a great writer!&lt;/p&gt;
&lt;p&gt;Do not try to police how other people write or speak. Unsolicited corrections are microaggressions, and they signal to marginalized speakers that their native or community language is inferior.&lt;/p&gt;
&lt;p&gt;This isn&#39;t a fringe position. Non-standard English is everywhere. People assume Pidgin languages, for example, are some kind of broken, half-formed communication. Let me give you an example, this is Genesis 1:1 from &lt;a href=&quot;https://www.bible.com/bible/76/GEN.1&quot;&gt;the Hawaii Pidgin Bible&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;God Make Da World&lt;br /&gt;
Da time wen eryting wen start, God make da sky an da world. Da world come so no mo notting inside, no mo shape notting. On top da wild ocean dat cova eryting, neva had light notting. Ony had God Spirit dea, moving aroun ova da watta.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Linguists have demonstrated &lt;a href=&quot;https://study.com/academy/lesson/pidgin-language-overview-development-examples.html&quot;&gt;pidgins follow predictable developmental patterns of their own&lt;/a&gt; rather than being unintelligent misunderstandings of a &amp;quot;real&amp;quot; language&#39;s grammar.&lt;/p&gt;
&lt;p&gt;Let&#39;s look at what&#39;s taught in schools, where so-called standard English is assumed. &lt;em&gt;The Adventures of Huckleberry Finn&lt;/em&gt; is commonly taught, full of regional vernacular.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That is just the way with some people. They get down on a thing when they don&#39;t know nothing about it.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or, take the seminal novel &lt;em&gt;The Colour Purple&lt;/em&gt; by Alice Walker, also taught across classrooms:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I think us here to wonder, myself. To wonder. To ask. And that in wondering bout the big things and asking bout the big things, you learn about the little ones, almost by accident. But you never know nothing more about the big things than you start out with. The more I wonder, the more I love.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Zora Neale Hurston&#39;s &lt;em&gt;Their Eyes Were Watching God&lt;/em&gt; is &lt;a href=&quot;https://www.mla.org/Publications/Bookstore/Approaches-to-Teaching-World-Literature/Approaches-to-Teaching-Hurston-s-Their-Eyes-Were-Watching-God-and-Other-Works&quot;&gt;taught in universities, colleges, and secondary schools&lt;/a&gt; as a key text of American literature:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you kin see de light at daybreak, you don&#39;t keer if you die at dusk. It&#39;s so many people never seen de light at all.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Louise Bennett is one of &lt;a href=&quot;https://www.nationalarchives.gov.uk/explore-the-collection/stories/louise-bennett-coverley/&quot;&gt;Jamaica&#39;s most celebrated cultural figures&lt;/a&gt;, for poetry written and performed entirely in Jamaican Patois. From &lt;a href=&quot;https://poetrybyheart.com/poems/colonization-in-reverse&quot;&gt;&amp;quot;Colonization in Reverse&amp;quot;&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Wat a devilment a Englan!&lt;br /&gt;
Dem face war an brave de worse,&lt;br /&gt;
But me wonderin how dem gwine stan&lt;br /&gt;
Colonizin in reverse.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dohra Ahmad edited &lt;a href=&quot;https://theworld.org/stories/2014/10/22/how-dialects-trinidad-hawaii-are-expanding-limits-english&quot;&gt;an anthology of vernacular literature&lt;/a&gt; called &lt;a href=&quot;https://wordswithoutborders.org/read/article/2008-02/rotten-english/&quot;&gt;&lt;em&gt;Rotten English&lt;/em&gt;&lt;/a&gt;, collecting work written in pidgins, creoles, and dialects from around the world.&lt;/p&gt;
&lt;p&gt;There are so many assumptions you&#39;re making when you view writing as incorrect and needing to be fixed. As itsme assumes, it&#39;s simply because the writer was being careless and sprinting to get a blog post out into the world, saying that &amp;quot;haste makes waste.&amp;quot; But there are countless other reasons why, to start, it could be a reading comprehension disability, it could be a vision impairment, it could be the way they&#39;ve grown up and understood how a specific mechanic works.&lt;/p&gt;
&lt;p&gt;William Labov spent decades documenting &lt;a href=&quot;https://newlearningonline.com/literacies/chapter-7/labov-on-african-american-english-vernacular&quot;&gt;AAVE (African-American Vernacular English) has its own systematic grammatical principles&lt;/a&gt;. Taglish, the blend of Tagalog and English spoken across the Philippines, &lt;a href=&quot;https://link.springer.com/article/10.1007/BF03024960&quot;&gt;was initially dismissed as a corruption of both languages before linguists realized better&lt;/a&gt;. And it wasn&#39;t until &lt;a href=&quot;https://en.wikipedia.org/wiki/William_Stokoe&quot;&gt;William Stokoe&#39;s research in the 1960s&lt;/a&gt; that American Sign Language was recognized as having syntax and morphology, rather than a mimicry of spoken English.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.grammarly.com/blog/language-trends-culture/slang-to-standard-how-casual-language-can-become-acceptable/&quot;&gt;Words like &amp;quot;nice,&amp;quot; &amp;quot;jazz,&amp;quot; and &amp;quot;crestfallen&amp;quot; all started out as slang or informal coinages&lt;/a&gt;. Whatever gets waved off as &amp;quot;incorrect&amp;quot; right now is tomorrow&#39;s dictionary entry. We&#39;re all making it up as we go along. The &amp;quot;mistakes&amp;quot; generations of teachers mark up in red pen were never mistakes.&lt;/p&gt;
&lt;p&gt;The best thing you can do is focus on meaning. Prioritize understanding the message over policing the specific mechanics. If somebody writes a blog post and you feel as though you don&#39;t understand what they&#39;re trying to convey, guess what? That gives you an excellent excuse to email them and start a dialogue and conversation, instead of vaguely chastising them from your own blog at a distance.&lt;/p&gt;
&lt;p&gt;We&#39;re all trying to do the same thing, here. We&#39;re all trying to share ourselves and our thoughts. There is no right way to do that, and there definitely is no wrong way, either. Even if there was some sort of rigid, &amp;quot;correct&amp;quot; standard English, who cares? (Which I&#39;ve clearly established there isn&#39;t) Guess what? This is blogging! Let loose, have fun a little. We should be enjoying each other rather than trying to police. Everyone is welcome here, regardless of how they type.&lt;/p&gt;
&lt;p&gt;Writing should communicate, but &amp;quot;proper English&amp;quot; is the wrong way to talk about it. It needs to be clear enough for your audience, which is fluid and context-dependent, not a fixed standard. When we mistake clarity as correctness, we stigmatize dialects that are perfectly clear to their speakers.&lt;/p&gt;
&lt;p&gt;I want to end this with a stanza from a poem I&#39;ve seen in my poetry textbooks and anthologies alike that&#39;s a bit of a favourite of mine, &lt;a href=&quot;https://www.jameswhall.com/maybe-dats-your-pwoblem-too-spiderman-poem/&quot;&gt;&lt;em&gt;Maybe Dats Your Pwoblem Too&lt;/em&gt;&lt;/a&gt; by James Hall.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;All my pwoblems&lt;br /&gt;
who knows, maybe evwybody&#39;s pwoblems&lt;br /&gt;
is due to da fact, due to da awful twuth&lt;br /&gt;
dat I am SPIDERMAN.&lt;br /&gt;
I know. I know. All da dumb jokes:&lt;br /&gt;
No flies on you, ha ha,&lt;br /&gt;
and da ones about what do I do wit all&lt;br /&gt;
doze extwa legs in bed. Well, dat&#39;s funny yeah.&lt;br /&gt;
But you twy being&lt;br /&gt;
SPIDERMAN for a month or two. Go ahead.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>I, CEO: How Medium.com went from being anti-AI to pro-AI</title>
		<link href="http://plaintext.brennan.day/i-ceo-how-medium-com-went-from-being-anti-ai-to-pro-ai/"/>
		<updated>2026-09-15T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/i-ceo-how-medium-com-went-from-being-anti-ai-to-pro-ai/</id>
		<content type="html">&lt;p&gt;When I first joined Medium.com, I thought I was late to the party. Little did I know I would be one of the platform&#39;s most veteran members still writing and publishing here after over ten years. One of my first-ever posts was about getting into the discourse about &lt;a href=&quot;https://blog.brennanbrown.ca/anti-medium-30d6fbafc5f8&quot;&gt;what Medium should be&lt;/a&gt;. It&#39;s a rather embarrassing read a decade later, but it&#39;s important to note I&#39;ve always been interested in the longevity of this place while also not shying away from being critical when necessary.&lt;/p&gt;
&lt;p&gt;For my first nine or so years on the platform, I was just blogging as a hobby. It was an enjoyable way to write and get my thoughts out into the world. Only last November did I really start to take writing seriously as my career, and I&#39;ve been on a steady posting cadence since--writing around 25 posts per month, with each post averaging around 2,000 words.&lt;/p&gt;
&lt;p&gt;While a lot of my work doesn&#39;t gain that many views, the few breakout hits that do have virality have been sufficient for me to make writing my full-time job now. It&#39;s a modest income, not livable for most, but it is for me. I&#39;ve had quite a number of my stories boosted, and even had one &lt;a href=&quot;https://www.instagram.com/p/DXcigPmCV_b/?hl=en&quot;&gt;highlighted as a Staff Pick&lt;/a&gt; a few days after my 30th birthday.&lt;/p&gt;
&lt;p&gt;I&#39;m not shy to criticize this platform that pays me a living, but I am going to make sure it&#39;s &lt;a href=&quot;https://coachtony.medium.com/fell-in-a-hole-got-out-381356ec8d7f&quot;&gt;for good reason&lt;/a&gt;. I have also been someone who&#39;s been critical of generative artificial intelligence for months, writing around a dozen stories covering the topic. My first was going over how &lt;a href=&quot;https://medium.com/@brennanbrown/the-piss-average-problem-ec2a2dd6f5ad&quot;&gt;we&#39;re going to face an authenticity crisis and a crisis of mediocrity&lt;/a&gt; because of the technology.&lt;/p&gt;
&lt;h2 id=&quot;part-one%3A-a-brief-history&quot; tabindex=&quot;-1&quot;&gt;PART ONE: A Brief History&lt;/h2&gt;
&lt;p&gt;Why are we talking about AI now, anyways? Well, let me start at the beginning. &lt;a href=&quot;https://techcrunch.com/2012/11/15/ev-williams-takes-to-medium-to-discuss-the-true-purpose-of-his-new-publishing-tool/&quot;&gt;Medium.com was founded by Ev Williams&lt;/a&gt; on September 25, 2012, and the platform has had a simple and stubborn mission: to be a place for human writing.&lt;/p&gt;
&lt;p&gt;The Internet was (and obviously still is) rewarding fast, shallow, click-driven content. &lt;a href=&quot;https://www.theguardian.com/media/2016/apr/10/twitter-ev-williams-medium-content-fast-food&quot;&gt;Junk food for the mind.&lt;/a&gt; Williams wanted to create a clean, distraction-free place for meaningful writing exceeding short character limits, giving thoughtful ideas better accessibility. His vision was an alternative system which measured stories by how much time people spent reading them rather than sensationalized headlines designed only for ad clicks. He wasn&#39;t new to this, either, having been one of the creators of &lt;a href=&quot;https://blogger.com/&quot;&gt;blogger.com&lt;/a&gt; years before.&lt;/p&gt;
&lt;p&gt;Medium.com never set out to be the highest-paying or fastest-growing platform. The premise was, rather, that it would be a place where people could think in public, and share ideas longhand without the short attention-spans and white noise of corporate social media.&lt;/p&gt;
&lt;p&gt;And that premise has survived over a decade. It&#39;s survived the &lt;a href=&quot;https://techcrunch.com/2017/03/22/medium-debuts-its-paid-membership-subscription-program/&quot;&gt;pivot to subscriptions&lt;/a&gt;, the &lt;a href=&quot;https://medium.com/alpha-beta-blog/why-are-big-medium-publications-closing-4f24460b44dc&quot;&gt;death of in-house publications&lt;/a&gt;, and the &lt;a href=&quot;https://medium.design/about-mediums-new-ish-logo-458885b2d8ab&quot;&gt;numerous logo and branding changes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What it did not survive, though, was a new CEO changing his mind.&lt;/p&gt;
&lt;p&gt;Tony Stubblebine, founder and former CEO of &lt;a href=&quot;https://coach.me/&quot;&gt;Coach.me&lt;/a&gt;, &lt;a href=&quot;https://medium.com/blog/medium-names-technology-and-digital-media-veteran-tony-stubblebine-ceo-founder-ev-williams-7ff0a859f133&quot;&gt;took over Medium from Ev Williams&lt;/a&gt; in 2022. &lt;a href=&quot;https://medium.com/the-coach-life/fell-in-a-hole-got-out-381356ec8d7f&quot;&gt;Stubblebine saved the company&lt;/a&gt;, managing to turn $2.6 million per month in losses into Medium&#39;s first profitable month in August 2024. By his own account, this was done by refusing to chase the so-called genAI &amp;quot;content&amp;quot; gold rush hollowing out other platforms.&lt;/p&gt;
&lt;p&gt;For three years, &amp;quot;no AI&amp;quot; was &lt;em&gt;the&lt;/em&gt; turnaround story for Medium.com. And that&#39;s what is being dismantled now, by none other than Stubblebine himself.&lt;/p&gt;
&lt;p&gt;While this story is about Medium.com, it can also be seen in nearly every other industry. There&#39;s a case study here of what happens when the person in power finds themselves increasingly absorbed by the temptation and seduction of the machine.&lt;/p&gt;
&lt;h2 id=&quot;part-two%3A-the-wall-(2023-2024)&quot; tabindex=&quot;-1&quot;&gt;PART TWO: The Wall (2023-2024)&lt;/h2&gt;
&lt;p&gt;Medium&#39;s first AI policy went up in January 2023, written by VP of Content, Scott Lamb. Things were still rather tentative regarding how we ought to tackle AI in general, and so it was rather permissive by later standards. AI-generated posts were allowed as long as the AI usage was disclosed, but it was already declaring the platform&#39;s identity: &lt;a href=&quot;https://sidehustleroad.substack.com/p/medium-doesnt-want-your-ai-written&quot;&gt;Medium is for human storytelling, not machine-generated writing&lt;/a&gt;. By July 2023, the language changed from &amp;quot;welcome&amp;quot; to merely &amp;quot;allow,&amp;quot; and any fully AI-written story was restricted to reaching only the author&#39;s existing followers, suppressed from reaching the rest of the site&#39;s audience.&lt;/p&gt;
&lt;p&gt;In September of that year, the wall was up. Medium blocked OpenAI&#39;s GPTBot crawler and rewrote its terms of service to forbid scraping. Medium joined the likes of CNN, the &lt;em&gt;New York Times&lt;/em&gt;, and other publishers &lt;a href=&quot;https://techcrunch.com/2023/09/28/medium-hints-at-a-nascent-media-coalition-to-block-ai-crawlers&quot;&gt;resisting unlicensed genAI training&lt;/a&gt;. Stubblebine declared the default answer &lt;a href=&quot;https://www.theregister.com/software/2023/09/29/medium-hopes-to-stop-ai-bot-crawlers-from-scraping-content/1310668&quot;&gt;on genAI training was no&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A few months later, in an interview, he disclosed that &lt;a href=&quot;https://www.semafor.com/article/02/07/2024/what-mediums-tony-stubblebine-has-learned-about-tech-and-journalism&quot;&gt;an AI company&#39;s CEO had privately offered Medium a buyout in the millions&lt;/a&gt; for training rights, and that Medium shrugged it off as insultingly small.&lt;/p&gt;
&lt;p&gt;In April 2024, a new &lt;a href=&quot;https://www.techtimes.com/articles/303573/20240414/medium-ai-generated-content-new-partner-program-policy.htm&quot;&gt;Partner Program policy&lt;/a&gt; &lt;a href=&quot;https://www.plagiarismtoday.com/2024/04/11/medium-sets-new-policies-on-ai-generated-writing/&quot;&gt;banned AI-generated writing from monetization&lt;/a&gt;, regardless of whether or not it was disclosed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://generativeai.pub/my-thoughts-on-the-mediums-new-policy-on-ai-generated-content-614179df75c8?gi=e21d84667859&quot;&gt;Jim Clyde Monge&lt;/a&gt;, and many other writers on the platform, understood the new policy update as a line in the sand against genAI. Days later, Stubblebine reaffirmed &lt;a href=&quot;https://medium.com/westenberg/inside-mediums-mission-to-elevate-authentic-voices-a-q-a-with-ceo-tony-stubblebine-233b24e9415e&quot;&gt;in a Q&amp;amp;A&lt;/a&gt; that Medium would not let AI companies train on the work of writers, regarding this &amp;quot;rejection of AI&amp;quot; as core to the platform&#39;s mission. By December 2024, Stubblebine was &lt;a href=&quot;https://podcasts.apple.com/us/podcast/315-tony-stubblebine-ceo-of-medium-on-human-curation/id1476885647?i=1000681383471&quot;&gt;continuing to do press&lt;/a&gt; about minimizing AI-generated content on the platform. As of late March 2025, Medium was &lt;a href=&quot;https://medium.com/write-a-catalyst/writers-using-ai-editing-tools-are-in-for-a-big-surprise-in-november-3dc47000c431&quot;&gt;actively suspending writers&lt;/a&gt; over suspected undisclosed genAI usage.&lt;/p&gt;
&lt;p&gt;For two years, it was clear that every stance and policy coming from Medium.com was that it believed it needed to be human-first and anti-AI. To maintain integrity, yes, but to also ensure the platform &lt;em&gt;survived&lt;/em&gt;. The position was steadfast and consistent.&lt;/p&gt;
&lt;h2 id=&quot;part-three%3A-the-turning-point-(2025-2026)&quot; tabindex=&quot;-1&quot;&gt;PART THREE: The Turning Point (2025-2026)&lt;/h2&gt;
&lt;p&gt;Almost exactly a year ago on September 10th, 2025, Medium joined Reddit, Yahoo, Quora, and O&#39;Reilly Media in launching &lt;a href=&quot;https://rslstandard.org/press/rsl-standard&quot;&gt;Really Simple Licensing&lt;/a&gt;. This was a new open standard, letting publishers set machine-readable terms for genAI crawlers. Stubblebine&#39;s &lt;a href=&quot;https://medium.com/blog/finally-an-internet-standard-for-writers-rights-vs-ai-companies-07ffe09f15f8&quot;&gt;own announcement&lt;/a&gt; argued that since genAI runs on stolen content, the standard was a legitimate way to force AI companies to either pay, stop, or shut down.&lt;/p&gt;
&lt;p&gt;But really, this was a change from blocking to licensing. The AI companies were no longer hostile trespassers antithetical to the platform, but were now partners to be negotiated with. AI was now a line of revenue, and understood fatalistically as &lt;a href=&quot;https://www.semafor.com/article/09/19/2025/how-medium-plans-to-use-ai-to-pay-creators-fairly&quot;&gt;a fact of the new ecosystem to be priced&lt;/a&gt;, no longer being refused outright.&lt;/p&gt;
&lt;p&gt;Nine days later the other shoe dropped at Medium Day 2025. Medium announced &lt;a href=&quot;https://tk.xyz/&quot;&gt;TK&lt;/a&gt;, a new writing and notes app &lt;a href=&quot;https://coachtony.medium.com/the-straight-tk-on-mediumtk-ee2a87199241&quot;&gt;built explicitly around AI-assisted composition&lt;/a&gt;. &lt;a href=&quot;https://www.fastcompany.com/91407562/medium-ceo-tony-stubblebine-interview&quot;&gt;Stubblebine had been asked&lt;/a&gt; directly a few days earlier whether Medium was building AI-enabled tools, and he answered yes.&lt;/p&gt;
&lt;p&gt;Anecdotally, I know many creatives that feel negatively about genAI, and very few who are neutral or in support of it. Most of the writers I&#39;ve encountered on Medium are not fans. Which is why Stubblebine&#39;s decisions in the past year have been so baffling.&lt;/p&gt;
&lt;p&gt;And so we&#39;ve witnessed &lt;a href=&quot;https://podcasts.apple.com/us/podcast/how-ai-is-changing-writing-with-tony-stubblebine/id1522960417?i=1000734040477&quot;&gt;a steady change of Medium&#39;s rhetoric&lt;/a&gt; on genAI over the past year. In October 2025, Stubblebine described &lt;a href=&quot;https://mediacopilot.substack.com/p/the-writing-renaissance-tony-stubblebine&quot;&gt;a coming &amp;quot;writing renaissance&amp;quot;&lt;/a&gt; in which AI serves as &lt;a href=&quot;https://www.youtube.com/watch?v=sf0SHZ7zujs&quot;&gt;a thoughtful companion&lt;/a&gt; for writers, contrasting with the idea of an AI assistant writing and doing all the work for you.&lt;/p&gt;
&lt;p&gt;Stubblebine began using the term &amp;quot;second brain&amp;quot; to describe what &lt;a href=&quot;https://idratherbewriting.com/blog/stubblebine-how-ai-is-changing-writing&quot;&gt;he wanted genAI to do instead TK&lt;/a&gt;, saying the app had the ability to surface a writer&#39;s decades of notes and drafts on demand. Compare that to how, &lt;a href=&quot;https://subclub.substack.com/p/on-what-ai-can-and-cant-do-for-writers&quot;&gt;in earlier interviews&lt;/a&gt;, he described how AI was being wildly oversold as something that could do everything. He &lt;a href=&quot;https://dev.to/gajanan0707/embracing-authentic-writing-a-conversation-with-mediums-ceo-tony-stubblebine-4jj&quot;&gt;still insisted genAI could never substitute the human connection&lt;/a&gt; built through writing, and yet he was building an editor that generated machine prose on request.&lt;/p&gt;
&lt;p&gt;By August 2026, in an interview, Stubblebine was arguing that &lt;a href=&quot;https://www.ibtimes.com/medium-ceo-tony-stubblebine-why-ai-could-kill-creator-economy-3806165&quot;&gt;genAI killed the old creator economy&lt;/a&gt; by exposing how much was never more than content written at a machine level to begin with. RSL reached its 1.0 spec, and Medium was &lt;a href=&quot;https://rslcollective.org/press&quot;&gt;still named as a backer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;TK moved out of invite-only beta to general availability for Friends of Medium subscribers through the first half of 2026. Medium&#39;s own messaging &lt;a href=&quot;https://medium.com/medium-handbook/writer-newsletter-get-the-10-day-medium-starter-pack-for-writers-c8bfbca5bc0c&quot;&gt;had grown noticeably defensive&lt;/a&gt;. The July newsletter of this year acknowledged the tension between the platform&#39;s anti-genAI stance and its new genAI writing app in the same breath. The argument being made was that TK&#39;s AI merely prompts you to create. It wasn&#39;t doing the creating for you. Right?&lt;/p&gt;
&lt;p&gt;A review by longtime Medium writer &lt;a href=&quot;https://jacquelinedooley.substack.com/p/an-unsolicited-opinion-of-mediums&quot;&gt;Jacqueline Dooley called TK an AI-assisted writing app in practice&lt;/a&gt;, no matter how Medium tried to angle the copy on the product page. The generation was within the drafting and writing itself, a complete reversal of what the platform had spent two years promising. Dooley ended up leaving for Substack over this (something &lt;a href=&quot;https://blog.brennanbrown.ca/substacks-subpar-subculture-226f4a04b485&quot;&gt;I personally wouldn&#39;t recommend&lt;/a&gt;), after being a writer on Medium for eight years. There were &lt;a href=&quot;https://medium.com/@johnpearce650/terrible-karma-at-mediocre-985c99a89e5b&quot;&gt;accusations by others&lt;/a&gt; that Medium.com was in fact paying writers who produced favourable early reviews of TK.&lt;/p&gt;
&lt;h2 id=&quot;part-four%3A-my-thoughts&quot; tabindex=&quot;-1&quot;&gt;PART FOUR: My Thoughts&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://medium.com/blog/medium-day-2026-register-now-b58f0644ce10&quot;&gt;Medium Day for 2026&lt;/a&gt; is only a few days away, and I was initially accepted as a speaker for the event, but I&#39;ve since decided not to go through with it after looking at what Medium&#39;s stance on generative AI has become over the past year. Tony is once again set to do a keynote, where he&#39;s going to most likely going to to speak positively about generative AI.&lt;/p&gt;
&lt;p&gt;For me, personally, it has been more than frustrating watching &lt;a href=&quot;https://medium.com/the-coach-life/fell-in-a-hole-got-out-381356ec8d7f&quot;&gt;the guy who saved Medium&lt;/a&gt; start writing articles about &lt;a href=&quot;https://coachtony.medium.com/i-fell-in-love-with-morning-pages-again-because-of-ai-48a7c76af7a1&quot;&gt;how he got back into morning pages thanks to AI&lt;/a&gt;, or how he feels as though he has a &lt;a href=&quot;https://coachtony.medium.com/a-presidential-briefing-for-every-aspect-of-my-day-9cc59cf6660d&quot;&gt;daily presidential briefing thanks to AI&lt;/a&gt;. I have been a fan of Stubblebine since the Coach.me days, and I can tell he&#39;s passionate and smart--the decisions he&#39;s been making haven&#39;t been out of malice, but I do think they&#39;re misaligned.&lt;/p&gt;
&lt;p&gt;It is difficult to not view this as someone who has found a personal fascination with the technology and then decided to implement it into his professional business. And to be honest, I can&#39;t imagine everyone internally at Medium is happy with this pivot over the past year.&lt;/p&gt;
&lt;p&gt;I think it would be beneficial to everyone--and I mean writers, readers, staff and publication editors alike--if Medium returned to being a human-only platform and anti-AI company. I recognize that this ask is essentially an impossibility at this point. The genie is out, and I&#39;m trying to close the barn doors when all the robotic horses are already gone. But the cognitive dissonance and mental gymnastics are obvious to everyone.&lt;/p&gt;
&lt;p&gt;I also recognize it is rather callous with regard to the time and effort that&#39;s most likely gone into developing the TK product and app, but it makes the most sense regardless. But I think TK can still exist, actually. But it shouldn&#39;t have a connection to Medium.com--if Stubblebine is interested in generative AI, I&#39;m not going to mark that as a scarlet letter against him, but I do think it needs to be compartmentalized and separated from Medium as a platform. Just because a CEO&#39;s views changed doesn&#39;t mean the entire company&#39;s views need to change in turn.&lt;/p&gt;
&lt;p&gt;Overall, I am still going to be here, writing and reading on Medium, because I do not think the decisions Stubblebine is making are ruining Medium. It still has an incredible payment model for creators and writers, and is still one of the few places online that values longform, high-quality writing. It would be alarmist and just plain wrong to say the decision to lean into genAI is stopping any of that.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>There is so much to love and celebrate. Reclaim joy. Be open. Forgive.</title>
		<link href="http://plaintext.brennan.day/there-is-so-much-to-love-and-celebrate-reclaim-joy-be-open-forgive/"/>
		<updated>2026-09-14T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/there-is-so-much-to-love-and-celebrate-reclaim-joy-be-open-forgive/</id>
		<content type="html">&lt;p&gt;Autumn continues with chilly winds and overcast skies, and I couldn&#39;t be more grateful. I&#39;ve had a lot more eyes on my work than usual lately, and so I&#39;ve taken stock over the past few days--trying to measure the inventory of myself.&lt;/p&gt;
&lt;p&gt;But to do so, I first start with the world.&lt;/p&gt;
&lt;p&gt;I think to myself of the billions of people across Earth who work hard on a near-daily basis. Those who are responsible for keeping the plumbing water-rushing and the lights bright and humming. Our oceans are peppered with titan-sized cargo ships carrying hundreds of millions of pounds of products--a lot of it made by people. Our skies dotted with aircraft thought impossible a century ago. How many colours of yarn are being knit? How many people are confessing their love right now? Petting their dog? How many children are writing their first poem, at this very moment?&lt;/p&gt;
&lt;p&gt;It is overwhelming how much joy and humour there is at any given moment. The surface of this planet carrying us, together, quietly travelling through the impossible vastness of space.&lt;/p&gt;
&lt;p&gt;We have so much in common. All people are nearly identical genetically, you know--99.9% of the genome is shared between us all. None of this is to say that we are without our differences and our faults, or that we&#39;re not facing problems minor and existential, but it is good to remember the good.&lt;/p&gt;
&lt;p&gt;I return once again to Carl Sagan, &lt;a href=&quot;https://www.loc.gov/item/cosmos000110/&quot;&gt;speaking about our Pale Blue Dot&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://plaintext.brennan.day/thats-home-thats-us/&quot;&gt;That&#39;s home. That&#39;s us.&lt;/a&gt; On it everyone you love, everyone you know, everyone you ever heard of, every human being who ever was, lived out their lives. The aggregate of our joy and suffering, thousands of confident religions, ideologies, and economic doctrines, every hunter and forager, every hero and coward, every creator and destroyer of civilization, every king and peasant, every young couple in love, every mother and father, hopeful child, inventor and explorer, every teacher of morals, every corrupt politician, every &amp;quot;superstar,&amp;quot; every &amp;quot;supreme leader,&amp;quot; every saint and sinner in the history of our species lived there--on a mote of dust suspended in a sunbeam.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Being a single person with a single lifetime on this mote of dust, I&#39;ve been trying to answer the question &amp;quot;who am I?&amp;quot; my entire life. I think that&#39;s rather typical. I try my best to present an answer with clarity, with steadfast &lt;a href=&quot;https://brennan.day/&quot;&gt;values&lt;/a&gt; and ethics. But the truth is far more malleable and nebulous.&lt;/p&gt;
&lt;p&gt;I have the irrational compulsion to leave the world better than I found it, however possible that may be. And I have an irrational compulsion to write and share it with you, reader.&lt;/p&gt;
&lt;p&gt;I want to be defined by my joy and positivity. I do not want to be defined by my enemies and what I&#39;m against. And there&#39;s a lot of friction that goes up against that when I feel compelled to speak up on important issues I don&#39;t see others speaking up on enough. It is easy to mistake passion and care for outrage and scolding, I don&#39;t blame anybody for getting the wrong idea or a false impression.&lt;/p&gt;
&lt;p&gt;A lot of us are afraid of the same thing, and approach it from different directions--of institutions that don&#39;t answer to anyone, and of old money reshaping our world. Of being sorted into a side before anyone&#39;s bothered to ask what we actually believe.&lt;/p&gt;
&lt;p&gt;There are two constants I have tried to be consistent with in my writing. First, a warmth towards people. I try my best to thank others and attribute properly, and follow through on the promises I make to my readers.&lt;/p&gt;
&lt;p&gt;Second is a fury towards systems. The oppressive mechanics in place that subjugate most everyone, even those that argue in defense for them. Of course, there are exceptions to this, like individuals who are vectors of harm with power and money.&lt;/p&gt;
&lt;p&gt;I&#39;ve never believed in the idea that you can win an argument. Whether it&#39;s the domestic mundane or philosophical, debates are exchanges and dialogues, not tribal contests.&lt;/p&gt;
&lt;p&gt;My fury is aimed at concentration--at the people who hoard power and spend it in the dark--not at whoever happens to be standing nearest, and not those who leave angry comments out of a need for catharsis.&lt;/p&gt;
&lt;p&gt;Those in power can throttle the money, chip at the reputation, threaten rights we assumed were permanent--but they cannot take the joy of simply getting to be alive on this rock, right now, with the people we love. And they cannot take the will to keep choosing it. &lt;a href=&quot;https://muse.jhu.edu/article/249802&quot;&gt;Toi Derricotte wrote how joy is an act of resistance&lt;/a&gt;, and &lt;a href=&quot;https://www.akpress.org/pleasure-activism.html&quot;&gt;adrienne maree brown gave us pleasure activism&lt;/a&gt;. Reclaiming our satisfaction is a way of resisting systems built on scarcity and our exhaustion. Every system built on fear needs you tired and joyless to keep operating and functioning. Do not go gently into that good night.&lt;/p&gt;
&lt;p&gt;Right now, while you read this, there are people maintaining the software the rest of us built our entire digital lives on top of, and ask for nothing in return. No corporate funding. No millionaires back them. People who have spent hours or decades creating the free, open-source digital commons. curl moves data on &lt;a href=&quot;https://infrastructure-heroes.org/maintainers/daniel-stenberg/&quot;&gt;more than ten billion devices&lt;/a&gt;. Phones, cars, streaming services, hardware sent to Mars. Maintained for nearly thirty years nearly single-handedly by a Swedish developer who never built a company nor took a salary from the corporations relying on his work every day. The encryption library OpenSSL, which protects two-thirds of the web&#39;s traffic--your banking, your email, your passwords--is maintained by &lt;a href=&quot;https://www.propublica.org/article/the-u.s.-government-paying-to-undermine-internet-security-not-to-fix-it&quot;&gt;four volunteers, only one of them full-time, on a foundation budget of about two thousand dollars a year&lt;/a&gt;. Ordinary people spend a good chunk of their one short life making something useful, because it was needed and they were capable of making it.&lt;/p&gt;
&lt;p&gt;So, I think I have not articulated enough that, because of things like the examples above, I believe people are inherently good. I have a deep optimism for our shared, collective future still. Despite everything. You are not forever-marked a bad person because you&#39;ve done bad things. We will always have room for more grace and benevolence and restoration.&lt;/p&gt;
&lt;p&gt;I desperately try to remind myself often that all we have is each other. There is a short amount of time for all of us, a century at best, on a planet that&#39;s existed for 4.5 billion years. We will only ever experience up to 0.0000018% of Earth&#39;s history. And we will only ever experience up to 0.00000058% of the universe&#39;s existence.&lt;/p&gt;
&lt;p&gt;That&#39;s why I take stock and examine the inventory of myself. To ensure that I maintain the beauty of good discipline, and practice an everlasting optimism towards others. I am certainly far from succeeding in doing that all the time, but I am trying, I promise.&lt;/p&gt;
&lt;h2 id=&quot;submissions-open&quot; tabindex=&quot;-1&quot;&gt;Submissions Open&lt;/h2&gt;
&lt;p&gt;Even now, when a handful of corporations try to control what billions of people are allowed to see, you can &lt;em&gt;still&lt;/em&gt; put up a single page on &lt;a href=&quot;https://neocities.org/&quot;&gt;Neocities&lt;/a&gt;--a scrappy little &lt;code&gt;index.html&lt;/code&gt;--and have it be seen and discussed. &lt;a href=&quot;http://plaintext.brennan.day/i-want-to-be-unremarkable/&quot;&gt;I&#39;m not remarkable&lt;/a&gt;, and what I do isn&#39;t clever. I took efforts, research, and arguments other people had painstakingly already done, spent a couple hours writing CSS and Markdown, ran it through a converter to spit out plain HTML, and uploaded it. That&#39;s it. &lt;code&gt;Ctrl+S&lt;/code&gt; on that page and you&#39;ll have everything.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/&quot;&gt;&lt;strong&gt;You can do this. For whatever important thing in your life is--or just for something you want to share with the world because it delights you--you can make a page and put it up and people will find it. Anybody can.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I already know what I want to build next. Another one-page site, but this one to collect good projects, code or otherwise, made by humans. If you&#39;ve made something like that, tell me about it in the comments!&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>It&#39;s Christlike to Love Immigrants and Transfolk</title>
		<link href="http://plaintext.brennan.day/its-christlike-to-love-immigrants-and-transfolk/"/>
		<updated>2026-09-13T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/its-christlike-to-love-immigrants-and-transfolk/</id>
		<content type="html">&lt;p&gt;Since writing my article on &lt;a href=&quot;http://plaintext.brennan.day/normalized-fascism-in-open-source-12-million-given-to-dhh/&quot;&gt;DHH&lt;/a&gt;, I&#39;ve been getting an above-average number of emails in my inbox decrying my stance and public advocacy. And I have to be honest, I find it so &lt;em&gt;weird&lt;/em&gt;, more than anything. It&#39;s confusing to me how many typical people--men of the same ilk as myself--want to play defence for the handful of millionaires and corporate executives and weird little guys. A lot of the time, religion will be invoked, specifically Christianity.&lt;/p&gt;
&lt;p&gt;I&#39;m a Christian myself, I&#39;ve written &lt;a href=&quot;http://plaintext.brennan.day/how-and-why-i-believe-in-god-the-ballad-of-tragic-theism/&quot;&gt;my testimony before&lt;/a&gt;, and while I&#39;ve had a wayward path, I know God meets people where they are.&lt;/p&gt;
&lt;p&gt;And that&#39;s why it&#39;s so baffling to me that people would attempt to invoke Christ when they tell me (and these are actual quotes from emails I&#39;ve received) that they have scorn towards the &amp;quot;underpaid illegal labor,&amp;quot; and that they refuse to become &amp;quot;inline with transgenderism&amp;quot; and that their &amp;quot;empathy and compassion are finite.&amp;quot;&lt;/p&gt;
&lt;p&gt;It&#39;s baffling to me how the clear disdain for fellow human beings isn&#39;t obvious when they&#39;re spouting this rhetoric. And, perhaps more importantly, these kinds of beliefs are simply antithetical to the teachings of Jesus Christ in the Bible. Explicitly so. To go after the marginalized, to be anti-social justice, to support the rich? None of this is Christ-like.&lt;/p&gt;
&lt;h2 id=&quot;christ-touched-the-untouchable&quot; tabindex=&quot;-1&quot;&gt;Christ Touched the Untouchable&lt;/h2&gt;
&lt;p&gt;Let&#39;s begin when a leper came to Him, someone untouchable under the Law, and Jesus didn&#39;t keep His distance. &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Mark%201%3A40-41&amp;amp;version=NKJV&quot;&gt;Mark 1:40-41&lt;/a&gt; says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Now a leper came to Him, imploring Him, kneeling down to Him and saying to Him, &amp;quot;If You are willing, You can make me clean.&amp;quot;&lt;br /&gt;
Then Jesus, moved with compassion, stretched out His hand and touched him, and said to him, &amp;quot;I am willing; be cleansed.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Christ touched the untouchable. In &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Luke%2017%3A11-19&amp;amp;version=NKJV&quot;&gt;Luke 17&lt;/a&gt;, ten lepers stood at a distance, crying out for mercy. Jesus healed all ten. Only one turned back to thank Him, and he was a Samaritan, a foreigner and outsider.&lt;/p&gt;
&lt;p&gt;Jesus said to him, &amp;quot;Arise, go your way. Your faith has made you well&amp;quot; (&lt;a href=&quot;https://www.biblegateway.com/passage/?search=Luke%2017%3A19&amp;amp;version=NKJV&quot;&gt;Luke 17:19&lt;/a&gt;). The outsider was the one who returned.&lt;/p&gt;
&lt;p&gt;A woman, often interpreted as a sex worker, and known as a sinner wept at His feet, washing Christ&#39;s feet with her tears and wiping them with her hair. And Jesus did not recoil at all. He instead said, &amp;quot;Your sins are forgiven&amp;quot; (&lt;a href=&quot;https://www.biblegateway.com/passage/?search=Luke%207%3A36-50&amp;amp;version=NKJV&quot;&gt;Luke 7:36-50&lt;/a&gt;). He let her love be the evidence of grace. And later, in &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Matthew%2011%3A19&amp;amp;version=NKJV&quot;&gt;Matthew 11:19&lt;/a&gt;, Jesus said of Himself:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Son of Man came eating and drinking, and they say, &#39;Look, a glutton and a winebibber, a friend of tax collectors and sinners!&#39;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He did not deny it. Christ has always been a friend of sinners.&lt;/p&gt;
&lt;h2 id=&quot;love-your-neighbor%2C-and-love-the-stranger&quot; tabindex=&quot;-1&quot;&gt;Love Your Neighbor, and Love the Stranger&lt;/h2&gt;
&lt;p&gt;Scripture does not leave neighbour-love to our finite instincts. &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Leviticus%2019%3A18&amp;amp;version=NKJV&quot;&gt;Leviticus 19:18&lt;/a&gt; says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;You shall not take vengeance, nor bear any grudge against the children of your people, but you shall love your neighbor as yourself.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And when a lawyer asked Jesus, &amp;quot;Who is my neighbour?&amp;quot; Jesus told &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Luke%2010%3A25-37&amp;amp;version=NKJV&quot;&gt;the parable of the Good Samaritan&lt;/a&gt;. A man is beaten and left for dead. A priest and a Levite pass by. The Samaritan stops, bandages his wounds, and pays for his care.&lt;/p&gt;
&lt;p&gt;The Samaritan was a despised foreigner.&lt;/p&gt;
&lt;p&gt;Jesus asks, &amp;quot;So which of these three do you think was neighbor to him who fell among the thieves?&amp;quot; (&lt;a href=&quot;https://www.biblegateway.com/passage/?search=Luke%2010%3A36-37&amp;amp;version=NKJV&quot;&gt;Luke 10:36&lt;/a&gt;). Not the one who shared his language, culture, or passport. The answer is the foreigner, the one who showed mercy. Then Jesus says, &amp;quot;Go and do likewise.&amp;quot;&lt;/p&gt;
&lt;p&gt;The Law is explicit about immigrants. &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Leviticus%2019%3A34&amp;amp;version=NKJV&quot;&gt;Leviticus 19:34&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The stranger who dwells among you shall be to you as one born among you, and you shall love him as yourself; for you were strangers in the land of Egypt: I am the Lord your God.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Deuteronomy%2010%3A19&amp;amp;version=NKJV&quot;&gt;Deuteronomy 10:19&lt;/a&gt; says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Therefore love the stranger, for you were strangers in the land of Egypt.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is clearly not about assimulation. God says to remember you were strangers, and love the stranger.
Christ always touched lepers, forgave the sex worker, made the Samaritan a hero, and commanded us to love the foreigner as ourselves.&lt;/p&gt;
&lt;h2 id=&quot;christ-and-those-outside-the-binary&quot; tabindex=&quot;-1&quot;&gt;Christ and Those Outside the Binary&lt;/h2&gt;
&lt;p&gt;Christ also made room for the eunuchs. Those who were not fully male by the categories their culture recognized, barred by Mosaic law from full inclusion in the assembly of the Lord (Deuteronomy 23:1), and treated as neither one thing nor another. Bodies or identities which did not fit into the binary. And Scripture says not to condemn them, but to promise them a place.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.biblegateway.com/passage/?search=Isaiah%2056%3A3-5&amp;amp;version=NKJV&quot;&gt;Isaiah 56:3-5&lt;/a&gt; says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Do not let the son of the foreigner who has joined himself to the Lord speak, saying, &#39;The Lord has utterly separated me from His people&#39;; nor let the eunuch say, &#39;Here I am, a dry tree.&#39; For thus says the Lord: &#39;To the eunuchs who keep My Sabbaths, and choose what pleases Me, and hold fast My covenant, even to them I will give in My house and within My walls a place and a name better than that of sons and daughters; I will give them an everlasting name that shall not be cut off.&#39;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;God doesn&#39;t tell the eunuch to become something else before he&#39;s welcome. God tells him his exclusion is over. Better than sons and daughters. An everlasting name.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Matthew%2019%3A12&amp;amp;version=NKJV&quot;&gt;Matthew 19:12&lt;/a&gt;, after His disciples balk at His teaching on marriage, Jesus says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For there are eunuchs who were born thus from their mother&#39;s womb, and there are eunuchs who were made eunuchs by men, and there are eunuchs who have made themselves eunuchs for the kingdom of heaven&#39;s sake. He who is able to accept it, let him accept it.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jesus names those born that way, made that way by others, and those who choose it. There is no condemnation. He doesn&#39;t erase the differences. He says some people don&#39;t fit the categories everyone assumes, and that&#39;s alright with Him.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Acts%208%3A26-40&amp;amp;version=NKJV&quot;&gt;Acts 8&lt;/a&gt;, Philip is sent out to the desert road to meet an Ethiopian eunuch, a court official, reading Isaiah in his chariot. This man is a foreigner, a Gentile, and a eunuch who would have been excluded from full worship at the Temple under Mosaic law. Philip does not hesitate. He explains the good news, and when they come to water, the eunuch asks, &amp;quot;See, here is water. What hinders me from being baptized?&amp;quot; (&lt;a href=&quot;https://www.biblegateway.com/passage/?search=Acts%208%3A36&amp;amp;version=NKJV&quot;&gt;Acts 8:36&lt;/a&gt;). Nothing hinders him. Philip baptizes him on the spot. The very first Gentile convert recorded after Pentecost is a gender-nonconforming outsider. Christ&#39;s church opens the door wide.&lt;/p&gt;
&lt;p&gt;Paul, in &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Galatians%203%3A28&amp;amp;version=NKJV&quot;&gt;Galatians 3:28&lt;/a&gt; writes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There is neither Jew nor Greek, there is neither slave nor free, there is neither male nor female; for you are all one in Christ Jesus.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The categories the world uses to rank and exclude people, including the male/female binary used to justify so much hate today, collapse at the foot of the cross. If Christ&#39;s own body of believers has no use for &amp;quot;male nor female&amp;quot; as a line of division, then the transfolk in our pews, our families, and our replies aren&#39;t a problem to be solved. They&#39;re already inside the &amp;quot;all one&amp;quot; Paul is describing.&lt;/p&gt;
&lt;p&gt;Given all this--the leper, the Samaritan, the sinner, the eunuch, the stranger--I struggle to find a single figure Christ excluded who was already reaching for Him. He was short with those hoarding power, and those turning away the vulnerable to protect their wealth.&lt;/p&gt;
&lt;h2 id=&quot;camels-and-needles&quot; tabindex=&quot;-1&quot;&gt;Camels and Needles&lt;/h2&gt;
&lt;p&gt;And what of the rich? Let&#39;s not forget that the &lt;a href=&quot;https://omacom.io/&quot;&gt;Omacom Foundation&lt;/a&gt; received over 18 million dollars, the majority of it coming from the personal bank accounts of millionaires. In &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Matthew%2019%3A24&amp;amp;version=NKJV&quot;&gt;Matthew 19:24&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It is easier for a camel to go through the eye of a needle than for a rich man to enter the kingdom of God.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A rich young ruler asked what he must do to inherit eternal life. Jesus told him, &amp;quot;If you want to be perfect, go, sell what you have and give to the poor, and you will have treasure in heaven; and come, follow Me&amp;quot; (&lt;a href=&quot;https://www.biblegateway.com/passage/?search=Matthew%2019%3A21&amp;amp;version=NKJV&quot;&gt;Matthew 19:21&lt;/a&gt;). Of course, the ruler was devastated. For he had so, so much.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Luke%2012%3A15&amp;amp;version=NKJV&quot;&gt;Luke 12:15&lt;/a&gt;, Jesus said,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Take heed and beware of covetousness, for one&#39;s life does not consist in the abundance of the things he possesses.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And He told &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Luke%2012%3A16-21&amp;amp;version=NKJV&quot;&gt;the parable of the rich fool&lt;/a&gt; (Luke 12:16-21), the fool who built bigger barns for his surplus grain and said to himself, &amp;quot;Soul, you have many goods laid up for many years; take your ease; eat, drink, and be merry.&amp;quot; But God said to him, &amp;quot;Fool! This night your soul will be required of you; then whose will those things be which you have provided?&amp;quot;&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.biblegateway.com/passage/?search=Matthew%206%3A19-21&amp;amp;version=NKJV&quot;&gt;Matthew 6:19-21&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Do not lay up for yourselves treasures on earth, where moth and rust destroy and where thieves break in and steal; but lay up for yourselves treasures in heaven, where neither moth nor rust destroys and where thieves do not break in and steal. For where your treasure is, there your heart will be also.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://www.biblegateway.com/passage/?search=James%205%3A1-6&amp;amp;version=NKJV&quot;&gt;James 5:1-6&lt;/a&gt; is even more direct:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Come now, you rich, weep and howl for your miseries that are coming upon you! Your riches are corrupted, and your garments are moth-eaten. Your gold and silver are corroded, and their corrosion will be a witness against you and will eat your flesh like fire. You have heaped up treasure in the last days. Indeed the wages of the laborers who mowed your fields, which you kept back by fraud, cry out; and the cries of the reapers have reached the ears of the Lord of Sabaoth. You have lived on the earth in pleasure and luxury; you have fattened your hearts as in a day of slaughter. You have condemned, you have murdered the just; he does not resist you.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;empathy-of-the-spirit&quot; tabindex=&quot;-1&quot;&gt;Empathy of the Spirit&lt;/h2&gt;
&lt;p&gt;Empathy and compassion are fruit of a Spirit that multiplies loaves and fishes. To attempt to desperately ration it, to instead prioritize those who look like you and act like you--sounds like the priest and the Levite, stepping around the body in the road because helping is inconvenient and beneath them. There is no love there. I don&#39;t hear Christianity. I hear Matthew 19&#39;s rich young ruler, walking away grieving because the cost of love was too high. I hear James warning the rich to weep and howl for what&#39;s coming.&lt;/p&gt;
&lt;p&gt;Scripture, especially Christ&#39;s teachings, were always centered around loving those that society deemed the most difficult to love, and the easiest to hate. And Christ never promised the Kingdom of Heaven to the rich and powerful.&lt;/p&gt;
&lt;p&gt;I know Gospel will continue to be politicized and weaponized for cruelty, I know that. But it is really an invitation, repeated across a thousand pages. It is not difficult to figure out how to practice Christ&#39;s teachings in the modern day. It is easy to see who is being shunned and cast out, and who are being rejected and targeted. It is up to followers to do the right thing and &lt;em&gt;love&lt;/em&gt;, and to speak up against injustice and power the way Christ did. That is simply what it looks like to follow Him.&lt;/p&gt;
&lt;p&gt;Go and do likewise.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>A Quarter of a Century Later</title>
		<link href="http://plaintext.brennan.day/a-quarter-of-a-century-later/"/>
		<updated>2026-09-11T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-quarter-of-a-century-later/</id>
		<content type="html">&lt;p&gt;I was five years old, sitting on a dark green shag carpet in my home in Winnipeg, witnessing the television the way everyone else was. My mother was pregnant with my little brother, and she wondered how she could bring another life into a world where something like this could happen.&lt;/p&gt;
&lt;p&gt;I was born in the middle of the 1990s, in the middle of the &#39;peaceful&#39; decade, wedged between the Cold War and the War on Terror. The rise of the early internet made people believe in a connected, peaceful world with open borders and shared knowledge. The United States was understood to be the last remaining global superpower, and citizens felt safe from foreign threats.&lt;/p&gt;
&lt;p&gt;It took only a handful of men with a plan to irreversibly change that.&lt;/p&gt;
&lt;p&gt;A sobriety washed over the world, the taste of ash and dust. And we are now distant enough that an entire generation of millions only knows about what happened from archival footage (often &lt;a href=&quot;https://heatherburns.tech/2026/09/05/the-age-gating-of-history/&quot;&gt;age-gated&lt;/a&gt;) and textbooks.&lt;/p&gt;
&lt;p&gt;While there is one generation who only understands the day as history in textbooks, there are several others who were lucid and present. I was only a few years away from those who remember teachers rolling in a television so they could watch the carnage live as the world fell apart. A horror unifying the previously sheltered children and adolescents of such a superpower.&lt;/p&gt;
&lt;p&gt;And there are many who do not understand why this is still talked about, especially when so many other tragedies are not. It&#39;s a fair question, as &lt;a href=&quot;https://costsofwar.watson.brown.edu/costs/human&quot;&gt;over a million have died&lt;/a&gt; in Iraq, Afghanistan, Syria, Yemen, and Pakistan between 2001 and 2023 as a result. As a response.&lt;/p&gt;
&lt;p&gt;For what came afterwards? Fear and paranoia and grief cultivated into a national unity. Flags displayed in record numbers, political differences set aside, approval ratings for the federal government and political leadership reaching levels unseen in decades. &lt;a href=&quot;https://www.vanityfair.com/story/how-9-11-altered-the-world&quot;&gt;The birth of the digital media era&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The culture spawned is what really gets me.&lt;/p&gt;
&lt;p&gt;You have Robert Pattinson&#39;s performance in &lt;em&gt;Remember Me&lt;/em&gt; (2010), the ending of Ottessa Moshfegh&#39;s &lt;em&gt;My Year of Rest and Relaxation&lt;/em&gt;. You have the fourteenth studio album by Cat System Corp, &lt;a href=&quot;https://www.youtube.com/watch?v=MGnrCbgiwhk&quot;&gt;&lt;em&gt;News at 11&lt;/em&gt;&lt;/a&gt;. You have &lt;a href=&quot;https://www.washingtonpost.com/nation/interactive/2021/loose-change-korey-rowe-911-truth-conspiracy/&quot;&gt;Loose Change&lt;/a&gt; and Michael Moore&#39;s documentary, &lt;em&gt;Fahrenheit 9/11&lt;/em&gt;. The podcast about &lt;a href=&quot;https://art19.com/shows/9-12&quot;&gt;the day after&lt;/a&gt;. The hoax of lost media in &lt;a href=&quot;https://lostmediawiki.com/%22LOL_SUPERMAN%22_(lost_World_Trade_Center_Plaza_footage_from_the_September_11th_attacks;_existence_unconfirmed;_2001)&quot;&gt;&amp;quot;LOL SUPERMAN&amp;quot;&lt;/a&gt;. The thousand tasteless jokes. The &lt;a href=&quot;https://english.elpais.com/culture/2026-08-27/the-fake-911-survivor-how-a-barcelona-woman-created-the-perfect-lie-that-moved-the-united-states.html&quot;&gt;woman who wasn&#39;t there&lt;/a&gt;. The disappearance of &lt;a href=&quot;https://www.newsnationnow.com/us-news/sept11-anniversary/sneha-ann-philip-doctor-911-new-york-city-missing/&quot;&gt;Dr. Sneha Anne Philip&lt;/a&gt;. The comedian Jon Stewart desperately trying to push the &lt;a href=&quot;https://www.911memorial.org/connect/blog/op-ed-why-jon-stewart-fights-those-sick-and-dying-911-related-illnesses&quot;&gt;James Zadroga Act&lt;/a&gt; through Congress and save lives. I&#39;m sure I don&#39;t need to tell you that &lt;a href=&quot;https://faroutmagazine.co.uk/9-11-led-to-the-formation-of-my-chemical-romance/&quot;&gt;My Chemical Romance exists because of it&lt;/a&gt;, or how Seth MacFarlane &lt;a href=&quot;https://faroutmagazine.co.uk/how-seth-macfarlane-narrowly-escaped-tragedy-on-9-11-flight/&quot;&gt;overslept&lt;/a&gt; and avoided being a passenger.&lt;/p&gt;
&lt;p&gt;We try to connect the dots and understand in retrospect, and in truth, this is how I understand what happened. Through the echoes and reverberations caught in media. I was too young to have the memory of the live recordings of buildings imprinted in my mind as it happened. But I can remember my mom, the awful green shag carpet, and how excited I was to have a little brother born seven months later.&lt;/p&gt;
&lt;p&gt;There are &lt;a href=&quot;https://www.youtube.com/watch?v=zx8_Pumdkpg&quot;&gt;hours-long dashboards&lt;/a&gt; on YouTube going through the morning. A masterful compilation of various television stations, news tickers, flight logs, with facts and figures all presented as-it-happened, from 7:46AM to noon. I return to this often, replaying the events, trying to pinpoint exactly when it was understood that the accidental was really intentional. Trying to find the specific moment it was understood the entire world had changed.&lt;/p&gt;
&lt;p&gt;Is this what it means to remember--to hoard cultural aftershocks like a magpie?&lt;/p&gt;
&lt;p&gt;It&#39;s been a quarter of a century. I have nothing new to share with you, only a mimicry of what&#39;s been said countless times before, spun around different threads of ideology. What else do we have left now but rumination? To pick the still-sore scar never fully healed. To orbit the Xerox&#39;d questions and grief and loss. There is still sense left on the table, still a dozen ways to pattern-recognize. It&#39;s only human.&lt;/p&gt;
&lt;p&gt;I do not want to forget. I do not want to forget the consequences of cruelty. I do not want to forget &lt;a href=&quot;https://www.911memorial.org/connect/blog/lend-hand-do-what-you-can-remembering-generosity-gander&quot;&gt;Gander, Newfoundland taking in 6,000 people on 30 flights&lt;/a&gt;. I do not want to forget the Red bandanna man Welles Crowther. I do not want to forget &lt;a href=&quot;https://timeline.911memorial.org/timeline/10681/audios/26/366&quot;&gt;the voicemail of Brian Sweeney&lt;/a&gt; from Flight 175. I do not want to forget &lt;a href=&quot;https://www.911memorial.org/connect/blog/recognizing-war-hero-who-led-wtc-survivors-safety-911&quot;&gt;Rick Rescorla&lt;/a&gt; singing hymns down the stairwell megaphone. I do not want to forget the impossible selflessness of the people who climbed 110 flights of stairs while wearing 90 pounds of FDNY gear just to try to save one more straggler, just one more human being. I do not want to forget the undue violence in the response that came after. I do not want to forget. Please don&#39;t let me forget.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Oldnets and Altnets: A Guide to Building a Low-Spec Daily Internet Out of Gemini, Gopher, and Terminal Tools</title>
		<link href="http://plaintext.brennan.day/oldnets-and-altnets-a-guide-to-building-a-low-spec-daily-internet-out-of-gemini-gopher-and-terminal-tools/"/>
		<updated>2026-09-10T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/oldnets-and-altnets-a-guide-to-building-a-low-spec-daily-internet-out-of-gemini-gopher-and-terminal-tools/</id>
		<content type="html">&lt;p&gt;With news of &lt;a href=&quot;https://omarchy.org/news/2026/09/digitalocean-joins-as-founding-corporate-patron/&quot;&gt;DigitalOcean deciding to give $3 million dollars to Omarchy and DHH&lt;/a&gt;, I thought it would be fitting to once again take a look at alternative visions of what our Internet can be.&lt;/p&gt;
&lt;p&gt;For after writing about the Internet &lt;em&gt;on the Internet&lt;/em&gt; for almost an entire year straight, I think I need a change. The IndieWeb is wonderful, and I&#39;m so thankful for the viable, well-populated people-oriented alternatives that exist to replace nearly all facets of corporate social media--but I would be lying if I said this version of the Internet wasn&#39;t without its own flaws, too.&lt;/p&gt;
&lt;p&gt;Our Internet is cluttered, bloated with complex systems and scripts for the sake of visual interest, interactivity, and social engagement. I am no better myself, for even my own website, &lt;a href=&quot;https://brennan.day/&quot;&gt;Brennan.day&lt;/a&gt;, which could be pared down to only a list of plain-text essays, is full of unnecessary additional functionality and styles which would cause it to load slowly on older or lower-powered devices.&lt;/p&gt;
&lt;p&gt;With this complexity comes reliance on systems created by others as well. Mastodon, the most successful and popular decentralized social networking and microblogging platform, is a &lt;a href=&quot;https://docs.joinmastodon.org/dev/overview/&quot;&gt;&amp;quot;a Ruby on Rails application with a React.js front-end.&amp;quot;&lt;/a&gt; RoR being the &lt;a href=&quot;http://plaintext.brennan.day/normalized-fascism-in-open-source-12-million-given-to-dhh/&quot;&gt;product created by DHH&lt;/a&gt;, and React being the &lt;a href=&quot;https://www.aljazeera.com/features/2026/8/27/metas-18bn-settlement-how-social-platforms-will-change-for-child-users&quot;&gt;product created by Meta&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As someone who never used a microblogging social network service prior to signing up for &lt;a href=&quot;https://social.lol/&quot;&gt;social.lol&lt;/a&gt; on the &lt;a href=&quot;https://jointhefediverse.net/?lang=en-us&quot;&gt;Fediverse&lt;/a&gt;, I have to say that I love Mastodon. I&#39;ve already &lt;a href=&quot;https://social.lol/@brennan&quot;&gt;made over 1,000 posts&lt;/a&gt; and follow over 1,500 accounts which gives me a busy but high-quality feed thanks to the wonderful curation of &lt;a href=&quot;https://fedi.directory/&quot;&gt;Fedi Directory&lt;/a&gt;. And it would be a massive undertaking to change the stack which Mastodon uses.&lt;/p&gt;
&lt;p&gt;But I&#39;ll point out that there are alternatives, such as &lt;a href=&quot;https://misskey-hub.net/en/&quot;&gt;Misskey&lt;/a&gt;, which uses &lt;a href=&quot;https://kai-you.net/article/86094&quot;&gt;&amp;quot;Node.js. TypeScript is used on both the frontend and backend. PostgreSQL is used as its database. Vue.js is used for the frontend.&amp;quot;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Really, though, I want to distance myself from the entire paradigm of these complex technical stacks, the boiling-frog Internet that cleverly uses HTML, CSS, and (mostly) JavaScript to build things on top of the same technologies which have existed for decades.&lt;/p&gt;
&lt;p&gt;I think of Orson Welles, who wrote &amp;quot;if you give somebody constraints, it&#39;s easier to be creative.&amp;quot; And I believe that is exactly what I need. Constraint.&lt;/p&gt;
&lt;p&gt;I&#39;ve written before about &lt;a href=&quot;http://plaintext.brennan.day/gemini-gophers-and-fingers-oh-my-alternative-internets-beyond-https/&quot;&gt;Gemini&lt;/a&gt; and alternative Internets, I&#39;ve set up a &lt;a href=&quot;https://smol.pub/&quot;&gt;smolpub&lt;/a&gt; and a gemini-only &lt;a href=&quot;https://tilde.pink/&quot;&gt;tilde.pink&lt;/a&gt; account. I&#39;ve configured one of my ThinkPads to be terminal-only with &lt;a href=&quot;http://plaintext.brennan.day/i-would-have-written-a-shorter-blog-post-but-i-didn-t-have-the-time-creating-a-writerdeck/&quot;&gt;no desktop environment or graphical user-interface&lt;/a&gt;, but I still haven&#39;t reached where I want to go.&lt;/p&gt;
&lt;p&gt;It&#39;s easy to set up an old machine to be offline-only, and it&#39;s also easy to set up a headless Linux distro. It&#39;s much harder to make such a limited device your daily driver, let alone being the exclusive device you use.&lt;/p&gt;
&lt;p&gt;This is where I realize I want to journey towards: the fraction of the Internet that will not only load but function well on low-end, cheap hardware paired with lean, modern software.&lt;/p&gt;
&lt;p&gt;I have the hardware, and I know the software and tools required for this. The main issue is curation, and the lack of other participants. It&#39;s wonderful that we have the choice to use these alternative protocols, and that software exists to interface with them for all desktop operating systems, but the problem of discovery remains. Therefore, I need to research and make lists, and I am on a journey to collect anything that falls within the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interesting and recently updated websites using alternative protocols, including &lt;a href=&quot;https://geminiprotocol.net/&quot;&gt;Gemini&lt;/a&gt; capsules, &lt;a href=&quot;https://cheapskatesguide.org/articles/gopherspace.html&quot;&gt;Gopher&lt;/a&gt; holes, &lt;a href=&quot;https://portal.mozz.us/spartan/spartan.mozz.us/&quot;&gt;Spartan&lt;/a&gt; servers, and similar protocols&lt;/li&gt;
&lt;li&gt;Sites on the &lt;a href=&quot;https://yggdrasil-network.github.io/&quot;&gt;Yggdrasil network&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Websites that display well in the &lt;a href=&quot;https://lynx.invisible-island.net/&quot;&gt;Lynx&lt;/a&gt; text browser&lt;/li&gt;
&lt;li&gt;Plain-text, text-only websites&lt;/li&gt;
&lt;li&gt;Any and all terminal-based programs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are also other peer-to-peer networks and protocols I&#39;m interested in and don&#39;t know a lot about, including the &lt;a href=&quot;https://i2p.net/en/&quot;&gt;Invisible Internet Project&lt;/a&gt;, the &lt;a href=&quot;https://lokinet.org/&quot;&gt;Lokinet&lt;/a&gt;, the &lt;a href=&quot;https://www.hyphanet.org/index.html&quot;&gt;Hyphanet&lt;/a&gt;, and the &lt;a href=&quot;https://www.gnunet.org/en/index.html&quot;&gt;GNUnet&lt;/a&gt;. I want to emphasize I&#39;m not interested in the privacy or security of these networks (although that certainly is important, please don&#39;t get me wrong) but rather the low-spec, accessible nature of them.&lt;/p&gt;
&lt;h2 id=&quot;what-i-found&quot; tabindex=&quot;-1&quot;&gt;What I Found&lt;/h2&gt;
&lt;p&gt;A useful low-spec Internet already exists, but it&#39;s scattered across several ecosystems. There are &lt;strong&gt;Gemini and Gopher aggregators&lt;/strong&gt;, &lt;strong&gt;server-rendered discussion sites&lt;/strong&gt;, &lt;strong&gt;plain-text libraries&lt;/strong&gt;, &lt;strong&gt;terminal readers&lt;/strong&gt;, and &lt;strong&gt;public Unix communities&lt;/strong&gt;. These resources are practical as they minimize page weight, reduce client-side dependencies, or expose content directly as text.&lt;/p&gt;
&lt;p&gt;The most immediately usable route is a layered one. For ordinary HTTP(S), I use a text browser like &lt;strong&gt;&lt;a href=&quot;https://lynx.invisible-island.net/&quot;&gt;Lynx&lt;/a&gt;&lt;/strong&gt;, for RSS and Atom, &lt;strong&gt;&lt;a href=&quot;https://newsboat.org/&quot;&gt;Newsboat&lt;/a&gt;&lt;/strong&gt;, for Gemini, a client such as &lt;strong&gt;&lt;a href=&quot;https://gmi.skyjake.fi/lagrange/&quot;&gt;Lagrange&lt;/a&gt;&lt;/strong&gt;, and for Gopher, either a native client or &lt;strong&gt;&lt;a href=&quot;https://gopher.floodgap.com/gopher/&quot;&gt;Floodgap&#39;s Gopher proxy&lt;/a&gt;&lt;/strong&gt;. Add a public shell community such as &lt;strong&gt;&lt;a href=&quot;https://sdf.org/&quot;&gt;SDF&lt;/a&gt;&lt;/strong&gt; and your machine becomes a social and publishing tool.&lt;/p&gt;
&lt;p&gt;And there&#39;s activity in these places! CAPCOM showed Gemini entries dated 2026-09-09, and the Gemini BBS had posts from hours earlier. Midnight Pub lists a 2026-09-09 post, Bongusta aggregated Gopher posts from 2026-09-08, and Bitreich&#39;s news was dated 2026-09-04. I checked pages and selected native endpoints on 2026-09-09. The Gemini checks returned successful Gemini status &lt;code&gt;20&lt;/code&gt;; the Spartan check returned status &lt;code&gt;2&lt;/code&gt;; and selected Gopher endpoints returned menus over TCP port 70.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://gemini.bortzmeyer.org/software/lupa/&quot;&gt;Stéphane Bortzmeyer&#39;s Lupa crawler&lt;/a&gt;&lt;/strong&gt; recently counted 5,218 known capsules, of which 3,548 were reachable, serving up around 717,000 pages of Gemtext between them. Veronica-2&#39;s most recent index of Gopherspace put it at 411 active servers and just under 5.9 million unique selectors as of January 2026.&lt;/p&gt;
&lt;p&gt;The limitation is not that these networks are empty. Rather, it is that they are small, intermittently maintained, and hard to find without indexes, and hosting is ironically rather centralized: Flounder, Yesterweb, and Smol Pub alone account for something like 60% of all reachable Gemini capsules. This is exactly why we need more &lt;strong&gt;curation, feed-making, and clear status labeling&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;⚠️ Important note:&lt;/strong&gt; After I first published this piece, a reader wrote in to say that Bitreich and suckless.org are &amp;quot;absolutely fash-oriented, if not openly neo-Nazi,&amp;quot; pointing to torch-lit processions and &amp;quot;old German folk tunes&amp;quot; sung at their annual congress. They also noted that a significant number of the USians active in Gopher lean far-right more broadly.&lt;/p&gt;
&lt;p&gt;Small, low-bandwidth, technically-constrained spaces are absolutely not inherently virtuous just because they reject the mainstream Internet. Constraint and simplicity can just as easily be used to build a clubhouse that keeps people out as one that lets people in. If you go looking in Gopherspace (or IRC, or any of the other corners in this list), go in with your eyes open, and please tell me if you run into the same thing. This is the labelling I meant when I said discovery needs &amp;quot;ongoing human curation.&amp;quot;&lt;/p&gt;
&lt;h2 id=&quot;gemini%2C-gopher%2C-spartan%2C-and-similar-protocols&quot; tabindex=&quot;-1&quot;&gt;Gemini, Gopher, Spartan, and Similar Protocols&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gemini://geminiprotocol.net/&quot;&gt;Project Gemini&lt;/a&gt;&lt;/strong&gt; is the canonical protocol documentation, still led by its pseudonymous creator &lt;a href=&quot;http://plaintext.brennan.day/gemini-gophers-and-fingers-oh-my-alternative-internets-beyond-https/&quot;&gt;Solderpunk&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;gemini://geminiquickst.art/&quot;&gt;Gemini Quickstart&lt;/a&gt;&lt;/strong&gt; is the onboarding guide and directory for newcomers, built and maintained by Jason McBrayer since 2021; an &lt;a href=&quot;https://geminiquickst.art/&quot;&gt;HTTPS mirror&lt;/a&gt; is available if you don&#39;t have a native client yet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gemini://gemini.circumlunar.space/capcom/&quot;&gt;CAPCOM&lt;/a&gt;&lt;/strong&gt; was the very first Gemini feed aggregator, written by Solderpunk himself and modeled directly on the Gopher phlog aggregator Bongusta below. It&#39;s currently aggregating 76 Atom feeds, and it randomly rotates 100 URLs into its output each month, so you&#39;re not guaranteed to see the same capsule twice; an HTTPS portal exists at &lt;a href=&quot;https://portal.mozz.us/gemini/gemini.circumlunar.space/capcom/&quot;&gt;portal.mozz.us&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gemini://bbs.geminispace.org/&quot;&gt;Gemini BBS&lt;/a&gt;&lt;/strong&gt; provides participation rather than only reading, with discussion, microblogging, and issue tracking, all running on Jaakko Keränen&#39;s (of Lagrange fame) software called Bubble. You register with a TLS client certificate instead of a password, and as of a 2025 survey, about 100 people post or comment there every month.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gemini://midnight.pub/&quot;&gt;Midnight Pub&lt;/a&gt;&lt;/strong&gt; is small-scale personal publishing with a human-scale social feel, run by m15o since roughly 2020 as a &amp;quot;virtual pub.&amp;quot; Every member gets their own &lt;code&gt;username.midnight.pub&lt;/code&gt; homepage. While there&#39;s no way to post directly over Gemini yet (Gemini&#39;s URI length limits make long posts awkward), there&#39;s a shell script called &lt;code&gt;midnight.sh&lt;/code&gt;. The publishing interface is at &lt;a href=&quot;https://speakeasy.midnight.pub/&quot;&gt;speakeasy.midnight.pub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gemini://kennedy.gemi.dev/&quot;&gt;Kennedy&lt;/a&gt;&lt;/strong&gt; provides discovery, historical snapshots, backlinks, and health information, built by acidus99 using the same architecture ideas as early web crawlers like Mercator and the Internet Archive. It has a &amp;quot;Delorean Time Machine&amp;quot; (basically a Wayback Machine for Geminispace), a capsule-health report, a certificate validator, and backlink lookup.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;spartan://spartan.mozz.us/&quot;&gt;Spartan homepage&lt;/a&gt;&lt;/strong&gt; is a simple sibling protocol combining ideas from Gemini, Gopher, and HTTP, designed by Michael Lazar. It sends plain ASCII requests over TCP on port 300 (referencing the 300 Spartans of Thermopylae) and it uses Gemtext as its default document format, with only four single-digit status codes. Check out the &lt;a href=&quot;https://github.com/michael-lazar/spartan&quot;&gt;repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gopher://gopher.floodgap.com/1/v2&quot;&gt;Veronica-2&lt;/a&gt;&lt;/strong&gt; makes search possible in a distributed menu-based network, and is the only Veronica search engine still operating, run by Cameron Kaiser at Floodgap. Its welcome page claims coverage of roughly 5.1 million selectors, about 80% of all of Gopherspace by Floodgap&#39;s own estimate; an HTTPS gateway is at &lt;a href=&quot;https://gopher.floodgap.com/gopher/gw?gopher.floodgap.com/1/v2&quot;&gt;Floodgap Veronica-2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;gopher://gopher.floodgap.com/1/world&quot;&gt;Floodgap World directory&lt;/a&gt;&lt;/strong&gt; lists servers and crawler-derived activity information. Kaiser has run Floodgap since around 1999-2000 (it started life as &lt;code&gt;gopher.ptloma.edu&lt;/code&gt;), and the public proxy alone reportedly handles over 26 million requests a year. An &lt;a href=&quot;https://gopher.floodgap.com/gopher/gw?gopher.floodgap.com/1/world&quot;&gt;HTTPS gateway&lt;/a&gt; is available.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gopher://sdf.org/1/&quot;&gt;SDF Gopherspace&lt;/a&gt;&lt;/strong&gt; connects shell access, personal Gopherspace, phlogs, and community tools. SDF, the Super Dimension Fortress, has run continuously since 1987, when Ted Uhlemann started it as an anime-themed BBS on an Apple IIe. Its historical society reports over 707,000 accounts created across 36 years. The &lt;a href=&quot;https://sdf.org/&quot;&gt;SDF homepage&lt;/a&gt; exposes shell, Gopher, SSH, telnet, IRC, and Git services.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gopher://i-logout.cz/1/bongusta/&quot;&gt;Bongusta&lt;/a&gt;&lt;/strong&gt; is a current stream of distributed Gopher writing, written in Perl since summer 2017 by the operator of i-logout.cz. The name is Esperanto for &amp;quot;tasty, luscious, palatable,&amp;quot; and it currently aggregates around 85 active phlogs, pruning ones that have gone quiet and only adding new writers once they&#39;ve kept it up for about three months.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gopher://gopher.black/1/&quot;&gt;gopher.black&lt;/a&gt;&lt;/strong&gt; shows Gopher&#39;s expressive side through fiction, recipes, games, interactive writing, and a book-review search.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gopher://gopherpedia.com/1/&quot;&gt;Gopherpedia&lt;/a&gt;&lt;/strong&gt; is a Wikipedia-style reference through a low-bandwidth menu and search interface, created by Colin Mitchell and released in June 2013. At launch, Mitchell claimed it was probably the largest gopher site in existence, at roughly 4.2 million pages and over 10 GB. An HTTPS gateway is at &lt;a href=&quot;https://gopher.floodgap.com/gopher/gw?gopherpedia.com/1/&quot;&gt;Gopherpedia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;gopher://gopher.quux.org/1/&quot;&gt;quux.org archive&lt;/a&gt;&lt;/strong&gt; preserves software, books, Internet history, and other collections. It&#39;s run by John Goerzen, who registered the domain in 2000 specifically to host &amp;quot;obscure old technology&amp;quot; under an &amp;quot;obscure old name&amp;quot;--RFCs, Project Gutenberg mirrors, Kermit, old operating systems, even a mirror of Usenet posts from 1981.&lt;/p&gt;
&lt;h2 id=&quot;lynx-friendly-and-plain-text-web-resources&quot; tabindex=&quot;-1&quot;&gt;Lynx-Friendly and Plain-Text Web Resources&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lynx.invisible-island.net/&quot;&gt;Lynx&lt;/a&gt;&lt;/strong&gt; is the direct tool for browsing HTML without a graphical interface, and it&#39;s often called the oldest web browser still under active maintenance. Lou Montulli, Michael Grobe, and Charles Rezac built it in 1992 at the University of Kansas as a campus hypertext and Gopher browser; today it&#39;s maintained by Thomas Dickey, with the most recent stable version at 2.9.3.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt;&lt;/strong&gt; is server-rendered stories and comments that remain useful on a terminal (news and discussion). Rather infamous now, Paul Graham launched it in February 2007 as &amp;quot;Startup News&amp;quot; to road-test Arc, the Lisp dialect he co-created; the server-side code is still written in Arc today.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lobste.rs/&quot;&gt;Lobste.rs&lt;/a&gt;&lt;/strong&gt; offers compact story listings, tags, and comments without a mandatory JavaScript application (technology discussion). Joshua Stein launched it in 2012, with no JavaScript for logged-out visitors and minimal CSS that works in old and experimental browsers alike.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.cbc.ca/lite/&quot;&gt;CBC Lite&lt;/a&gt;&lt;/strong&gt; is a lighter Canadian and world news interface (low-bandwidth news), built for the more than one million Canadians without high-speed Internet access.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://68k.news/&quot;&gt;68k News&lt;/a&gt;&lt;/strong&gt; is a headline/source stream that is practical on constrained hardware (a text-first headline aggregator). It&#39;s built by Sean of the YouTube channel Action Retro, marketed with the tagline &amp;quot;Headlines from the Future,&amp;quot; and rendered to load on a Mac SE/30 running Netscape from the 1990s. Sadly, a reader ,let me know that click-through has been broken for a while now. I confirmed it myself with &lt;code&gt;curl&lt;/code&gt;, and every article link routes through &lt;code&gt;article.php?a=&lt;/code&gt; to a Google News RSS redirect, which the site then tries to scrape with its Readability port and fails on (&amp;quot;Failed to get the article :( Sorry - working on it!&amp;quot;). Headlines still load fine but you can&#39;t read full stories.&lt;/p&gt;
&lt;p&gt;If you want something that works, &lt;strong&gt;&lt;a href=&quot;https://plaintext.report/&quot;&gt;plaintext.report&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;https://plaintextheadlines.com/&quot;&gt;PlaintextHeadlines&lt;/a&gt;&lt;/strong&gt; are both replacements. Rather than proxying through Google News, they link to the publisher&#39;s own URL, so &lt;code&gt;curl -L&lt;/code&gt; (or any browser) You can use the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -L --max-time 15 -o /dev/null -w &amp;quot;%{http_code} %{url_effective}&#92;n&amp;quot; https://plaintext.report/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and then follow any headline link the same way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://frogfind.de/&quot;&gt;FrogFind&lt;/a&gt;&lt;/strong&gt; adapts search results for old browsers and low-resource systems (a vintage-computer search). Also from Sean/Action Retro, it strips DuckDuckGo results and article pages down through a PHP port of Readability, stripping out ads and JavaScript, allowing pages to render on ancient browsers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://old-search.marginalia.nu/&quot;&gt;Marginalia old interface&lt;/a&gt;&lt;/strong&gt; offers an older layout for text-browser users and surfaces small-web material (a non-commercial search). It&#39;s an independent, open-source search engine built and run solo by Viktor Lofgren in Sweden, with no investors or loans, deliberately favouring text-heavy, non-commercial pages over mainstream web design.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://wiby.me/&quot;&gt;Wiby&lt;/a&gt;&lt;/strong&gt; has sparse search and &amp;quot;surprise me&amp;quot; discovery to support exploration of simpler pages (a small-web search). Built by the pseudonymous developer wibyweb in 2018, it relies on human submissions rather than crawling the whole web.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://sourcehut.org/&quot;&gt;SourceHut&lt;/a&gt;&lt;/strong&gt; provides Git/Mercurial hosting, mailing lists, CI, wikis, and static hosting without a mandatory JavaScript front end (a software forge). Drew DeVault opened it to public alpha in November 2018 after two years of private development. A typical page loads at around 57 KB, versus roughly 780 KB for a comparable GitHub page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.gutenberg.org/files/1342/1342-0.txt&quot;&gt;Project Gutenberg text edition&lt;/a&gt;&lt;/strong&gt; is a direct text book that can be downloaded, searched, cached, and read with a pager (a plain-text book). Michael Hart founded the project in 1971 by typing the U.S. Declaration of Independence into a university mainframe. The catalogue now holds nearly 78,000 free ebooks. The main catalogue is at &lt;a href=&quot;https://www.gutenberg.org/&quot;&gt;gutenberg.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9110.txt&quot;&gt;RFC Editor text edition&lt;/a&gt;&lt;/strong&gt; provides durable technical documents without HTML rendering requirements (a plain-text standards reference). The RFC series dates to April 1969 and Steve Crocker&#39;s RFC 1, written to help design the ARPANET, and it&#39;s been the internet&#39;s archival technical record ever since. Text-only download help is at the &lt;a href=&quot;https://www.rfc-editor.org/series/rfc-download/&quot;&gt;RFC download page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.textfiles.com/&quot;&gt;TEXTFILES.COM&lt;/a&gt;&lt;/strong&gt; is a large cultural archive of ASCII art, BBS material, mailing lists, and historical text (an ASCII and BBS archive). Jason Scott has run it since 1998 to preserve text files from the 1980s BBS scene, and by 2017 it was drawing 350,000 to 450,000 unique visitors a month.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://onlinebooks.library.upenn.edu/&quot;&gt;Online Books Page&lt;/a&gt;&lt;/strong&gt; is a searchable catalog of free books, authors, subjects, and serials (a free-book index). John Mark Ockerbloom started it in 1993 while a student at Carnegie Mellon, and it moved to the University of Pennsylvania in 1999, now indexing more than 3 million titles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://solar.lowtechmagazine.com/about/&quot;&gt;Low-tech Magazine solar site&lt;/a&gt;&lt;/strong&gt; is a visible example of designing a publication around limited energy and offline reading (an energy-conscious publication). Kris De Decker launched it in September 2018, running on a tiny board that draws one to two and a half watts off a 30-watt solar panel and lead-acid battery. The page background shifts from yellow to blue as the battery drains, and the site goes dark below 12 volts, until the sun comes back. The offline-reading guide is at &lt;a href=&quot;https://solar.lowtechmagazine.com/offline-reading/&quot;&gt;solar.lowtechmagazine.com/offline-reading&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://txt.fyi/&quot;&gt;txt.fyi&lt;/a&gt;&lt;/strong&gt; is a constrained publishing form for text-oriented pages (plain-text micro-publishing), created by Boing Boing co-editor Rob Beschizza. There are no accounts, comments, likes, analytics, or search indexing. The only way anyone finds your post is if you link yourself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://html.duckduckgo.com/html/?q=low+bandwidth+web&quot;&gt;DuckDuckGo HTML&lt;/a&gt;&lt;/strong&gt; provides search results, forms, URLs, and snippets that work without the graphical interface (a text search endpoint). There&#39;s an even lighter version at &lt;a href=&quot;https://lite.duckduckgo.com/&quot;&gt;lite.duckduckgo.com&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;terminal-based-programs-and-services&quot; tabindex=&quot;-1&quot;&gt;Terminal-Based Programs and Services&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://newsboat.org/&quot;&gt;Newsboat&lt;/a&gt;&lt;/strong&gt; turns the open Web into a local, keyboard-driven reading queue and avoids repeatedly loading heavy homepages (an RSS/Atom reader). It&#39;s a fork of Andreas Krennmair&#39;s Newsbeuter by Alexander Batischev when Newsbeuter was abandoned in September 2017.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://gmi.skyjake.fi/lagrange/&quot;&gt;Lagrange&lt;/a&gt;&lt;/strong&gt; is a compact client with a curses interface and multi-protocol support (a Gemini/Gopher reader). Jaakko Keränen built it starting in 2020; besides Gemini, Gopher, and Finger it can play inline audio, view images, and hold TLS client certificates for sites like Gemini BBS above, and there&#39;s a terminal-only build called &lt;code&gt;clagrange&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lynx.invisible-island.net/&quot;&gt;Lynx&lt;/a&gt;&lt;/strong&gt; is mature, portable, and appropriate for reading rather than rendering visual design (an HTTP text browser). Several of its original 1992 contributors went on to work at Netscape.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/tats/w3m&quot;&gt;w3m&lt;/a&gt;&lt;/strong&gt; supports text browsing and is widely packaged on Unix-like systems (a terminal web browser). Akinori Ito built it in Japan around 1995 as a successor to his earlier pager &lt;code&gt;fm&lt;/code&gt;--the name is short for &amp;quot;WWW wo miru,&amp;quot; or &amp;quot;to see the WWW.&amp;quot; It can also run inside Emacs as &lt;code&gt;emacs-w3m&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://elinks.or.cz/&quot;&gt;ELinks&lt;/a&gt;&lt;/strong&gt; is a featureful text browser for HTML, forms, and links (a terminal browser). It began in late 2001 as Petr Baudiš&#39;s fork of Mikuláš Patočka&#39;s Links browser, the E standing for &amp;quot;Experimental.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/aaronjanse/bombadillo&quot;&gt;Bombadillo&lt;/a&gt;&lt;/strong&gt; is designed for Gemini, Gopher, Finger, and related text-first browsing (a terminal client for small protocols). It&#39;s built by Sloum on tildegit, calls itself a &amp;quot;non-web browser,&amp;quot; treats Gopher as its default protocol, and collects no telemetry or history of its own.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://offpunk.net/&quot;&gt;Offpunk&lt;/a&gt;&lt;/strong&gt; is an offline-first Gemini/Gopher/Spartan/Web/RSS client. Written by &lt;a href=&quot;https://ploum.net/&quot;&gt;Ploum&lt;/a&gt; as a friendly fork of Solderpunk&#39;s AV-98, it caches everything you visit as plain &lt;code&gt;.gmi&lt;/code&gt;/&lt;code&gt;.html&lt;/code&gt; files under &lt;code&gt;~/.cache/offpunk/&lt;/code&gt;. There&#39;s no database, so the cache can be edited or scripted with other tools. You can sync hourly or daily and then read, follow links, and subscribe to RSS/Atom feeds entirely offline; anything you try to open that isn&#39;t cached just gets queued for the next sync.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://wttr.in/&quot;&gt;wttr.in&lt;/a&gt;&lt;/strong&gt; returns a text forecast from a direct HTTP request that can be read with &lt;code&gt;curl&lt;/code&gt; (a console weather service), created by Igor Chubin as a small wrapper originally built to demonstrate &lt;code&gt;wego&lt;/code&gt; below. It handles tens of millions of queries a day. For example, try &lt;code&gt;curl https://wttr.in/Denver&lt;/code&gt; or another location.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/schachmat/wego&quot;&gt;wego&lt;/a&gt;&lt;/strong&gt; supports text, Markdown, JSON, caching, several backends, and keyless Open-Meteo or SMHI configurations (a local terminal weather client). Unlike wttr.in, which is a hosted service you query, wego runs on your own machine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://irssi.org/&quot;&gt;Irssi&lt;/a&gt;&lt;/strong&gt; is one of the most resource-efficient forms of live group communication, a terminal IRC client. Finnish programmer Timo Sirainen first released it in January 1999, and it&#39;s remained a staple of IRC culture, especially among channel operators, for more than 25 years since.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://sr.ht/~delthas/senpai/&quot;&gt;senpai&lt;/a&gt;&lt;/strong&gt; is a modern terminal IRC client built to pair with a bouncer rather than keep its own logs, built by delthas and hosted on SourceHut. It leans on newer IRCv3 extensions--fetching history from the server via &lt;code&gt;CHATHISTORY&lt;/code&gt;, connecting to all your networks at once via &lt;code&gt;BOUNCER&lt;/code&gt;, and even uploading files via &lt;code&gt;FILEHOST&lt;/code&gt;, so the client is lightweight while the heavy lifting happens server-side.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://git.causal.agency/catgirl/about/&quot;&gt;catgirl&lt;/a&gt;&lt;/strong&gt; is a TLS-only, ncurses-based terminal IRC client built by June McEnroe of causal.agency, with tab-complete, nick colouring, and split scrolling but deliberately little else. It exits on disconnect rather than reconnecting itself, expecting to be run in a loop or, better, paired with a bouncer. That bouncer is typically McEnroe&#39;s own &lt;strong&gt;&lt;a href=&quot;https://git.causal.agency/pounce/about/&quot;&gt;pounce&lt;/a&gt;&lt;/strong&gt;, part of a suite of purpose-built IRC tools alongside the full-text logger &lt;strong&gt;&lt;a href=&quot;https://git.causal.agency/litterbox/about/&quot;&gt;litterbox&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://sdf.org/?signup&quot;&gt;SDF shell access&lt;/a&gt;&lt;/strong&gt; provides a social and productive environment for SSH, telnet, Gopher, Gemini, IRC, Git, and vintage systems (a public Unix shell community). Beyond a free account, its paid MetaARPA tier (around $11 a quarter) unlocks cron jobs, background processes, SSH tunneling, and more. The homepage is generated with &lt;code&gt;ksh&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, and &lt;code&gt;awk&lt;/code&gt;; current access and membership details are on the site.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://gopher.floodgap.com/gopher/&quot;&gt;Gopher proxy&lt;/a&gt;&lt;/strong&gt; lets a browser or Lynx sample Gopherspace before installing a native client (an HTTP bridge to Gopher). Floodgap warns that the public gateway is rate-limited and not anonymous; native clients are preferable for regular use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://curl.se/&quot;&gt;curl&lt;/a&gt;&lt;/strong&gt; lets a low-spec machine fetch text, feeds, APIs, Gemini gateways, and weather without a browser (a minimal network retrieval tool). Daniel Stenberg started it in 1996 as a tool to fetch currency exchange rates for an IRC bot; it now ships on billions of devices, from phones to cars to game consoles. Use it with &lt;code&gt;less&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;lynx -dump&lt;/code&gt;, &lt;code&gt;w3m&lt;/code&gt;, or a local cache.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://git-scm.com/&quot;&gt;Git over SSH&lt;/a&gt;&lt;/strong&gt; enables offline work, local history, and synchronization over low-overhead transports (distributed publishing and software exchange). Because a clone carries the repository history and Git only ever transfers the deltas it actually needs, you can work fully offline and push or pull later, suiting low-bandwidth or intermittent connections well. Useful with SourceHut, SDF, Codeberg, or a self-hosted forge.&lt;/p&gt;
&lt;h2 id=&quot;other-alternative-networks&quot; tabindex=&quot;-1&quot;&gt;Other Alternative Networks&lt;/h2&gt;
&lt;p&gt;These networks are not all &amp;quot;websites&amp;quot; in the same sense as Gemini or Gopher. Several require a local client, a running node, a tunnel, or a network-specific address book. They&#39;re included because they can carry small web sites, IRC, code, files, and peer-to-peer publishing.&lt;/p&gt;
&lt;h3 id=&quot;yggdrasil&quot; tabindex=&quot;-1&quot;&gt;Yggdrasil&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://yggdrasil-network.github.io/&quot;&gt;Yggdrasil&lt;/a&gt;&lt;/strong&gt; is an end-to-end encrypted IPv6 overlay network built by Neil Alexander and Arceliar, with its first public release in December 2018. Rather than routing by geography, it builds a global spanning tree and a distributed hash table so nodes get a flat, name-independent address derived straight from its public key--you only need two or three peers to join the mesh. The &lt;strong&gt;&lt;a href=&quot;https://yggdrasil-network.github.io/services.html&quot;&gt;Yggdrasil services directory&lt;/a&gt;&lt;/strong&gt; exposes concrete IPv6-style Yggdrasil destinations, and is a community-maintained catalogue of Web, IRC, DNS, code, torrents, VoIP, Nostr, Iroh, and other services).&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;http://%5B21e:a51c:885b:7db0:166e:927:98cd:d186%5D/&quot;&gt;Yggdrasil Web directory&lt;/a&gt;&lt;/strong&gt; is a starting point after joining the network. It requires Yggdrasil connectivity and is not reachable from an ordinary clearnet browser. The &lt;strong&gt;&lt;a href=&quot;http://%5B200:b48d:469e:c7c7:3e13:c41d:ba4d:d2b8%5D/&quot;&gt;Yggdrasil search engine&lt;/a&gt;&lt;/strong&gt; and the &lt;strong&gt;&lt;a href=&quot;http://%5B21a:34aa:c782:3ad2:1bf8:73f8:141:66e8%5D/&quot;&gt;Yggdrasil Forum&lt;/a&gt;&lt;/strong&gt; are also available inside the overlay.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://yggdrasil-network.github.io/services.html#irc&quot;&gt;BonoboNET IRC over Yggdrasil&lt;/a&gt;&lt;/strong&gt; combines a lightweight chat protocol with an overlay network. After joining Yggdrasil, use the preferred hostname &lt;code&gt;y.irc.bnet.eu.org&lt;/code&gt; on port 6667.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://radicle.xyz/&quot;&gt;Yggdrasil Radicle nodes&lt;/a&gt;&lt;/strong&gt; are useful for software exchange without depending on centralized forges. Radicle was founded in Berlin in 2018 by Eleftherios Diakomichalis and Alexis Sellier, originally built on IPFS before the team wrote their own peer-to-peer Git protocol. Version 1.0 shipped in September 2024 with 40 seed nodes already running, no central server anywhere, with issues and patches stored directly as objects inside the Git repository itself.&lt;/p&gt;
&lt;h3 id=&quot;i2p&quot; tabindex=&quot;-1&quot;&gt;I2P&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://i2p.net/en/docs/&quot;&gt;I2P documentation&lt;/a&gt;&lt;/strong&gt; provides a route to local &lt;code&gt;.i2p&lt;/code&gt; services and self-hosted sites. The Invisible Internet Project began in 2001 as the Invisible IRC Project before jrandom renamed and relaunched it in 2003. Unlike Tor&#39;s three-hop circuits, I2P is packet-switched and routes traffic through separate unidirectional inbound and outbound tunnels, with recent estimates putting the network at around 55,000 active routers and 35,000 hidden &lt;code&gt;.i2p&lt;/code&gt; &amp;quot;eepsites.&amp;quot;&lt;/p&gt;
&lt;p&gt;The official eepsite guide documents a built-in Jetty server and a local console at &lt;a href=&quot;http://127.0.0.1:7657/&quot;&gt;http://127.0.0.1:7657&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://i2p.net/en/docs/guides/creating-an-i2p-eepsite/&quot;&gt;I2P eepsite guide&lt;/a&gt;&lt;/strong&gt; shows how to publish a small site inside I2P using the preconfigured web server.&lt;/p&gt;
&lt;h3 id=&quot;hyphanet-(formerly-freenet)&quot; tabindex=&quot;-1&quot;&gt;Hyphanet (formerly Freenet)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.hyphanet.org/&quot;&gt;Hyphanet&lt;/a&gt;&lt;/strong&gt; supports personal websites, microblogging, forums, media sharing, blogs, and version tracking. It began in 1999 as Ian Clarke&#39;s undergraduate project at the University of Edinburgh, splitting content into small encrypted chunks that get distributed, cached, and replicated across peers based on demand, and so node operators can&#39;t tell what they&#39;re storing.&lt;/p&gt;
&lt;p&gt;In March 2023, the original codebase was spun off and renamed Hyphanet, while Clarke took the Freenet name for a ground-up rewrite. The official homepage reported Hyphanet 0.7.5 build 1506 on 2026-02-21. It&#39;s more demanding than Gemini/Gopher, but is an interesting publishing network. The &lt;strong&gt;&lt;a href=&quot;https://www.hyphanet.org/pages/documentation.html&quot;&gt;Hyphanet documentation&lt;/a&gt;&lt;/strong&gt; is necessary for understanding how to publish and browse inside the network.&lt;/p&gt;
&lt;h3 id=&quot;gnunet%2C-lokinet%2C-and-reticulum&quot; tabindex=&quot;-1&quot;&gt;GNUnet, Lokinet, and Reticulum&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.gnunet.org/en/index.html&quot;&gt;GNUnet&lt;/a&gt;&lt;/strong&gt; is a foundation for distributed applications, naming, routing, resource discovery, and content distribution. Christian Grothoff has led it since it started in 2001 as &amp;quot;GNet&amp;quot; before becoming an official GNU package; the codebase now exceeds 400,000 lines of C, and it&#39;s spawned the GNU Name System, the GNU Taler payment framework, and PSYC, a messaging substrate used by the SecuShare social network project. It&#39;s a development framework, not a ready-made content directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lokinet.org/&quot;&gt;Lokinet&lt;/a&gt;&lt;/strong&gt; grew out of the Loki Project (rebranded Oxen in 2021) starting in 2018, and it&#39;s an onion router that runs across more than a thousand staked Oxen Service Nodes, so it shares infrastructure directly with the Session messenger app.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;https://github.com/markqvist/Reticulum/wiki/Community-Node-List&quot;&gt;Reticulum community node list&lt;/a&gt;&lt;/strong&gt; is relevant for peer-to-peer text, messaging, and intermittent connectivity. Mark Qvist designed Reticulum between 2014 and 2022 and dedicated the protocol to the public domain. It&#39;s built to run over almost anything, including LoRa radio and packet radio, down to around 5 bits per second, and projects like Nomad Network and MeshChat use it to run entirely off-grid.&lt;/p&gt;
&lt;h2 id=&quot;a-daily-driver&quot; tabindex=&quot;-1&quot;&gt;A Daily Driver&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Use a minimal Linux or BSD installation with a text browser such as &lt;strong&gt;&lt;a href=&quot;https://lynx.invisible-island.net/&quot;&gt;Lynx&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;https://github.com/tats/w3m&quot;&gt;w3m&lt;/a&gt;&lt;/strong&gt;, or &lt;strong&gt;&lt;a href=&quot;https://elinks.or.cz/&quot;&gt;ELinks&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;strong&gt;&lt;a href=&quot;https://newsboat.org/&quot;&gt;Newsboat&lt;/a&gt;&lt;/strong&gt; as the home screen for current reading. Add feeds from CAPCOM, news sites, personal blogs, project release feeds, and any publication that exposes RSS or Atom.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;strong&gt;&lt;a href=&quot;https://gmi.skyjake.fi/lagrange/&quot;&gt;Lagrange&lt;/a&gt;&lt;/strong&gt; for Gemini and a Gopher client or the &lt;strong&gt;&lt;a href=&quot;https://gopher.floodgap.com/gopher/&quot;&gt;Floodgap proxy&lt;/a&gt;&lt;/strong&gt; for Gopher.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bookmark &lt;strong&gt;&lt;a href=&quot;https://portal.mozz.us/gemini/gemini.circumlunar.space/capcom/&quot;&gt;CAPCOM&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;https://gopher.floodgap.com/gopher/gw?i-logout.cz/1/bongusta/&quot;&gt;Bongusta&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;https://gopher.floodgap.com/gopher/gw?gopher.floodgap.com/1/v2&quot;&gt;Veronica-2&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;https://old-search.marginalia.nu/&quot;&gt;Marginalia&lt;/a&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;a href=&quot;https://wiby.me/&quot;&gt;Wiby&lt;/a&gt;&lt;/strong&gt; as discovery tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cache durable material locally. Use &lt;code&gt;curl&lt;/code&gt;, &lt;code&gt;wget&lt;/code&gt;, &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;less&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, and a small directory of downloaded books, RFCs, manuals, and feeds.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add &lt;strong&gt;&lt;a href=&quot;https://sdf.org/&quot;&gt;SDF&lt;/a&gt;&lt;/strong&gt; or another public Unix account for shell-based community, publishing, IRC, and experimentation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Yggdrasil, I2P, Hyphanet, GNUnet, Lokinet, and Reticulum are second-stage projects. They can add valuable peer-to-peer spaces, but setup and network reachability are more complicated than just opening a Gemini or Gopher client.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;how-to-test-and-save-content&quot; tabindex=&quot;-1&quot;&gt;How to Test and Save Content&lt;/h2&gt;
&lt;p&gt;A quick HTTP text check is:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;lynx -dump -nolist https://example.com/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A lightweight retrieval check is:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -L --max-time 20 -sS https://example.com/ | less
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For a plain-text resource, save a local copy and search it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -L -sS https://www.rfc-editor.org/rfc/rfc9110.txt -o rfc9110.txt
less rfc9110.txt
grep -n &amp;quot;HTTP Semantics&amp;quot; rfc9110.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;a-few-notes&quot; tabindex=&quot;-1&quot;&gt;A Few Notes&lt;/h2&gt;
&lt;p&gt;This is a curated starting list by a beginner. Native-protocol networks are dynamic, and some small services may disappear or move without redirects. I directly tested Gemini, Gopher, and Spartan endpoints, and tested availability of most Yggdrasil, I2P, Hyphanet, GNUnet, Lokinet, and Reticulum pages.&lt;/p&gt;
&lt;p&gt;The term &amp;quot;low-spec&amp;quot; has multiple meanings. A page can be visually simple but still be large, like the solar Low-tech Magazine site. A terminal program can be lightweight locally while depending on a heavy remote API. Conversely, an ordinary HTML page can be highly usable if it is server-rendered, cacheable, and free of JavaScript requirements.&lt;/p&gt;
&lt;p&gt;Security and privacy are important but are not the organizing principle here. The relevant question for this article is whether a person with inexpensive hardware, a slow connection, and a preference for text can actually read, participate, publish, and discover material.&lt;/p&gt;
&lt;p&gt;Discovery and continuity require ongoing human curation. I will keep checking, re-labelling, and adding to these lists as I go. If you have any suggestions for contributions, please let me know!&lt;/p&gt;
&lt;p&gt;None of this is about DigitalOcean, or DHH, or Omarchy, or even Mastodon&#39;s stack--those are just the prompt that got me writing again. The actual point is the constraint. A smaller, text-shaped, low-powered version of the Internet isn&#39;t a downgrade. I don&#39;t think the oldnet and the altnets will ever replace the IndieWeb, or Mastodon, or Brennan.day as it stands today, but they&#39;re proof that the boiling-frog Internet we default to isn&#39;t the only option. It really isn&#39;t.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>How the Mysterious ScreenJesus can DDoS You</title>
		<link href="http://plaintext.brennan.day/how-the-mysterious-screenjesus-can-ddos-you/"/>
		<updated>2026-09-09T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/how-the-mysterious-screenjesus-can-ddos-you/</id>
		<content type="html">&lt;p&gt;Buckle up. As I&#39;m sure you can already tell by the title of this article, this one is a weird one. I (with the help of &lt;a href=&quot;https://neatnik.omg.lol/&quot;&gt;Adam of omg.lol&lt;/a&gt;) accidentally uncovered a rather concerning--and novel--vulnerability when it comes to beloved website-maker &lt;a href=&quot;https://neocities.org/&quot;&gt;NeoCities&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Those who use NeoCities are aware that whenever you upload or change a file on your site, it&#39;s registered as &lt;a href=&quot;https://neocities.org/site/brennanday?event_id=7552135&quot;&gt;an event&lt;/a&gt;, which can be understood as a status update. This is a large part of the social aspect of the platform: you can follow others and their site updates will display in your feed so you can see people&#39;s brand new creative web designs as soon as they happen, and have a way to leave a comment.&lt;/p&gt;
&lt;p&gt;A feature of these &amp;quot;events&amp;quot; is that NeoCities grabs a thumbnail of each page that&#39;s added or changed. This gives the status update a visual element and a way for people to easily see what the new pages look like quickly.&lt;/p&gt;
&lt;p&gt;But &lt;em&gt;how&lt;/em&gt; does NeoCities get those thumbnails? The answer is &lt;a href=&quot;https://screenjesus.neocities.org/&quot;&gt;ScreenJesus&lt;/a&gt;--and it&#39;s also the issue that I&#39;m going to be discussing here today.&lt;/p&gt;
&lt;p&gt;There are two reasons why I became aware of ScreenJesus in the first place: one is my own terrible code and CI/CD, and the other is due to a &lt;a href=&quot;https://status.lol/&quot;&gt;status embed&lt;/a&gt; that appears on every page of my site in the sidebar.&lt;/p&gt;
&lt;p&gt;To start, I wrote about how I use &lt;a href=&quot;http://plaintext.brennan.day/deploying-an-eleventy-site-to-neocities-with-gitlab-ci-cd/&quot;&gt;GitLab CI to mirror my site to NeoCities&lt;/a&gt; quite a few months ago, now. This platform is the &lt;a href=&quot;https://brennanday.neocities.org/&quot;&gt;primary mirror&lt;/a&gt; of my website in the event my main domain goes down for whatever reason.&lt;/p&gt;
&lt;p&gt;Unfortunately, there&#39;s a bug in my code (shocker) that causes the entire site to be uploaded rather than only pages that have been added or changed, and I haven&#39;t been able to figure out how to fix this. Though to be fair, I haven&#39;t really spent time trying, since what I do instead is &lt;a href=&quot;https://gitlab.com/brennankbrown/brennan.day/-/blob/main/.gitlab-ci.yml?ref_type=heads&quot;&gt;manually uncomment&lt;/a&gt; the CI script once a week to do a full upload to the site.&lt;/p&gt;
&lt;p&gt;Unfortunately, my site has grown and continues to keep growing--if it was just text files and writing, that&#39;d be fine, but I just &lt;em&gt;have&lt;/em&gt; to have a featured image for every article I write, and these images are resized to multiple different sizes. As a result, while there are around 600 total pages in my generated &lt;code&gt;_site&lt;/code&gt; folder, there are over 2,000 files in total that get uploaded to NeoCities each time.&lt;/p&gt;
&lt;p&gt;On its own, this isn&#39;t that big of a deal. It just means I do a manual weekly upload that takes a bit of time instead of, you know, actual continuous deployment.&lt;/p&gt;
&lt;p&gt;However--and you can probably see where this is headed--ScreenJesus takes a screenshot of &lt;em&gt;each&lt;/em&gt; page during this upload process.&lt;/p&gt;
&lt;p&gt;But wait, what even is ScreenJesus, and what does it do? That&#39;s actually difficult to answer. Despite NeoCities being &lt;a href=&quot;https://github.com/neocities&quot;&gt;open-sourced&lt;/a&gt;, there is no mention of &lt;a href=&quot;https://github.com/search?q=org%3Aneocities+screenjesus&amp;amp;type=code&quot;&gt;ScreenJesus in any of its codebase&lt;/a&gt;. Being a screenshot bot and API service used by NeoCities to capture thumbnail previews of user websites, it visits the sites directly.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://screenjesus.neocities.org/&quot;&gt;NeoCities site documenting ScreenJesus&lt;/a&gt;, created by &lt;a href=&quot;https://arandomsite.neocities.org/&quot;&gt;airu&lt;/a&gt;, guesses that &amp;quot;Kyle Drake (founder of Neocities) uses Vultr, a cloud server provider with KVM&#39;s [sic] (Kernal based virtual machines)&amp;quot; to operate ScreenJesus. Like I said, there&#39;s no official documentation on this.&lt;/p&gt;
&lt;p&gt;The problem is, like real Jesus probably, ScreenJesus has no rate limits. This means that all 4,000 pages I uploaded were visited and screenshotted in the span of only fifteen minutes.&lt;/p&gt;
&lt;p&gt;This is fine for my static site behind a CDN, but Adam saw my little status.lol embed get visited 4,000 times in 15 minutes. And, according to the logs, there were 18 different IP addresses from the Vultr boxes he had to block.&lt;/p&gt;
&lt;p&gt;Before I explained all of the above, Adam assumed this was a small DDoS attempt--because it kind of is. Even though this was a total accident and a result of my own bad coding, it&#39;s clear that I accidentally stumbled upon a worryingly effective way to overload a small server if used maliciously.&lt;/p&gt;
&lt;p&gt;I don&#39;t know the current state of development on NeoCities, and it seems to be more in a maintenance mode now in 2026--&lt;a href=&quot;https://kyledrake.com/&quot;&gt;Kyle Drake&lt;/a&gt; hasn&#39;t written a blog post since 2023. But I certainly hope I can get an administrator of some sort to see this post and change the way ScreenJesus operates, such as using caching and rate limiting, to alleviate the problematic nature I&#39;ve described here.&lt;/p&gt;
&lt;p&gt;If you want to avoid this for yourself, this &lt;a href=&quot;https://control-neocities-thumbnail.neocities.org/&quot;&gt;handy guide&lt;/a&gt; about controlling NeoCities thumbnails is actually really helpful. Since ScreenJesus always declares itself in the user agent, it is easy to block and will honour the block.&lt;/p&gt;
&lt;p&gt;There are still a lot of unknowns, but this is my best attempt at explaining how things are right now.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>More Mindful Web Development</title>
		<link href="http://plaintext.brennan.day/more-mindful-web-development/"/>
		<updated>2026-09-08T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/more-mindful-web-development/</id>
		<content type="html">&lt;p&gt;Another month, yet another technical tutorial and audit of my website. I already know what you&#39;re thinking, and I totally agree: how much could there possibly be to examine and fix on a little static blog?!&lt;/p&gt;
&lt;p&gt;I was fairly certain I&#39;d be content for a long while after &lt;a href=&quot;http://plaintext.brennan.day/advanced-webweaving-auditing-against-specification-website/&quot;&gt;my last post&lt;/a&gt; where I went through my site using &lt;a href=&quot;https://specification.website/&quot;&gt;specification.website&lt;/a&gt;, but fellow writer Unattributed of &lt;a href=&quot;https://unattributed.cc/&quot;&gt;Unattributed&lt;/a&gt; just posted a blog post titled &lt;a href=&quot;https://unattributed.cc/2026/09/06/guys-we-really-really-suck/&quot;&gt;&amp;quot;Guys, we really, really suck at this!&amp;quot;&lt;/a&gt; where he used the &lt;a href=&quot;https://safi-studio-scanner.abdulkadersafi.com/&quot;&gt;Safi Studio Scanner&lt;/a&gt; to audit his website along with a few dozen others within the IndieWeb and found some rather abysmal results. Safi crawls a site and scores it on your average metrics, such as SEO, content, images, structured data, security, performance, etc.&lt;/p&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Do not try this at home.&lt;/strong&gt; I want to preface this by saying that the Safi scanner&#39;s website looks awfully vibecoded, which makes me assume the npm package created to audit your site is as well. The previous tool I used, specification.website, also was created with an LLM, but that was just a &lt;a href=&quot;https://specification.website/checklist/&quot;&gt;plain text checklist&lt;/a&gt;, so there&#39;s no risk using that. This, however, does come with risk being something you&#39;re actually installing on your system (npm itself has a rather &lt;a href=&quot;https://securitylabs.datadoghq.com/articles/npm-worm-compromises-popular-npm-packages/&quot;&gt;bad reputation&lt;/a&gt; of vulnerabilities). Also, running a crawler against a production site can also trip rate limits or DDoS protection, which caused me to get &lt;a href=&quot;https://cdn.some.pics/brennan/6a9ee30a12dfd.png&quot;&gt;banned from my own site&lt;/a&gt;. There are &lt;a href=&quot;https://datayze.com/site-validator&quot;&gt;plenty&lt;/a&gt; &lt;a href=&quot;https://validator.w3.org/&quot;&gt;of other&lt;/a&gt; &lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;ways to audit&lt;/a&gt; and &lt;a href=&quot;https://www.debugbear.com/test/website-grader&quot;&gt;check important validation&lt;/a&gt; on your site, use those instead of this.&lt;/p&gt;
&lt;h2 id=&quot;my-site-didn&#39;t-play-nice&quot; tabindex=&quot;-1&quot;&gt;My Site Didn&#39;t Play Nice&lt;/h2&gt;
&lt;p&gt;To start, I had to modify the script doing the scanning. As Unattributed let me know, my site was the only one he tried to audit that didn&#39;t scan properly, because I have numerous webring links that don&#39;t have &lt;code&gt;rel=&amp;quot;nofollow&amp;quot;&lt;/code&gt;, and the way the script works is that it scans every linked page (great idea, right?). Luckily, this change wasn&#39;t hard to make.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const report = await audit(&#39;http://localhost:8082&#39;, {
  maxPages: 25,
  maxDepth: 3,
  concurrency: 4,
  browser: false,
  skip: [&#39;links&#39;],
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I built and served my site locally instead of scanning production, making iterative changes easier as well, and reran the audit many times during the process.&lt;/p&gt;
&lt;h2 id=&quot;duplicate-headers&quot; tabindex=&quot;-1&quot;&gt;Duplicate Headers&lt;/h2&gt;
&lt;p&gt;One of the most recurring warnings was &lt;code&gt;core-seo/single-h1&lt;/code&gt;, indicating that a lot of my pages had more than one &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; header. This confuses both search engines and screen reader users navigating my site by headings.&lt;/p&gt;
&lt;p&gt;There were three separate sources for this problem:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;My site header used an &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; for the &amp;quot;brennan.day&amp;quot; in the header on every page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;My homepage had the &amp;quot;Recent Posts&amp;quot; heading marked up as an &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;My homepage and tag pages had a hidden &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; inside the &lt;code&gt;h-feed&lt;/code&gt; microformat, used to give the feed a machine-readable name.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The fix here is to ensure everything except the single &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; per page is an &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;, or &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; depending on context.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;{# src/_includes/partials/header.njk | before #}
&amp;lt;h1 class=&amp;quot;weblog-title&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot;&amp;gt;{{ site.title }}&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;

{# after #}
&amp;lt;p class=&amp;quot;weblog-title&amp;quot; data-pagefind-ignore&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot;&amp;gt;{{ site.title }}&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The hidden feed-name heading became a &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; since its only meant to satisfy the microformat.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;{# before #}
&amp;lt;h1 class=&amp;quot;p-name&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;{{ site.title }}&amp;lt;/h1&amp;gt;

{# after #}
&amp;lt;span class=&amp;quot;p-name&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;{{ site.title }}&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pages, like &lt;a href=&quot;https://brennan.day/guestbook/&quot;&gt;/guestbook/&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/accounts/&quot;&gt;/accounts/&lt;/a&gt;, and &lt;a href=&quot;https://brennan.day/slash-pages/&quot;&gt;/slash-pages/&lt;/a&gt; never had an &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; because their layout didn&#39;t render one automatically like the way I have set for standard posts and page layouts. I added one in the Markdown body using the title variable, so it stays in sync with the page&#39;s &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; tag without hardcoding it twice:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;---
title: Guestbook
layout: base.njk
---

&amp;lt;h1&amp;gt;{{ title }}&amp;lt;/h1&amp;gt;

Welcome to my guestbook!
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I made sure the styles remained the same, so nothing looks different visually.&lt;/p&gt;
&lt;h2 id=&quot;meta-descriptions&quot; tabindex=&quot;-1&quot;&gt;Meta Descriptions&lt;/h2&gt;
&lt;p&gt;Meta descriptions should be between 70 and 160 characters long. My global fallback description (used whenever a description wasn&#39;t set on a page) was a lengthy paragraph introducing myself.&lt;/p&gt;
&lt;p&gt;Rather than rewrite my author bio, I kept it as the fallback and normalized description through a &lt;code&gt;truncate(155)&lt;/code&gt; filter:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;{% set pageDescription = (description or site.description) | truncate(155) %}
&amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;{{ pageDescription }}&amp;quot;&amp;gt;
&amp;lt;meta property=&amp;quot;og:description&amp;quot; content=&amp;quot;{{ pageDescription }}&amp;quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There were also pages that had descriptions that were too short, such as my &lt;a href=&quot;https://brennan.day/now/&quot;&gt;/now/&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/search/&quot;&gt;/search/&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/slash-pages/&quot;&gt;/slash-pages/&lt;/a&gt;, and &lt;a href=&quot;https://brennan.day/guestbook/&quot;&gt;/guestbook/&lt;/a&gt; pages.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;# Before
description: What I am working on right now, current projects and focus areas.

# After
description: What I am working on right now, including current projects, focus areas, and recent updates.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, I added a description to &lt;a href=&quot;https://brennan.day/search/&quot;&gt;/search/&lt;/a&gt; and to tag pages via &lt;code&gt;eleventyComputed&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;eleventyComputed:
  description: &amp;quot;Essays, posts, and writing tagged with &#39;{{ tag }}&#39; on the independent blog brennan.day.&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;images-without-dimensions&quot; tabindex=&quot;-1&quot;&gt;Images Without Dimensions&lt;/h2&gt;
&lt;p&gt;My &lt;code&gt;thumbnail&lt;/code&gt; shortcode generates &lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt;, &lt;code&gt;loading&lt;/code&gt;, and &lt;code&gt;decoding&lt;/code&gt; for responsive post images, but some images still didn&#39;t have dimensions, such as featured images rendered directly in layouts, the footer watermark, and the signature graphic, so I added those:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;img src=&amp;quot;/assets/images/signature.svg&amp;quot; alt=&amp;quot;Brennan&#39;s signature&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;25&amp;quot; loading=&amp;quot;lazy&amp;quot; decoding=&amp;quot;async&amp;quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;fixing-the-json-ld&quot; tabindex=&quot;-1&quot;&gt;Fixing the JSON-LD&lt;/h2&gt;
&lt;p&gt;I have a &lt;a href=&quot;https://json-ld.org/&quot;&gt;structured data&lt;/a&gt; JSON that is already rather robust. What it didn&#39;t have was an &lt;code&gt;Organization&lt;/code&gt; object, which Safi&#39;s &lt;code&gt;structured-data/org-or-website&lt;/code&gt; rule checks for.&lt;/p&gt;
&lt;p&gt;I added it to the shared structured-data partial, so it appears on every HTML page, referencing the same &lt;code&gt;@id&lt;/code&gt; values the rest of the graph already used:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;{
  &amp;quot;@type&amp;quot;: &amp;quot;Organization&amp;quot;,
  &amp;quot;@id&amp;quot;: &amp;quot;{{ site.url }}/#organization&amp;quot;,
  &amp;quot;name&amp;quot;: &amp;quot;{{ site.title }}&amp;quot;,
  &amp;quot;url&amp;quot;: &amp;quot;{{ site.url }}&amp;quot;,
  &amp;quot;logo&amp;quot;: &amp;quot;{{ site.url }}/assets/images/site-preview.jpg&amp;quot;,
  &amp;quot;sameAs&amp;quot;: [
    {% for relMeUrl in site.relMe %}
    &amp;quot;{{ relMeUrl }}&amp;quot;{% if not loop.last %},{% endif %}
    {% endfor %}
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also added a &lt;code&gt;datePublished&lt;/code&gt; field to the &lt;code&gt;WebSite&lt;/code&gt; and &lt;code&gt;WebPage&lt;/code&gt; objects, falling back to the last git commit date when a page doesn&#39;t have its own frontmatter date.&lt;/p&gt;
&lt;h2 id=&quot;render-blocking-scripts&quot; tabindex=&quot;-1&quot;&gt;Render-blocking Scripts&lt;/h2&gt;
&lt;p&gt;Pagefind&#39;s default UI script was loading in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; without &lt;code&gt;defer&lt;/code&gt;, which meant the browser had to stop and fetch it before it could finish parsing the page:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;{# before #}
&amp;lt;script src=&amp;quot;/pagefind/pagefind-ui.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;

{# after #}
&amp;lt;script src=&amp;quot;/pagefind/pagefind-ui.js&amp;quot; defer&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I did the same for Mermaid&#39;s CDN script on &lt;a href=&quot;https://brennan.day/style/&quot;&gt;/style/&lt;/a&gt;, which was already only loaded conditionally, but still blocked without &lt;code&gt;defer&lt;/code&gt;. The inline &lt;code&gt;mermaid.initialize()&lt;/code&gt; call already runs inside a &lt;code&gt;DOMContentLoaded&lt;/code&gt; listener, so deferring the script itself doesn&#39;t change when initialization happens, just when the browser is allowed to keep parsing the rest of the page while it downloads.&lt;/p&gt;
&lt;h2 id=&quot;looking-at-links&quot; tabindex=&quot;-1&quot;&gt;Looking at Links&lt;/h2&gt;
&lt;p&gt;I skipped the &lt;code&gt;links&lt;/code&gt; category on the first run, but then I realized page discovery only ever follows internal links, regardless of whether &lt;code&gt;links&lt;/code&gt; rules are enabled. The links category itself just checks the URLs already found on those same-origin pages. So I turned it back on:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const report = await audit(&#39;http://localhost:8082&#39;, {
  maxPages: 60,
  maxDepth: 4,
  concurrency: 4,
  browser: false,
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I found a couple more errors with this. First that my &lt;a href=&quot;https://brennan.day/start-here/&quot;&gt;/start-here/&lt;/a&gt; page linked to the tag &lt;code&gt;political&lt;/code&gt; even though my site uses &lt;code&gt;politics&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Next, I realized my &lt;a href=&quot;https://brennan.day/slash-pages/&quot;&gt;/slash-pages/&lt;/a&gt; directory links to &lt;a href=&quot;https://brennan.day/resume/&quot;&gt;/resume/&lt;/a&gt; and &lt;a href=&quot;https://brennan.day/poetry/&quot;&gt;/poetry/&lt;/a&gt;, both of which route through Netlify redirects rather than existing as pages:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[[redirects]]
  from = &amp;quot;/resume&amp;quot;
  to = &amp;quot;https://cv.brennanbrown.ca&amp;quot;
  status = 301

[[redirects]]
  from = &amp;quot;/poetry&amp;quot;
  to = &amp;quot;https://bkpoetry.com&amp;quot;
  status = 301
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Netlify treats &lt;a href=&quot;https://brennan.day/resume&quot;&gt;/resume&lt;/a&gt; and &lt;a href=&quot;https://brennan.day/resume/&quot;&gt;/resume/&lt;/a&gt; as different paths, and only matches a redirect rule against the exact one you wrote. I found the same mismatch a third time in &lt;code&gt;assets/xsl/rss-style.xsl&lt;/code&gt;, which links to &lt;a href=&quot;https://brennan.day/feed/&quot;&gt;/feed/&lt;/a&gt; against a &lt;code&gt;from = &amp;quot;/feed&amp;quot;&lt;/code&gt; rule.&lt;/p&gt;
&lt;p&gt;The fix is to add another rule with the trailing slash:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[[redirects]]
  from = &amp;quot;/resume/&amp;quot;
  to = &amp;quot;https://cv.brennanbrown.ca&amp;quot;
  status = 301

[[redirects]]
  from = &amp;quot;/poetry/&amp;quot;
  to = &amp;quot;https://bkpoetry.com&amp;quot;
  status = 301

[[redirects]]
  from = &amp;quot;/feed/&amp;quot;
  to = &amp;quot;/feed.xml&amp;quot;
  status = 301
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;switching-from-indieauth-to-indielogin&quot; tabindex=&quot;-1&quot;&gt;Switching from IndieAuth to IndieLogin&lt;/h2&gt;
&lt;p&gt;This part had nothing to do with the Safi scanner, rather, Clare Hooley &lt;a href=&quot;https://social.lol/@clare_hooley@mastodon.me.uk/117225212934724560&quot;&gt;brought it to my attention that&lt;/a&gt;, because I was using IndieAuth, she couldn&#39;t use her Codeberg account to login and write a comment on one of my blog posts.&lt;/p&gt;
&lt;p&gt;Now, &lt;a href=&quot;http://plaintext.brennan.day/building-an-indieauth-comment-system-for-your-static-site/&quot;&gt;my comment section solution&lt;/a&gt; is incredibly hacky, but has miraculously worked for many people and many comments. So of course I hesitate to update anything and possibly break it.&lt;/p&gt;
&lt;p&gt;But &lt;a href=&quot;https://indielogin.com/&quot;&gt;IndieLogin.com&lt;/a&gt; is a newer, actively-maintained service that checks &lt;code&gt;rel=&amp;quot;me&amp;quot;&lt;/code&gt; links of GitHub, GitLab, Codeberg, and email, on top of resolving a full IndieAuth server if the visitor has one. It&#39;s time I upgraded.&lt;/p&gt;
&lt;p&gt;Swapping the form&#39;s action was the easier part:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;{# before #}
&amp;lt;form id=&amp;quot;indieauth-form&amp;quot; action=&amp;quot;https://indieauth.com/auth&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;

{# after #}
&amp;lt;form id=&amp;quot;indieauth-form&amp;quot; action=&amp;quot;https://indielogin.com/authorize&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The harder part was that IndieLogin.com doesn&#39;t behave like a normal OAuth provider. It only confirms who someone is, it doesn&#39;t hand back an access token the way &lt;code&gt;tokens.indieauth.com&lt;/code&gt; does, and this was the issue I had when I tried changing this in the past.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{ &amp;quot;me&amp;quot;: &amp;quot;https://example.com/&amp;quot; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My comment-posting endpoint expected a bearer token it could hand to a token-introspection endpoint on every request. IndieLogin.com has no such endpoint, so I created my own.&lt;/p&gt;
&lt;p&gt;Once the visitor&#39;s &lt;code&gt;me&lt;/code&gt; URL comes back, a Netlify Function signs a short-lived token with HMAC-SHA256 and a server-side secret, and that&#39;s what gets stored in the browser and sent back when posting a comment:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function signSession(me) {
  const secret = process.env.COMMENT_SESSION_SECRET;
  const payload = Buffer.from(JSON.stringify({
    me,
    exp: Math.floor(Date.now() / 1000) + SESSION_TTL_SECONDS
  })).toString(&#39;base64url&#39;);
  const signature = crypto.createHmac(&#39;sha256&#39;, secret).update(payload).digest(&#39;base64url&#39;);
  return `${payload}.${signature}`;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, the comment endpoint verifies that signature and expiry locally instead of making a network call.&lt;/p&gt;
&lt;p&gt;My Micropub endpoint, which OAuth clients like Quill talk to, still uses &lt;code&gt;tokens.indieauth.com&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update, shortly after publishing:&lt;/strong&gt; Alas, I had to revert the IndieLogin switch. Turns out that &lt;code&gt;indielogin.com&lt;/code&gt; only accepts client IDs that have been manually added to its database, and the public instance&#39;s registration queue is not being serviced, so &lt;code&gt;brennan.day&lt;/code&gt; was rejected. I reverted the comment form and Netlify Functions to use &lt;code&gt;indieauth.com&lt;/code&gt; and &lt;code&gt;tokens.indieauth.com&lt;/code&gt; again. One day...&lt;/p&gt;
&lt;h2 id=&quot;what-hasn&#39;t-been-fixed&quot; tabindex=&quot;-1&quot;&gt;What Hasn&#39;t Been Fixed&lt;/h2&gt;
&lt;p&gt;Most of my site&#39;s scoring is now in the high 90s for most categories for the arbitrary, vibecoded appeasement of the Safi scanner, but not all of them.&lt;/p&gt;
&lt;p&gt;Because I was scanning a local instance of my site instead of the production URL, there were numerous errors. Security headers (&lt;code&gt;CSP&lt;/code&gt;, &lt;code&gt;HSTS&lt;/code&gt;, &lt;code&gt;X-Frame-Options&lt;/code&gt;, and so on) for instance, but I recently used the &lt;a href=&quot;https://developer.mozilla.org/en-US/observatory/analyze?host=brennan.day&quot;&gt;Mozilla HTTP Observability Report&lt;/a&gt; for that and scored a B-, due to things outside of my control, like certain webrings that use &lt;code&gt;JavaScript&lt;/code&gt; instead of simple URLs.&lt;/p&gt;
&lt;p&gt;There were also silly failures, such as no cookie consent banner detected (why would I have one on my cookieless site?) and that no analytics tag was detected either. Why? Because I use Umami, and Safi&#39;s detection regex only recognizes a specific list of providers (Google Analytics, Plausible, Fathom, Matomo, Segment, PostHog, Mixpanel, Hotjar, Clarity).&lt;/p&gt;
&lt;h2 id=&quot;production-scan-results&quot; tabindex=&quot;-1&quot;&gt;Production Scan Results&lt;/h2&gt;
&lt;p&gt;After publishing, I re-ran the Safi scanner against the live production site (&lt;code&gt;https://brennan.day&lt;/code&gt;) rather than my local build. The results were better in most categories:&lt;/p&gt;
&lt;div class=&quot;scroll&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;core-seo&lt;/td&gt;
&lt;td&gt;99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;content&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;images&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;performance&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;security&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;social-media&lt;/td&gt;
&lt;td&gt;99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;structured-data&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;crawlability&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;eeat&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;internationalization&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;legal&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;url-structure&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;links&lt;/td&gt;
&lt;td&gt;41&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;analytics&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Overall score: 77/100&lt;/strong&gt; across 60 crawled pages.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;links&lt;/code&gt; category is now the biggest remaining issue, almost entirely because of broken or missing &lt;code&gt;rel=noopener&lt;/code&gt; external links from webrings and blogrolls rather than anything I can fix on my own pages. With caveats in mind, my site is scoring in the high 90s for everything under my direct control.&lt;/p&gt;
&lt;h2 id=&quot;what-did-we-learn-this-time%3F&quot; tabindex=&quot;-1&quot;&gt;What Did We Learn This Time?&lt;/h2&gt;
&lt;p&gt;Scanners are useful the way spellcheckers are. They can help catch simple mistakes, like how many &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; headers are on a page, or the character length of meta descriptions, but there will often be many false positives, out of scope asks, and unimportant metrics. It takes wisdom as a web developer to know the difference.&lt;/p&gt;
&lt;p&gt;It is always far more important to get feedback from actual users (especially &lt;a href=&quot;http://plaintext.brennan.day/why-make-your-website-accessible-anyways/&quot;&gt;disabled users&lt;/a&gt;) of your site rather than chasing perfect 100s on any auditor.&lt;/p&gt;
&lt;p&gt;But, like nearly every other coding venture on this website, it is a surefire way to have fun procrastinating actual important stuff!&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Tending the Garden I Have: A Current State of Affairs</title>
		<link href="http://plaintext.brennan.day/tending-the-garden-i-have-a-current-state-of-affairs/"/>
		<updated>2026-09-07T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/tending-the-garden-i-have-a-current-state-of-affairs/</id>
		<content type="html">&lt;p&gt;It&#39;s the sixth of September already, somehow. Summer finally feels as though it&#39;s at an end, with the temperature outside right now a chilly +9C°, and the overcast sky a slate pewter with a biting wind. This is my absolute favourite kind of weather--no worries of sunburn and heatstroke. Of course, this is merely temporary, as we&#39;re going to reach a sunny high of +23C° on Wednesday. But for now, the chill is kind.&lt;/p&gt;
&lt;p&gt;All the swaying leaves and foliage are still green--I can&#39;t help but question if they were still green this late into the season last year. I feel as though I should be seeing the yellowing blondes surrounded by the darker evergreen pines.&lt;/p&gt;
&lt;p&gt;What&#39;s for certain, though, is that the overnight frost will consume any remains of tended gardens. This is an unavoidable loss in the northern prairies. You grow for as long as the warmth will forgive. The harvest is usually small, especially compared to the home gardens eastward in British Columbia.&lt;/p&gt;
&lt;p&gt;In gardens, flowers bloom, and there&#39;s a silly-but-nice concept online called &lt;a href=&quot;https://en.wiktionary.org/wiki/bloomscrolling&quot;&gt;bloomscrolling&lt;/a&gt;, which is the act of focusing your online experience towards positive, uplifting and inspiring content. It falls into the broader online aesthetic movement of &lt;a href=&quot;https://www.dailycal.org/blogs/hopecore-is-giving-me-hope/article_08e88e04-e0ab-11ee-b7a4-a3466aa7e726.html&quot;&gt;hopecore&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And I pause to think about my own garden--well, my digital garden (I haven&#39;t lived somewhere with enough space and soil for a real garden in a while). I want to take stock of all that I should be grateful for, and ensure I&#39;m focusing myself on &lt;a href=&quot;http://plaintext.brennan.day/being-a-toolshed-of-optimism/&quot;&gt;positive, uplifting inspiration&lt;/a&gt; more than anything else.&lt;/p&gt;
&lt;p&gt;I probably need a different term for this, because I don&#39;t just mean a single project, but rather everything I have and everything I do. My parcel of Internet that I&#39;ve been tending to. But more importantly, what have I been neglecting and lacking? Like many developers, I find starting new projects and ambitions more compelling than maintaining what I already have.&lt;/p&gt;
&lt;p&gt;So, this is more of a public, personal review for myself of what I have, what I need to be doing, what I need to be doing less of, and what I need to admit to myself I need to shelve because I already have too many seedlings sprouting to take care of.&lt;/p&gt;
&lt;p&gt;If you&#39;re interested in seeing the behind-the-scenes of things, or the current state of my running projects, then this might be of interest for you. Otherwise, this is a ledger purely for myself that I am publishing for the sake of transparency and honesty (and, really, to give me yet another blog post, let&#39;s be real).&lt;/p&gt;
&lt;h2 id=&quot;the-main-garden&quot; tabindex=&quot;-1&quot;&gt;The Main Garden&lt;/h2&gt;
&lt;p&gt;My centre is &lt;a href=&quot;https://brennan.day/&quot;&gt;Brennan.day&lt;/a&gt;, where I write my near-daily essays, host my &lt;a href=&quot;https://brennan.day/slash-pages&quot;&gt;slash pages&lt;/a&gt;, display my &lt;a href=&quot;https://brennan.day/accounts&quot;&gt;active accounts&lt;/a&gt;, and enjoy tinkering and &lt;a href=&quot;https://brennan.day/collections/technical-tutorials/&quot;&gt;adding functionality for fun&lt;/a&gt;. I syndicate my essays to &lt;a href=&quot;https://medium.com/@brennanbrown&quot;&gt;Medium.com&lt;/a&gt; and paywall my work there to make a living.&lt;/p&gt;
&lt;p&gt;I write at least 750 words every day on &lt;a href=&quot;https://750words.com/person/brennan&quot;&gt;750words.com&lt;/a&gt; and currently have a 565-day streak! I have an archive of my digital journal there starting from 2011, and have written +1,300,000 words in that time.&lt;/p&gt;
&lt;p&gt;I&#39;m the webmaster for the transformative works archive &lt;a href=&quot;https://fanfiction.lol/&quot;&gt;fanfiction.lol&lt;/a&gt;, a fork of &lt;a href=&quot;https://archiveofourown.org/&quot;&gt;Archive of Our Own&lt;/a&gt;, which currently has over 300 users and over 400 works! This is &lt;a href=&quot;http://plaintext.brennan.day/homelab-for-the-beginner-you-can-self-host-your-own-server-on-50-hardware/&quot;&gt;self-hosted on my homelab&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I write and publish poetry on &lt;a href=&quot;https://bkpoetry.com/&quot;&gt;BKpoetry.com&lt;/a&gt;, my longstanding Tumblr account that has over 17,000 followers. My independently published chapbooks are available for purchase on &lt;a href=&quot;https://brennanbrown.gumroad.com/&quot;&gt;Gumroad&lt;/a&gt;. Through my public writing, I&#39;ve been writing enough material for my next publication, but I haven&#39;t started on the formatting, layout, etc. for that yet.&lt;/p&gt;
&lt;h3 id=&quot;social-media&quot; tabindex=&quot;-1&quot;&gt;Social Media&lt;/h3&gt;
&lt;p&gt;Regarding social media, I do a bit of microblogging on &lt;a href=&quot;https://social.lol/@brennan&quot;&gt;Mastodon&lt;/a&gt;, and then keep up POSSE syndication of sharing my posts on my &lt;a href=&quot;https://bsky.app/profile/brennan.day&quot;&gt;Bluesky&lt;/a&gt;, &lt;a href=&quot;https://linkedin.com/in/brennankbrown&quot;&gt;LinkedIn&lt;/a&gt;, and &lt;a href=&quot;https://me.dm/@brennanbrown&quot;&gt;Medium&#39;s Mastodon instance&lt;/a&gt;. Feel free to follow or connect with me on these platforms if you use them, but note that I&#39;m mostly just syndicating.&lt;/p&gt;
&lt;p&gt;I also typically browse more indie places, like the &lt;a href=&quot;https://discourse.32bit.cafe/&quot;&gt;32-bit Café&lt;/a&gt;, &lt;a href=&quot;https://ctrlshift3.com/&quot;&gt;Ctrl+Shift+3&lt;/a&gt;, &lt;a href=&quot;https://pillowfort.social/&quot;&gt;Pillowfort&lt;/a&gt;, and &lt;a href=&quot;https://bubbles.town/&quot;&gt;Bubbles.town&lt;/a&gt; on a daily basis to keep up with the IndieWeb. I&#39;ve written about &lt;a href=&quot;http://plaintext.brennan.day/five-interesting-indie-platforms-you-might-not-have-heard-of/&quot;&gt;these platforms&lt;/a&gt; in &lt;a href=&quot;http://plaintext.brennan.day/bubbles-town-four-months-later/&quot;&gt;more detail&lt;/a&gt; previously if you&#39;re curious. I&#39;m also a proud member of &lt;a href=&quot;https://brennan.omg.lol/&quot;&gt;omg.lol&lt;/a&gt; and use its services often. I&#39;m also always on IRC via &lt;a href=&quot;https://halloy.chat/&quot;&gt;Halloy&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;programming&quot; tabindex=&quot;-1&quot;&gt;Programming&lt;/h3&gt;
&lt;p&gt;Regarding my coding projects, I&#39;m active on &lt;a href=&quot;https://gitlab.com/brennankbrown&quot;&gt;GitLab&lt;/a&gt;, &lt;a href=&quot;https://codeberg.org/brennanbrown&quot;&gt;Codeberg&lt;/a&gt;, &lt;a href=&quot;https://source.tube/brennan&quot;&gt;Source.tube&lt;/a&gt; and reluctantly &lt;a href=&quot;https://github.com/brennanbrown&quot;&gt;GitHub&lt;/a&gt;. I keep track of my coding with &lt;a href=&quot;https://wakatime.com/@brennan&quot;&gt;Wakatime&lt;/a&gt;, and some of my technical articles are on &lt;a href=&quot;https://dev.to/brennan&quot;&gt;dev.to&lt;/a&gt;. I recently updated my &lt;a href=&quot;https://berryhouse.ca/portfolio&quot;&gt;portfolio&lt;/a&gt; to show off my projects.&lt;/p&gt;
&lt;p&gt;I have a backup of my main site synced weekly on &lt;a href=&quot;https://brennanday.neocities.org/&quot;&gt;Neocities&lt;/a&gt; and a script that mirrors every page in my &lt;code&gt;sitemap.xml&lt;/code&gt; to the &lt;a href=&quot;http://web.archive.org/web/sitemap/brennan.day&quot;&gt;Wayback Machine&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;scholarship&quot; tabindex=&quot;-1&quot;&gt;Scholarship&lt;/h3&gt;
&lt;p&gt;Regarding scholarship, I have accounts set up on &lt;a href=&quot;https://www.researchgate.net/profile/Brennan-Brown-2&quot;&gt;ResearchGate&lt;/a&gt;, &lt;a href=&quot;https://orcid.org/0009-0004-9951-3451&quot;&gt;ORCID&lt;/a&gt;, and &lt;a href=&quot;https://scholar.google.ca/citations?user=XqdnVq0AAAAJ&quot;&gt;Google Scholar&lt;/a&gt;. I was also recently added to &lt;a href=&quot;https://blog.front-matter.de/posts/rogue-scholar-newsletter-august-2026/&quot;&gt;Rogue Scholar&lt;/a&gt;. Sadly, my publication was rejected for an ISSN, as &amp;quot;personal blogs and personal web sites &lt;a href=&quot;https://www.canada.ca/en/library-archives/services/publishers/issn/obtain.html#a1&quot;&gt;are not eligible&lt;/a&gt; for ISSN assignment.&amp;quot;&lt;/p&gt;
&lt;h3 id=&quot;reaching-me&quot; tabindex=&quot;-1&quot;&gt;Reaching Me&lt;/h3&gt;
&lt;p&gt;While there are many different ways to reach me, the best is always going to be email: &lt;a href=&quot;mailto:mail@brennanbrown.ca&quot;&gt;mail@brennanbrown.ca&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;what-needs-tending&quot; tabindex=&quot;-1&quot;&gt;What Needs Tending&lt;/h2&gt;
&lt;p&gt;There are things I want to tend more. I&#39;ve dropped off on my online diary and behind-the-scenes writing on &lt;a href=&quot;https://brennanbrown.dreamwidth.org/&quot;&gt;Dreamwidth&lt;/a&gt;, but that&#39;s mostly been because I&#39;ve been so busy with blogging each day in August. I have more wiggle room, now. I also want to be more active on my &lt;a href=&quot;https://tilde.town/~brennan/&quot;&gt;Tilde accounts&lt;/a&gt; and &lt;a href=&quot;https://brennan.smol.pub/&quot;&gt;Gemini capsule&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There&#39;s also my professional portfolio at &lt;a href=&quot;https://brennanbrown.ca/&quot;&gt;BrennanBrown.ca&lt;/a&gt;, and it&#39;s pretty much fine, albeit out of date. Same with my &lt;a href=&quot;https://cv.brennanbrown.ca/&quot;&gt;digital CV&lt;/a&gt;. I think I&#39;m fine with these being in more of a maintenance mode.&lt;/p&gt;
&lt;h2 id=&quot;good-prunes&quot; tabindex=&quot;-1&quot;&gt;Good Prunes&lt;/h2&gt;
&lt;p&gt;There have been intentional prunes I&#39;m happy with. &lt;a href=&quot;http://plaintext.brennan.day/a-full-guide-to-properly-delete-corporate-social-media-accounts/&quot;&gt;Quitting corporate social media&lt;/a&gt; has been wonderful. I no longer have to worry about syndicating my work to Threads or Instagram the way I do to Bluesky and Mastodon. Nor do I have the constant temptation of numerous endless scrolling feeds.&lt;/p&gt;
&lt;p&gt;And the truth is that corporate social media has never given me significant metrics. These platforms are specifically designed to keep people on them, and it&#39;s documented that &lt;a href=&quot;https://www.socialmediatoday.com/news/heres-each-big-social-platform-stand-external-links/733946/&quot;&gt;external linking is suppressed&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If people want to continue reading my work and contact me, I make that as easy as I can. Even if you don&#39;t remember my website, you can just Google me. That is one advantage to using my full name everywhere.&lt;/p&gt;
&lt;h2 id=&quot;dead-plants&quot; tabindex=&quot;-1&quot;&gt;Dead Plants&lt;/h2&gt;
&lt;p&gt;There&#39;s a trend online of people &lt;a href=&quot;https://rakowwwski.substack.com/p/welcome-to-the-museum-of-failures&quot;&gt;posting their own &amp;quot;Museum of Failures&amp;quot;&lt;/a&gt; on social media, where people walk followers through exhibits, such as fumbling a once-in-a-lifetime opportunity or living fifteen years spent in a city they disliked, all presented as a self-aware highlight reel more than a confession.&lt;/p&gt;
&lt;p&gt;In Vancouver, curator Eyvan Collins runs the &lt;a href=&quot;https://www.cp24.com/news/canada/2026/01/26/museum-in-vancouver-puts-personal-failures-on-display-encouraging-people-to-move-on/&quot;&gt;Museum of Personal Failure&lt;/a&gt;, which puts actual objects on display at a mall. A dead aloe plant, an old wedding dress from a failed marriage, a rejection letter--paired with a handwritten explanation from whoever submitted it. It began as a way for Collins to process a bad breakup and ended up with enough material for a full exhibition.&lt;/p&gt;
&lt;p&gt;Failure isn&#39;t something to bury--I emphatically agree there--but it&#39;s just as cynical to turn it into content, trying to reframe your flops into &amp;quot;exhibits&amp;quot; for engagement. What I&#39;m trying to do here is just be honest and take stock. There are projects I&#39;ve started, or wanted to start, which I admit haven&#39;t been working or been worked on. And this audit is where I&#39;m honest with myself about what I&#39;m actually doing and what I need to intentionally quit, rather than letting them continue to linger in an indefinite limbo of &amp;quot;oh yeah, I&#39;ll get to that when I have time, surely.&amp;quot;&lt;/p&gt;
&lt;p&gt;To start, I began &lt;a href=&quot;https://berryhouse.ca/&quot;&gt;Berry House&lt;/a&gt; before I started my independent publication Brennan.day, as I envisioned myself doing webdev work for a living rather than writing. But this hasn&#39;t been the case. While I put all the webdev projects I do under the Berry House name, I don&#39;t have any clientele, but I do try to help out people and do consultations pro bono when asked.&lt;/p&gt;
&lt;p&gt;I also had the idea to do a &lt;a href=&quot;http://plaintext.brennan.day/announcing-my-new-radio-show-a-love-letter-to-public-access-television/&quot;&gt;public radio show&lt;/a&gt; and I got all the technical logistics set up for it, and I even migrated it from the costly DigitalOcean droplet to my self-hosted homelab; however, I still haven&#39;t actually done a radio show yet. This is due both to the amount of dedicated time it would take which I&#39;m still spending on writing, and also just that I&#39;m rather shy!&lt;/p&gt;
&lt;p&gt;Related to that, while I&#39;m proud of how I have been able to start and keep &lt;a href=&quot;https://folk.zone/&quot;&gt;Folk.zone&lt;/a&gt; online, I&#39;m thinking of shutting it down. I don&#39;t believe any of the services are being used, and they take up considerable computational power despite being unused.&lt;/p&gt;
&lt;p&gt;Next, you&#39;ll notice there&#39;s a newsletter sign-up on my website via &lt;a href=&quot;https://buttondown.com/brennanbrown/&quot;&gt;Buttondown&lt;/a&gt;, but I&#39;ve never actually sent out a newsletter! I think this is a much lesser evil than sending a bunch of spam, but it is still a failure nonetheless. My original plan was to email via RSS, but that requires a premium account at $12CAD/month, and it really doesn&#39;t seem worth the expense. I would recommend using an RSS reader to keep up with my blog! While the newsletter is dormant right now, I think it would be good to sign up just in case something catastrophic happened to my site and email was the only way I could communicate that (but I&#39;ll also always have Mastodon, Bluesky, etc.)&lt;/p&gt;
&lt;p&gt;Additionally, I was supposed to start &lt;a href=&quot;https://fireweed.school/&quot;&gt;Fireweed School&lt;/a&gt; this summer, but again I haven&#39;t had the time to dedicate to this, especially if I&#39;m expecting people to pay for it. I absolutely recommend people join the &lt;a href=&quot;https://webwriterscollective.com/&quot;&gt;Web Writers&#39; Collective&lt;/a&gt; if they&#39;re interested in something like this, which I&#39;m an organiser for!&lt;/p&gt;
&lt;p&gt;I also announced awhile back that I was aiming to obtain a bachelors in computer science from the &lt;a href=&quot;https://www.uopeople.edu/&quot;&gt;University of the People&lt;/a&gt;. While I completed my first semester, I realize I don&#39;t have the funds (even tuition-free) or (again) the time to dedicate myself to this. Instead, I will continue completing the still-existing MOOCs and use my public library card to continue using &lt;a href=&quot;https://www.calgarylibrary.ca/read-learn-and-explore/digital-library/linkedin-learning-for-library&quot;&gt;LinkedIn Learning free of charge&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Overall, there is a relief of narrowing my scope and focusing better on less. I need to stop biting off more than I can chew, that&#39;s for sure, but it&#39;s also fun throwing everything at the wall and seeing what sticks.&lt;/p&gt;
&lt;p&gt;Finally, I have been a total failure when it comes to the &lt;a href=&quot;https://brennan.day/toonie-club/&quot;&gt;Toonie Club&lt;/a&gt;, as I haven&#39;t been putting out a members-only monthly newsletter. I haven&#39;t taken out any funds I&#39;ve received from this on Patreon, and it&#39;s a low-cost amount, so I&#39;m happy to give full refunds. If you&#39;d like to continue being a supporter, please &lt;a href=&quot;mailto:mail@brennanbrown.ca&quot;&gt;email me&lt;/a&gt; with what name and URL you&#39;d like to be put on a publicly-displayed supporter wall that&#39;s going to be on my site (another perk I promised) and let me know if you&#39;d like a virtual meeting for anything! Otherwise, going forward I&#39;m going to make it more clear that your contributions will be more for ensuring I can continue my writing without a paywall, as well as my free coding projects and web services for everyone. Unlike the other failures, this affects other people, and so I take it a lot more seriously.&lt;/p&gt;
&lt;h2 id=&quot;the-harvest&quot; tabindex=&quot;-1&quot;&gt;The Harvest&lt;/h2&gt;
&lt;p&gt;Frost arrives whether or not you figured out what&#39;s worth saving, there&#39;s no negotiation when the shock kills the plant. Maybe that&#39;s the lesson in all this counting. Choosing has to happen before the cold makes it for you. There are a lot of unknowns for me as winter approaches, but I do know that the scattered seedlings of my daily essays and archive are still growing. I&#39;ve yet to take a step back and really appreciate or understand what this site and project are growing into, but it&#39;s so fun taking it day-by-day.&lt;/p&gt;
&lt;p&gt;I&#39;m grateful for the time, for the gloomy days where I can make a cup of green tea and watch the rain before it turns into sleet. For being able to look honestly at what&#39;s working and what isn&#39;t. I can breathe a sigh of relief fogging up near the open window.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Love is for the ones who love the work.</title>
		<link href="http://plaintext.brennan.day/love-is-for-the-ones-who-love-the-work/"/>
		<updated>2026-09-05T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/love-is-for-the-ones-who-love-the-work/</id>
		<content type="html">&lt;p&gt;The title of this post comes from the last line of Joseph Fasano&#39;s poem &lt;a href=&quot;https://poets.org/poem/student-who-used-ai-write-paper&quot;&gt;&amp;quot;For a Student Who Used AI to Write a Paper&amp;quot;&lt;/a&gt;, but to me, it encompasses so much more than that.&lt;/p&gt;
&lt;p&gt;For people have always yearned for an easier way--to fudge the numbers, or to outright cheat. At times, there&#39;s a valid strategy here. Many things in life are not worth putting 100% of your effort into, and knowing when to go all gas no brakes is sacred wisdom. There are people who work hard their entire lives and have nothing to show for it because of the unlucky alignment of where that energy is focused and channelled.&lt;/p&gt;
&lt;p&gt;But far more often, people yearn. There are dreams and written goals and recurring thoughts of taking action, but then something else happens. &lt;a href=&quot;http://plaintext.brennan.day/a-ship-in-harbour-is-safe/&quot;&gt;A ship in harbour is safe&lt;/a&gt;, but that is not what ships are built for.&lt;/p&gt;
&lt;p&gt;I write this as somebody who is often remarked upon for my writing cadence and consistency. Sometimes, people ask how they can emulate what I do--they ask what the magic is to replicate my output.&lt;/p&gt;
&lt;p&gt;With how much I&#39;ve written about &lt;a href=&quot;https://brennan.day/collections/writing-craft/&quot;&gt;the craft of writing&lt;/a&gt;, I&#39;ve attempted to approach this question from a variety of angles to give a satisfying answer. I&#39;ve written before about what my unromantic &lt;a href=&quot;http://plaintext.brennan.day/the-true-unglamorous-life-of-a-writer/&quot;&gt;day-to-day life looks like as a full-time writer&lt;/a&gt;, that &lt;a href=&quot;http://plaintext.brennan.day/compulsion-the-writers-who-wrote-the-most-in-history/&quot;&gt;I have a compulsion&lt;/a&gt;, and about the &lt;a href=&quot;http://plaintext.brennan.day/the-inertia-effect-stop-optimizing/&quot;&gt;inertia problem&lt;/a&gt; of premature optimization.&lt;/p&gt;
&lt;p&gt;But love is for the ones who love the work. I don&#39;t daydream about the romantic notions of being a writer. I just write. I don&#39;t think my thoughts are too unimportant or too uninteresting to write them out. I just write. I do not wish I was loafing around and doing something easier. I just write.&lt;/p&gt;
&lt;p&gt;There is another poem that Fasano seemed to be echoing, written by Robert Frost titled &lt;a href=&quot;https://poets.org/poem/hyla-brook&quot;&gt;Hyla Brook&lt;/a&gt;, which has the last line:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We love the things we love for what they are.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Do you love the thought of the thing, or the thing itself? Do you find yourself buying books you never read, or do you read page-after-page of loaned paperbacks from the public library? Have you amassed pristine stationery and an empty gilded notebook, or do you just write and plan on whatever you can find?&lt;/p&gt;
&lt;p&gt;Being a collector is not lesser or inferior--it can be a deeply enjoyable hobby in its own right--but do not think you are creating if you only collect. You must love the verb, not the noun.&lt;/p&gt;
&lt;p&gt;I have been trying to write &lt;a href=&quot;http://plaintext.brennan.day/creating-an-open-source-blogging-studies-syllabus/&quot;&gt;a curriculum for blogging&lt;/a&gt; for the past few days, and this is admittedly where I always get stuck. It is rather easy to teach the mechanics and the logistics--the platforms, the Markdown syntax, the best practices--whatever.&lt;/p&gt;
&lt;p&gt;But how do you teach someone to love the work? You kind of have to start with that being presumed as already being in the person--a prerequisite to the class.&lt;/p&gt;
&lt;p&gt;But how many people out there really love the work? Wouldn&#39;t they have already started on their own if that feral hunger was already within them? I could help channel and focus that drive and spirit, the way I have done with my own, but that is still a different topic entirely. And, too, I think of the question &amp;quot;what do I write about?&amp;quot; and it has the same answer. What you love. We love the things we love for what they are.&lt;/p&gt;
&lt;p&gt;When I attempt to have a dialogue with so-called genAI &amp;quot;artists,&amp;quot; I hear the same response I do to someone brand new to any craft: &lt;a href=&quot;https://mastodon.social/@JigenD/117197755722486011&quot;&gt;&amp;quot;I realized at some point that the breadth of what I would ideally be able to create wouldn&#39;t be attainable in my lifetime.&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When we focus on the output--on the noun of the work--it can seem impossibly daunting. The truth is you need to &lt;a href=&quot;http://plaintext.brennan.day/do-it-ugly-on-bad-art-and-civic-duty/&quot;&gt;do it ugly&lt;/a&gt;. There is no substitution here. You need to be bad at something before you&#39;re good at it. Trying to circumvent this with shortcuts, such as genAI, will only prolong your lack of improvement.&lt;/p&gt;
&lt;p&gt;There is bold, colourful weirdness in the flaws of what you create with your own two hands. It is entirely unique and yours alone. Do not let your humanity be eroded by the piss-average output of a machine that, sure, looks better at first glance, but becomes painfully boring and useless so quickly.&lt;/p&gt;
&lt;p&gt;And the truth may be that you don&#39;t love the work. That the verb is entirely different from the daydreamed noun in your head. That&#39;s okay! But you can only find out by giving it a fair start and trying.&lt;/p&gt;
&lt;p&gt;Imagine where you&#39;d be if you started ten years ago. Again, it is a bitter reckoning to contemplate that, I understand. But the second best time to start is now. I promise.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>I Want to be Unremarkable</title>
		<link href="http://plaintext.brennan.day/i-want-to-be-unremarkable/"/>
		<updated>2026-09-03T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/i-want-to-be-unremarkable/</id>
		<content type="html">&lt;p&gt;For my entire life, I have been aware that &lt;a href=&quot;http://plaintext.brennan.day/you-must-you-must-you-must/&quot;&gt;I must die&lt;/a&gt;, and that my time alive is finite. This has always been a helpful motivator in doing important things, such as writing hundreds of words each day. When you recognize the timescale of epochs and eras, you also recognize how short your own existence is, and how pressing and urgent your actions must be.&lt;/p&gt;
&lt;p&gt;And for the most part, this has oriented me towards good--I want to try to leave the world better than I found it, and make use of my capabilities for the sake of others.&lt;/p&gt;
&lt;p&gt;But I am compelled not only to write, but to write in public. A compulsion to show my work and share myself as much as possible. I want there to be a record--a carving in the stone. And I have to reconcile this compulsion toward legacy with the fact that I want to remain, personally, unremarkable.&lt;/p&gt;
&lt;p&gt;There&#39;s an obvious tension there, if not an outright contradiction. I want to contribute good to the world, but I want my contributions separated from myself. I want people to discuss any good ideas I may have and forget the author. How do I negotiate the bargain between public writing and private obscurity?&lt;/p&gt;
&lt;p&gt;For I &lt;em&gt;am&lt;/em&gt; unremarkable--I am just some guy writing on the Internet and I never forget that. My opinions don&#39;t matter, and I am far more often compiling the original efforts of others rather than investigating things first-hand or breaking a story myself. I am a layperson through and through. And perhaps this is why I would want to remain forgettable--it is more aligned with reality.&lt;/p&gt;
&lt;p&gt;There is a Daoist argument that uselessness is a survival strategy--&lt;a href=&quot;https://uselessoldtree.com/chuangtzu/&quot;&gt;the gnarled tree that the carpenter cannot make good wood from&lt;/a&gt; is the only one left standing. You cannot be extracted and exploited if you have nothing to offer. &lt;a href=&quot;https://www.amentsoc.org/insects/glossary/terms/crypsis/&quot;&gt;Crypsis&lt;/a&gt; is the biological ability--and evolutionary advantage--to freeze and mask your scent, after all. And I think I have done a good job of that, in many ways. Despite my output, I&#39;m not enticing to brands or sponsorships, and there is no real way to make revenue off of me. Good.&lt;/p&gt;
&lt;p&gt;Epicurus had the idea of &lt;a href=&quot;https://twentiers.com/lathe-biosas/&quot;&gt;&lt;em&gt;lathe biōsas&lt;/em&gt;&lt;/a&gt;, &lt;a href=&quot;https://anopenground.com/2025/02/05/lathe-biosas/&quot;&gt;live unnoticed&lt;/a&gt;--the ethical maxim that we ought to withdraw from public ambition and civic visibility, as recognition invites both envy and obligation. This is the direct opposite of the Stoic/Aristotelian model of virtue requiring a public life.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://www.goodreads.com/en/book/show/20186.Seeing_Like_a_State&quot;&gt;&lt;em&gt;Seeing Like a State&lt;/em&gt;&lt;/a&gt;, James C. Scott describes the concept of &lt;a href=&quot;https://ribbonfarm.com/2010/07/26/a-big-little-idea-called-legibility/&quot;&gt;&amp;quot;legibility&amp;quot;&lt;/a&gt; and argues that state power depends on making populations, lands, and transactions legible. Mapped, named, standardized and countable. In his follow-up, &lt;a href=&quot;https://theanarchistlibrary.org/library/james-c-scott-the-art-of-not-being-governed&quot;&gt;&lt;em&gt;The Art of Not Being Governed&lt;/em&gt;&lt;/a&gt;, he examined hill peoples in Southeast Asia who organized their agriculture, kinship, and even their lack of writing systems to stay outside that legibility. Illegibility is a method to evade capture.&lt;/p&gt;
&lt;p&gt;Similarly, Deleuze and Guattari discuss the idea of &amp;quot;becoming imperceptible&amp;quot; in &lt;a href=&quot;https://theanarchistlibrary.org/library/gilles-deleuze-felix-guattari-a-thousand-plateaus&quot;&gt;&lt;em&gt;A Thousand Plateaus&lt;/em&gt;&lt;/a&gt;. &lt;a href=&quot;https://fractalontology.wordpress.com/2008/06/01/a-thousand-plateaus-chapter-eight-lines-and-segmentarity/&quot;&gt;An endpoint of a line of flight&lt;/a&gt;: the fixed, representable self dissolved so it can no longer be captured by systems of identity, classification, and control.&lt;/p&gt;
&lt;p&gt;We have lost the practical obscurity of &lt;a href=&quot;https://supreme.justia.com/cases/federal/us/489/749/&quot;&gt;&lt;em&gt;DOJ v. Reporters Committee, 1989&lt;/em&gt;&lt;/a&gt; given how frictionless search and aggregation have become. But the end-user still has &lt;a href=&quot;https://blog.brennanbrown.ca/21-structure-chaos-ca5545d8dfdb&quot;&gt;obfuscation&lt;/a&gt;--the act of producing signals of excessive ambiguity and misleading noise. If how we act is too confusing and unpredictable, we cannot be predicted.&lt;/p&gt;
&lt;p&gt;Of course, how people perceive me is outside of my control entirely. While I can write whatever I want, I cannot control the response--and I likewise cannot control what people think (or don&#39;t think) of me. And of course I&#39;m only writing this because &lt;a href=&quot;http://plaintext.brennan.day/normalized-fascism-in-open-source-12-million-given-to-dhh/&quot;&gt;my writing yesterday&lt;/a&gt; gained thousands of views and &lt;a href=&quot;https://lobste.rs/s/ipy9xw/normalized_fascism_open_source_12&quot;&gt;dozens of comments&lt;/a&gt;. But it will fade and pass just as every other spike and blip has in the past, and I will return to my small number of dedicated, lovely readers.&lt;/p&gt;
&lt;p&gt;The most peaceful and relaxing choice is, as usual, surrender. I&#39;ll keep writing what I write, regardless. No matter what I contribute and no matter the reception, I will reach &lt;a href=&quot;http://plaintext.brennan.day/our-shared-oblivion/&quot;&gt;the same oblivion&lt;/a&gt; as everyone else. And this is exactly why I do what I want. And I am so thankful for this absurd, mostly invisible life I have.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I&#39;m Nobody! Who are you?&lt;br /&gt;
Are you - Nobody - too?&lt;br /&gt;
Then there&#39;s a pair of us!&lt;br /&gt;
Don&#39;t tell! they&#39;d advertise - you know!&lt;/p&gt;
&lt;p&gt;How dreary - to be - Somebody!&lt;br /&gt;
How public - like a Frog -&lt;br /&gt;
To tell one&#39;s name - the livelong June -&lt;br /&gt;
To an admiring Bog!&lt;/p&gt;
&lt;p&gt;-- &lt;a href=&quot;https://poets.org/poem/im-nobody-who-are-you-260&quot;&gt;Emily Dickinson, #260&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>Normalized Fascism in Open Source: $12 Million Given to DHH</title>
		<link href="http://plaintext.brennan.day/normalized-fascism-in-open-source-12-million-given-to-dhh/"/>
		<updated>2026-09-02T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/normalized-fascism-in-open-source-12-million-given-to-dhh/</id>
		<content type="html">&lt;p&gt;I&#39;m somebody who&#39;s written rather extensively on &lt;a href=&quot;https://brennan.day/collections/ai/&quot;&gt;generative AI ethics&lt;/a&gt;, and I feel there is a lot that is unethical about the current corporate climate and culture surrounding the technology. And when I write about LLMs and chatbots, I&#39;m careful not to make judgments about the people using the end products--I don&#39;t think you&#39;re a bad person if you use ChatGPT or Claude, or whatever.&lt;/p&gt;
&lt;p&gt;What I&#39;m discussing today is different. There is no room for debate or argument, here--only hard, absolute lines in the sand.&lt;/p&gt;
&lt;p&gt;Much of the world has become far too complacent and complicit with people (and their companies) who proclaim and hold far-right, fascist ideology. These are not image boards residing in the fringe corners of an anonymous Internet made up of people who have slipped through the cracks. No, these are wealthy people in power who are blatant and shameless in their support for those who continuously beat the drum of bigotry, xenophobia, transphobia, and cynical accelerationist hatred.&lt;/p&gt;
&lt;p&gt;Open source technology has become a culture safe for this rhetoric and ideology, with millions of dollars being invested to continue this status quo.&lt;/p&gt;
&lt;p&gt;You need to be made aware of this, and then you need to be vocal and take action.&lt;/p&gt;
&lt;h2 id=&quot;dhh&quot; tabindex=&quot;-1&quot;&gt;DHH&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://dhh.dk/&quot;&gt;David Heinemeier Hansson&lt;/a&gt; is the most well-known figurehead here. He is the creator of Ruby on Rails, CTO of 37signals, and a Shopify board member.&lt;/p&gt;
&lt;p&gt;In September 2025, DHH published &lt;a href=&quot;https://web.archive.org/web/20250925050154/https://world.hey.com/dhh/as-i-remember-london-e7d38e64&quot;&gt;&amp;quot;As I remember London&amp;quot;&lt;/a&gt;, mourning that London is &amp;quot;no longer full of native Brits&amp;quot;--a claim that redefines &amp;quot;native Brit&amp;quot; to mean &amp;quot;white.&amp;quot; Developer Jake Lazaroff &lt;a href=&quot;https://jakelazaroff.com/words/dhh-is-way-worse-than-i-thought/&quot;&gt;details how DHH&lt;/a&gt; describes a Tommy Robinson march as &amp;quot;heartwarming,&amp;quot; where speakers called for &amp;quot;remigration&amp;quot; (a euphemism for the ethnic cleansing of non-white residents) and one speaker demanded that countries &amp;quot;ban halal,&amp;quot; &amp;quot;ban mosques,&amp;quot; and &amp;quot;ban temples.&amp;quot; DHH invokes abuse scandals to bolster his white-nationalist rhetoric, framing non-white men as predators of &amp;quot;British girls,&amp;quot; while UK data &lt;a href=&quot;https://www.csacentre.org.uk/research-resources/research-evidence/scale-nature-of-abuse/trends-in-official-data/&quot;&gt;shows no such racial skew&lt;/a&gt;. &lt;a href=&quot;https://thelibre.news/lets-talk-about-dhh/&quot;&gt;LibreNews&lt;/a&gt; reaches the same conclusion.&lt;/p&gt;
&lt;p&gt;In July 2026, DHH published &lt;a href=&quot;https://web.archive.org/web/20260721200429/https:/world.hey.com/dhh/wolves-sheep-and-gypsies-ba44af6a&quot;&gt;&amp;quot;Wolves, sheep, and gypsies&amp;quot;&lt;/a&gt;, an essay comparing Denmark&#39;s rebounding wolf population to Roma encampments in Copenhagen parks as two versions of the same problem, closing with: &amp;quot;When wolves get out of control, you shoot them. When gypsies take over public spaces, you deport them. This isn&#39;t hard, it isn&#39;t cruel. It&#39;s the basic logic of self-preservation.&amp;quot; As &lt;a href=&quot;https://couchsky.app/u/chimeracoder.bsky.social/p/3mrnl6w23p22g&quot;&gt;Bluesky user Aditya Mukerjee pointed out&lt;/a&gt;, the Roma people DHH is talking about deporting are mostly citizens of the countries they live in. &amp;quot;Deport&amp;quot; doesn&#39;t describe a coherent policy proposal, it&#39;s ethnic cleansing with softer wording. DHH then complained publicly &lt;a href=&quot;https://world.hey.com/dhh/i-m-sorry-dave-380ec27d&quot;&gt;when Claude refused his request&lt;/a&gt; to translate the post into Italian, with Anthropic&#39;s model explaining it was declining because &amp;quot;putting Roma people alongside wolves, with shooting and deportation as parallel solutions, is dehumanizing toward an ethnic group.&amp;quot;&lt;/p&gt;
&lt;p&gt;Developer Joel Drapper wrote how &lt;a href=&quot;https://joel.drapper.me/p/rubygems-takeover/&quot;&gt;Ruby Central had lost a $250,000-a-year sponsorship&lt;/a&gt; from Sidekiq after giving DHH a speaking slot at RailsConf a few weeks later, leaving the nonprofit financially dependent on Shopify (where DHH sits on the board); Shopify then pushed Ruby Central to consolidate control rather than lose its funding. &lt;a href=&quot;https://www.theregister.com/2025/09/25/open_source_to_closed_doors/&quot;&gt;The Register&lt;/a&gt; and &lt;a href=&quot;https://www.heise.de/en/news/Who-owns-an-open-source-project-RubyGems-threatens-to-split-10685184.html&quot;&gt;Heise&lt;/a&gt; both covered the fallout.&lt;/p&gt;
&lt;p&gt;But none of this has cost DHH money--if anything, he&#39;s only gained. A few weeks ago, DHH &lt;a href=&quot;https://omarchy.org/news/2026/08/omacom-foundation-launches-with-8-million/&quot;&gt;announced the Omacom Foundation&lt;/a&gt; to bankroll his Linux distribution, Omarchy, which is nothing more than a few vibecoded scripts on top of Arch Linux.&lt;/p&gt;
&lt;p&gt;There are twelve &amp;quot;Founding Patrons&amp;quot; pledging a million dollars apiece:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/tobi&quot;&gt;Tobi Lütke&lt;/a&gt;, CEO of &lt;a href=&quot;https://www.shopify.com/&quot;&gt;Shopify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/patrickc&quot;&gt;Patrick Collison&lt;/a&gt;, CEO of &lt;a href=&quot;https://stripe.com/&quot;&gt;Stripe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/MichaelDell&quot;&gt;Michael Dell&lt;/a&gt;, Chairman and CEO of &lt;a href=&quot;https://www.dell.com/&quot;&gt;Dell Technologies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/jack&quot;&gt;Jack Dorsey&lt;/a&gt;, Block Head and Chairman of &lt;a href=&quot;https://block.xyz/&quot;&gt;Block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/eastdakota&quot;&gt;Matthew Prince&lt;/a&gt;, CEO of &lt;a href=&quot;https://www.cloudflare.com/&quot;&gt;Cloudflare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/brendaniribe&quot;&gt;Brendan Iribe&lt;/a&gt;, Cofounder of &lt;a href=&quot;https://www.sesame.com/&quot;&gt;Sesame&lt;/a&gt; and Oculus&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/jasonfried&quot;&gt;Jason Fried&lt;/a&gt;, CEO of &lt;a href=&quot;https://37signals.com/&quot;&gt;37signals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/drewhouston&quot;&gt;Drew Houston&lt;/a&gt;, cofounder and co-CEO of &lt;a href=&quot;https://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/steipete&quot;&gt;Peter Steinberger&lt;/a&gt;, creator of &lt;a href=&quot;https://openclaw.ai/&quot;&gt;OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/brian_armstrong&quot;&gt;Brian Armstrong&lt;/a&gt;, CEO of &lt;a href=&quot;https://www.coinbase.com/&quot;&gt;Coinbase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/xdanger&quot;&gt;Yunjie Dai&lt;/a&gt;, cofounder of &lt;a href=&quot;https://www.taptap.io/&quot;&gt;TapTap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DHH himself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And these people are each contributing $100,000 a year for three years:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/ryanrhughes&quot;&gt;Ryan R. Hughes&lt;/a&gt;, partner at &lt;a href=&quot;https://heyoodle.com/&quot;&gt;Oodle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/dxhuang&quot;&gt;Ed Huang&lt;/a&gt;, cofounder and CTO of &lt;a href=&quot;https://www.pingcap.com/&quot;&gt;PingCAP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/atreccani/&quot;&gt;Adrien Treccani&lt;/a&gt;, founder of &lt;a href=&quot;https://ripple.com/products/custody/&quot;&gt;Metaco&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/mschoening&quot;&gt;Max Schoening&lt;/a&gt;, Head of Product at &lt;a href=&quot;https://www.notion.com/&quot;&gt;Notion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And these corporations are each contributing $100,000 a year for three years:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://37signals.com/&quot;&gt;37signals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.paywithfour.com/&quot;&gt;Four Technologies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And this corporation is contributing $1 million a year for three years:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/&quot;&gt;DigitalOcean&lt;/a&gt; (&lt;a href=&quot;https://omarchy.org/news/2026/09/digitalocean-joins-as-founding-corporate-patron/&quot;&gt;announcement&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These corporations are contributing $1.5 million in tokens to the mission:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.meta.com/superintelligence/&quot;&gt;Meta Superintelligence Labs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And these corporations are each contributing $150,000 in tokens, with renewal by mutual agreement:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.anthropic.com/&quot;&gt;Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fireworks.ai/&quot;&gt;Fireworks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/&quot;&gt;OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openrouter.ai/&quot;&gt;OpenRouter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Over a dozen of the most powerful executives in tech looked at a man who wrote that a British march calling for the deportation of non-white citizens was &amp;quot;heartwarming,&amp;quot; and decided he was the person they wanted to hand a multimillion-dollar foundation to.&lt;/p&gt;
&lt;h2 id=&quot;omarchy&#39;s-patrons&quot; tabindex=&quot;-1&quot;&gt;Omarchy&#39;s Patrons&lt;/h2&gt;
&lt;p&gt;Because 18 million dollars isn&#39;t enough for some people, below the named executives and corporate sponsors sits a much longer list of supporters. Omarchy&#39;s open &lt;a href=&quot;https://omarchy.org/patrons/&quot;&gt;patron program&lt;/a&gt;, where &amp;quot;each [contributes] as they see fit&amp;quot; in exchange for a badge on the site. As of writing, that page lists several hundred backers, the vast majority of them ordinary developers and small consultancies. A few names stuck out to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://axelfontaine.com/&quot;&gt;Axel Fontaine&lt;/a&gt; is the creator of &lt;a href=&quot;https://www.red-gate.com/blog/the-next-chapter-of-flyway/&quot;&gt;Flyway&lt;/a&gt;, the widely used database migration tool he sold to Redgate in 2019. He&#39;s &lt;a href=&quot;https://github.com/basecamp/omarchy/pull/6231&quot;&gt;also submitted code to the Omarchy repo&lt;/a&gt;, which makes him both a funder and a hands-on contributor.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marc.io/&quot;&gt;Marc Köhlbrugge&lt;/a&gt; is the founder of &lt;a href=&quot;https://wip.co/&quot;&gt;WIP&lt;/a&gt; and &lt;a href=&quot;https://betalist.com/&quot;&gt;BetaList&lt;/a&gt;, fixtures of the indie-hacker/bootstrapper scene that Omarchy&#39;s bullshit ricing aesthetic is clearly courting.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://servicestack.net/&quot;&gt;ServiceStack&lt;/a&gt; is an established .NET web-services framework vendor, one of the patrons backing the project as a company rather than an individual.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tamentis.com/&quot;&gt;Bertrand Janin&lt;/a&gt; is a longtime open-source developer (ex-Ramp, ex-Truveris) running his own small shop, Atelier Janin.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pagecord.com/&quot;&gt;Pagecord&lt;/a&gt; is a hosted blogging platform I&#39;ve &lt;a href=&quot;http://plaintext.brennan.day/indieweb-ethos-and-pagecord/&quot;&gt;written about before&lt;/a&gt;, where I documented how creator Olly fed a user&#39;s 26-year blog into an LLM without consent, then shipped the outputted script to production without reading it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vincentritter.com/&quot;&gt;Vincent Ritter&lt;/a&gt;, founder of Tinylytics and Scribbles, is a repeat presence in IndieWeb/micro.blog drama. In January 2025, &lt;a href=&quot;https://social.lol/@neatnik/116919420230729975&quot;&gt;Adam Newbold catalogued a pattern of bigoted posting&lt;/a&gt;: complaining about being &lt;a href=&quot;https://danielpunkass.micro.blog/2025/01/23/mantons-enough-responds-to-the.html&quot;&gt;&amp;quot;offended by pronouns&amp;quot;&lt;/a&gt;, being disappointed by more inclusive Apple emojis, disparaging &amp;quot;foreigners&amp;quot; who drive for Uber and play &amp;quot;foul rap music,&amp;quot; and praising Elon Musk the day after he performed two Nazi salutes on camera. Ritter&#39;s original posts making these remarks have since been deleted, &lt;a href=&quot;https://json.blog/2025/01/22/compassion-when-i-cannot-offer.html&quot;&gt;Jason Becker notes as much&lt;/a&gt;. Manton Reece, of micro.blog, publicly defends him.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;9538-7874 Quebec inc.&lt;/strong&gt; is one of at least a couple of numbered, unnamed Canadian corporations on the list. Bizarre shell companies with no public identity attached to them at all. I&#39;m currently unsure about these.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most of these several hundred names are unremarkable, and that&#39;s on purpose. A grassroots-looking patronage tier can launder small supporters and known industry names alongside the big-hitting marquee donors.&lt;/p&gt;
&lt;h2 id=&quot;omarchy&#39;s-team&quot; tabindex=&quot;-1&quot;&gt;Omarchy&#39;s Team&lt;/h2&gt;
&lt;p&gt;The people working directly on Omarchy are listed on the project&#39;s &lt;a href=&quot;https://omarchy.org/teams/&quot;&gt;Teams page&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Core&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://dhh.dk/&quot;&gt;DHH&lt;/a&gt; (USA/Denmark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/ryanrhughes&quot;&gt;Ryan R. Hughes&lt;/a&gt; (USA)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/tobi&quot;&gt;Tobi Lütke&lt;/a&gt; (Canada)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/iamdothash&quot;&gt;Bjarne Øverli&lt;/a&gt; (Norway)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/HANCORE-linux&quot;&gt;HANCORE&lt;/a&gt; (Germany)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/SpencerGBull&quot;&gt;Spencer Bull&lt;/a&gt; (USA)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/kwilczynski&quot;&gt;Krzysztof Wilczyński&lt;/a&gt; (Japan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/outfoxxedd&quot;&gt;outfoxxed&lt;/a&gt; (USA)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/acrogenesis&quot;&gt;Adrian Rangel&lt;/a&gt; (Mexico)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/mdisec&quot;&gt;Mehmet İnce&lt;/a&gt; (UK/Türkiye)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/meltonaerik&quot;&gt;Erik Melton&lt;/a&gt; (Norway)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/Sayem314&quot;&gt;Sayem Chowdhury&lt;/a&gt; (Bangladesh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/bastidotnet&quot;&gt;Sebastian Stange&lt;/a&gt; (Germany)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Design&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/BarisGirismen&quot;&gt;Barış Girişmen&lt;/a&gt; (Türkiye)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/hicsfh&quot;&gt;Christoffer Hallas&lt;/a&gt; (USA)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/captainscorch&quot;&gt;Daniel Schmier&lt;/a&gt; (Germany)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/avillagran&quot;&gt;Andrés Villagrán&lt;/a&gt; (Chile)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/SirJul1337&quot;&gt;Niklas Jul&lt;/a&gt; (Denmark)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Rangers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/SandorhaziM&quot;&gt;Mihai&lt;/a&gt; (Romania)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/Mateo_VX&quot;&gt;Mateo Vaz&lt;/a&gt; (Uruguay)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/niraletter&quot;&gt;Nira&lt;/a&gt; (Nepal)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I should also mention that the same infrastructure companies bankrolling Omarchy and Ladybird are also the backbone of the ongoing violence of U.S. deportations. This includes &lt;a href=&quot;https://www.immigrantdefenseproject.org/wp-content/uploads/How-Amazon-Powers-ICEs-Deportation-Machine.pdf&quot;&gt;Amazon&#39;s AWS contracts powering ICE&lt;/a&gt;, &lt;a href=&quot;https://mijente.net/wp-content/uploads/2018/10/WHO%E2%80%99S-BEHIND-ICE_-The-Tech-and-Data-Companies-Fueling-Deportations-_v1.pdf&quot;&gt;Palantir building ICE&#39;s case-management system&lt;/a&gt;, and the use of &lt;a href=&quot;https://www.nytimes.com/2025/10/16/us/salesforce-benioff-ice.html&quot;&gt;Salesforce&#39;s tools&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;%22apolitical%22&quot; tabindex=&quot;-1&quot;&gt;&amp;quot;Apolitical&amp;quot;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://ladybird.org/&quot;&gt;Andreas Kling&lt;/a&gt;, founder of the Ladybird browser project (itself an Omacom-adjacent beneficiary, &lt;a href=&quot;https://ladybird.org/#sponsors&quot;&gt;sponsored by Cloudflare, FUTO, Shopify, 37signals, Proton, and JetBrains&lt;/a&gt;), built his project&#39;s identity around refusing a documentation patch that would have made SerenityOS&#39;s manuals gender-neutral, on the grounds that gender-neutral language was &amp;quot;personal politics&amp;quot; that didn&#39;t belong in a technical project. Blogger &lt;a href=&quot;https://kvibber.com/reviews/software/ladybird-inclusivity/&quot;&gt;Kelson Vibber&lt;/a&gt; wrote how that became Ladybird&#39;s official contributing guidelines, which now bar &amp;quot;discussions on societal politics&amp;quot;--a policy treating the mere existence of trans contributors as more &amp;quot;political&amp;quot; than excluding them. In 2026, Kling &lt;a href=&quot;https://x.com/awesomekling/status/1966456391146606806&quot;&gt;posted in support of Charlie Kirk&lt;/a&gt; after Kirk&#39;s assassination and, per discussion on &lt;a href=&quot;https://lobste.rs/s/oaxcep/cloudflare_is_sponsoring_ladybird&quot;&gt;Lobsters&lt;/a&gt;, bristled at being called a fascist for it--a reaction hard to square with &amp;quot;apolitical,&amp;quot; since Kirk was a movement figure who, per his own &lt;a href=&quot;https://en.wikipedia.org/wiki/Charlie_Kirk&quot;&gt;Wikipedia entry&lt;/a&gt;, promoted the &amp;quot;white genocide&amp;quot; conspiracy theory and criticized the Civil Rights Act.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.vaxry.net/articles/2024-fdo-and-redhat&quot;&gt;Vaxry&lt;/a&gt;, the developer behind the Hyprland Wayland compositor (another Omacom-funded project), was banned in 2024 by Freedesktop.org&#39;s Code of Conduct team over a pattern of the Hyprland Discord enabling harassment of trans community members, including an incident where moderators changed a trans user&#39;s display name to strip their pronouns. In Vaxry&#39;s own retelling on the &lt;em&gt;Tech Over Tea&lt;/em&gt; podcast, &lt;a href=&quot;https://thelibre.news/hyprland-banned-from-freedesktop-why/&quot;&gt;recounted at LibreNews&lt;/a&gt;, the moderator swapped &amp;quot;they/them&amp;quot; for &amp;quot;who/cares,&amp;quot; and the user wasn&#39;t allowed to change it back. Vaxry&#39;s own &lt;a href=&quot;https://blog.vaxry.net/articles/2024-fdo-and-redhat&quot;&gt;public response&lt;/a&gt; framed the ban as ideological overreach by &amp;quot;social justice warriors,&amp;quot; while Freedesktop describes over a year of private attempts to get him to address the toxicity before going public. Hyprland&#39;s contributing guidelines now &lt;a href=&quot;https://web.archive.org/web/20260330133306/https://blog.vaxry.net/resource/articleFDO/RHMails.pdf&quot;&gt;ban &amp;quot;political&amp;quot; speech too&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The funding relationship has only deepened since. The &lt;a href=&quot;https://www.techtimes.com/articles/326089/20260831/omacom-foundation-hits-126m-1password-37signals-fund-linux-patron-model.htm&quot;&gt;Omacom Foundation announced an exclusive, three-year sponsorship of Hyprland&lt;/a&gt;, with an option to extend for two more years. Vaxry&#39;s prior funding of individual donations and a €5/month Hyprperks subscription tier is being discontinued in favour of this single exclusive arrangement, meaning the developer freedesktop.org banned for enabling transphobic harassment is now bankrolled solely by DHH.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/X11Libre/xserver/commit/4839966900d948c5793064b5dccbdb3fd35f558b&quot;&gt;Enrico &amp;quot;metux&amp;quot; Weigelt&lt;/a&gt; forked the deprecated Xorg server into Xlibre as a rebellion against a &amp;quot;RedHat DEI&amp;quot; conspiracy he believes exists. The founding document of the project was a rant about big-tech diversity initiatives, and its code of conduct is a text file that just says &amp;quot;404.&amp;quot; &lt;a href=&quot;https://web.archive.org/web/20251022160356/https://futo.org/about/futo-statement-on-opensource/&quot;&gt;FUTO&lt;/a&gt; is a funder of Immich and is run by Eron Wolf, a friend and platformer of Curtis Yarvin, the &amp;quot;dark enlightenment&amp;quot; writer whose ideas about dismantling democracy have now found purchase in the current U.S. administration. &lt;a href=&quot;https://samambreen.wordpress.com/2019/08/16/an-open-letter-to-brendan-eich/&quot;&gt;Brendan Eich&lt;/a&gt;, Mozilla&#39;s co-founder and now Brave&#39;s CEO, used Brave&#39;s infrastructure to give payments to Kiwi Farms, a forum whose harassment campaigns &lt;a href=&quot;https://www.motherjones.com/politics/2023/02/kiwi-farms-die-drop-cloudflare-chandler-trolls/&quot;&gt;have been linked to multiple suicides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We witness the same pattern over and over. A tech project is declared &amp;quot;apolitical,&amp;quot; and defines any accommodation of marginalized contributors as a political act, and keeps the actual politics of the maintainers--nostalgia for ethnically white homogeneous cities and hostility to gender-neutral pronouns--off the table entirely. Because that&#39;s just, you know, how they feel. &amp;quot;Apolitical&amp;quot; has never meant a lack of politics. It&#39;s meant politics that current power doesn&#39;t have to defend.&lt;/p&gt;
&lt;h2 id=&quot;the-throughline&quot; tabindex=&quot;-1&quot;&gt;The Throughline&lt;/h2&gt;
&lt;p&gt;We have been watching the fragile fury of white masculinity and hate metastasize and fester over the years, from Gamergate&#39;s harassment campaigns through years of anti-SJW cringe compilation content mills, the marking of Antifa as the enemy, the tantrum-throwing #AllLivesMatter movement, and the manufactured panic over DEI and &amp;quot;wokeism.&amp;quot;&lt;/p&gt;
&lt;p&gt;You are not living in the neoliberal-Obama era where basic compassion and empathy are the default anymore. And you haven&#39;t been for a long time. Despite their cries about censorship and deplatforming, and despite their persecution fetish, these people are not on the fringe. They have board seats and sponsorships and multimillion-dollar foundations.&lt;/p&gt;
&lt;p&gt;It is no coincidence this is occuring as companies and brands &lt;a href=&quot;https://www.theglobeandmail.com/investing/markets/stocks/UL/pressreleases/31643497/why-big-brands-are-quietly-returning-to-x/&quot;&gt;return to X&lt;/a&gt;, as the United States &lt;a href=&quot;https://www.americanprogress.org/article/the-trump-administration-is-interfering-in-the-2026-midterm-elections-to-entrench-the-imperial-presidency/&quot;&gt;votes at a Midterm election being interfered with by a sitting president&lt;/a&gt;, as conservatives &lt;a href=&quot;https://www.lemonde.fr/en/opinion/article/2026/05/06/sweden-s-right-is-now-normalizing-the-far-right-party-born-from-the-fascist-movement_6753170_23.html&quot;&gt;normalize the far-right in Europe politics&lt;/a&gt; and &lt;a href=&quot;https://www.errc.org/news/the-normalisation-of-neo-fascism:-anti-roma-racism-at-the-heart-of-europes-far-right&quot;&gt;culture&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you want a more thorough and longer list of people, companies, and products, then I recommend reading up on &lt;a href=&quot;https://wiki.xxiivv.com/site/devine_lu_linvega.html&quot;&gt;Devine Lu Linvega&#39;s&lt;/a&gt; &lt;a href=&quot;https://git.sr.ht/~rabbits/fashware&quot;&gt;Fashware&lt;/a&gt; list on Sourcehut, as well as Drew DeVault&#39;s list of &lt;a href=&quot;https://drewdevault.com/weird-guys/&quot;&gt;Weird Little Guys&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You may be in a position where the specific harms and rhetoric being spewed are not aimed at you, and you may have been coaxed into viewing what I&#39;m saying here as overreaction, or as a rabid, self-righteous screed. Millions of dollars have been spent to ensure this, and it could not be further from the truth.&lt;/p&gt;
&lt;p&gt;We cannot afford to continue to shrug off the presence of these people and their projects in open source. A united stand must be taken.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Speak up on this&lt;/strong&gt;. Boycott aggressively. Let people know you don&#39;t support Cloudflare, Shopify, 37signals, Dell, 1Password, Framework, Block, Coinbase, Dropbox, TapTap, and any other company enabling the spread of dangerous and harmful political ideologies that will continue to result in further violence and death. And let people know the harm these companies are actively doing.&lt;/p&gt;
&lt;p&gt;We cannot allow this to continue; we must be far more proactive and assertive in our fight against the normalization of fascism and the far right. We must be willing to sacrifice ease and convenience, and we must be willing to sever all connections with these entities.&lt;/p&gt;
&lt;p&gt;It is our only way forward.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>100 Questions for Webmasters</title>
		<link href="http://plaintext.brennan.day/100-questions-for-webmasters/"/>
		<updated>2026-09-01T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/100-questions-for-webmasters/</id>
		<content type="html">&lt;p&gt;I really miss chain-letter-style questionnaires, which I often participated in on sites like deviantART and Nexopia many years ago.&lt;/p&gt;
&lt;p&gt;There&#39;s been one floating around &lt;a href=&quot;https://mouseling.net/100webmaster&quot;&gt;specifically designed for webmasters&lt;/a&gt; created by &lt;a href=&quot;https://mouseling.net/&quot;&gt;MOUSEcky&lt;/a&gt;! Initially, I wasn&#39;t going to answer these questions, since I feel I&#39;ve covered a lot of them already over the course of my writing, in addition to my &lt;a href=&quot;https://zacharykai.net/notes/pb/brennan&quot;&gt;interview with Zacharay Kai&lt;/a&gt; and podcast appearance on &lt;a href=&quot;https://web-weaving.jamesg.blog/8&quot;&gt;Wonders of Webweaving&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But then I saw that &lt;a href=&quot;https://shens.world/about/100webmaster#other&quot;&gt;Shen has been keeping an impressive record&lt;/a&gt; of webmasters answering, and I couldn&#39;t help myself but end Blaugust 2026 with the longest post of the month. So here are 100 answers, written in one sitting, in order and with no skipping.&lt;/p&gt;
&lt;p&gt;The more questions I answer, the more I think I might come back and give more detailed responses later. Some questions I feel warrant their own blog posts!&lt;/p&gt;
&lt;h2 id=&quot;the-100-questions&quot; tabindex=&quot;-1&quot;&gt;The 100 Questions&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Introduce yourself.&lt;/strong&gt; Hi! I&#39;m Brennan Kenneth Brown (he/they). I&#39;m Queer, Red River Métis, 30, born in Winnipeg, based in Calgary/Mohkínstsis (Treaty 7). I&#39;m an independent author and web developer, founder of Berry House, and operator of Folk Zone and fanfiction.lol, and the founder of Write Club. My &lt;a href=&quot;https://brennan.day/about&quot;&gt;/about&lt;/a&gt; page has more details.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How long have you been making websites?&lt;/strong&gt; Quite a long time, I&#39;d say. I&#39;ve been tinkering with HTML and CSS since I was around 13 years old tweaking themes on Tumblr. The first full-fledged websites I created were with &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; with &lt;a href=&quot;https://github.com/collections/github-pages-examples&quot;&gt;GitHub pages&lt;/a&gt;. What survives includes a &lt;a href=&quot;https://thegliss.github.io/&quot;&gt;music review site&lt;/a&gt;, &lt;a href=&quot;https://brenjour.github.io/&quot;&gt;my first attempt at a blog&lt;/a&gt;. So, at least ten years.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;And what got you into the hobby?&lt;/strong&gt; Blogging and writing! I remember stumbling upon the &lt;a href=&quot;https://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt; language for the first time and was amazed at how human readable it was, which led me to the static site generator Jekyll--because all you really had to do was fork a theme and then write Markdown posts and the rest was taken care of with a few commands.  I was already using &lt;a href=&quot;https://crunchbang.org/&quot;&gt;CrunchBang #!&lt;/a&gt; Linux on my desktop computer at the time because my computer wouldn&#39;t properly install Windows (which turned out to be a blessing in disguise), and so I was able to follow the instructions and install Ruby, Gems, and Jekyll.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What kind of website are you most interested in?&lt;/strong&gt; I love websites made by people to share their interests or life. There are countless I could refer to. Just take a gander at &lt;a href=&quot;https://neocities.org/browse&quot;&gt;Neocities&lt;/a&gt; for a couple minutes and you&#39;ll quickly see what I mean.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What&#39;s your workflow?&lt;/strong&gt; I&#39;ve written a blog post about &lt;a href=&quot;http://plaintext.brennan.day/my-blogging-workflow-a-routine-for-nearly-a-post-a-day-for-4-months-straight/&quot;&gt;my blogging workflow&lt;/a&gt;, but my web development workflow looks different. I usually get the idea for a particular website or site design and go over the basics--layout, fonts, semantics, accessibility--and then I just start with the index.html (or index.md). Sometimes I start with a SSG framework or theme/template. Other times, I prototype what I want the homepage to look like by itself and then work at the modular layouts, partials, etc. from that.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Please link to your biggest inspirations.&lt;/strong&gt; &lt;a href=&quot;https://busterbenson.com/&quot;&gt;Buster Benson&lt;/a&gt; is probably my biggest inspiration out of everything. I only have my writing habit thanks to &lt;a href=&quot;https://750words.com/&quot;&gt;750words.com&lt;/a&gt;, but I also found his birthday posts and &lt;a href=&quot;https://github.com/busterbenson/public/blob/master/book-of-beliefs.md&quot;&gt;Codex Vitae&lt;/a&gt; really inspiring, especially when I was a lot younger and looking for role models.  For the web specifically, I&#39;d say &lt;a href=&quot;https://omg.lol/&quot;&gt;omg.lol&lt;/a&gt;, the &lt;a href=&quot;https://indieweb.org/&quot;&gt;IndieWeb&lt;/a&gt; community, &lt;a href=&quot;https://melonking.net/&quot;&gt;melonking.net&lt;/a&gt;, and the dozens of friends on my &lt;a href=&quot;https://brennan.day/blogroll/&quot;&gt;/blogroll&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What&#39;s your favourite part about making websites?&lt;/strong&gt; When the design finally gets to a place that feels cohesive and presentable. I always get anxiety at the start when it looks off and so far from what I envisioned in my head, and I often feel as though it&#39;ll never get to a point I&#39;ll be happy with it. But then it does! That&#39;s a great feeling.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;And the thing you struggle with the most?&lt;/strong&gt; Oh my God, everything? Because I work with static site generators, I really struggle with backends and databases. I also often struggle with proper RSS formatting, Nunjucks templating, JSON data, logic in JavaScript, keeping security up-to-date, basic syntax errors... Like really, everything. It is a miracle any of my websites function and work at all.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you keep the same layout on all of your pages?&lt;/strong&gt; Yes, I do. And I also want to add you certainly don&#39;t need to yourself! But one of the biggest draws to SSGs for me was that you can just write the header and footer and page layout once and then never have to worry about it again instead of copy-pasting it for each page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How confident are you with CSS?&lt;/strong&gt; I&#39;d like to think I&#39;m pretty good with it at this point after years of trial and error. &lt;a href=&quot;https://brennan.day/&quot;&gt;Brennan.day&#39;s&lt;/a&gt; CSS is custom and uses no framework. And I enjoy learning new techniques that are added to vanilla CSS, like container queries, :user-invalid, forced-colors mode, @view-transition.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you know how to correctly use &lt;code&gt;&amp;lt;dl&amp;gt;&lt;/code&gt;?&lt;/strong&gt; Yes! My &lt;a href=&quot;https://brennan.day/style/&quot;&gt;/style guide&lt;/a&gt; demonstrates definition lists as part of the markdown reference. I love the specific, rarely-used HTML tags.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What is your favourite HTML element?&lt;/strong&gt; I display quite a few of them in &lt;a href=&quot;https://brennan.day/html-day-2026/&quot;&gt;my HTML Day 2026 project&lt;/a&gt;. &lt;code&gt;&amp;lt;ruby&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;abbr&amp;gt;&lt;/code&gt; to explain acronyms, and &lt;code&gt;&amp;lt;mark&amp;gt;&lt;/code&gt; for highlighting. Things I don&#39;t use enough myself.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If you&#39;re making a new web page from scratch, what is the first thing you do?&lt;/strong&gt; If I&#39;m doing it FULLY from scratch, then I&#39;d grab a template with good practices, &lt;a href=&quot;https://www.freecodecamp.org/news/html-starter-template-a-basic-html5-boilerplate-for-index-html/&quot;&gt;something like this&lt;/a&gt; just to give myself a good starting point. Then I start writing. I&#39;ll typically write in Markdown then &lt;a href=&quot;https://markdowntohtml.com/&quot;&gt;use an online converter&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you know JavaScript?&lt;/strong&gt; Yes, I&#39;d say I&#39;m proficient with it. Both vanilla JS and TypeScript. I also use NodeJS and EJS as my backend language of choice. But JavaScript should always be optional for a website&#39;s front-end, not mandatory for end-users.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How about PHP?&lt;/strong&gt; No, not really. But I want to! Adam of &lt;a href=&quot;https://omg.lol/&quot;&gt;omg.lol&lt;/a&gt; has done some absolutely amazing and fascinating work with PHP and has really showed me that it&#39;s worth learning, especially for the upcoming &lt;a href=&quot;https://www.neato.pub/&quot;&gt;Neato Pub&lt;/a&gt;!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Does your website have a theme that you stick to?&lt;/strong&gt; Yes, I use the retro groove colour scheme &lt;a href=&quot;https://github.com/morhetz/gruvbox&quot;&gt;Gruvbox&lt;/a&gt; for the colour palette. I also am heavily inspired by the old-school, classic two-column blog layouts you&#39;d see on WordPress and Blogger many years ago.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are you more focused on content or design?&lt;/strong&gt; I&#39;m always primarily focused on accessible content. I wish I was better at interesting web design. Take a look at the &lt;a href=&quot;https://tinyawards.net/vote/&quot;&gt;2026 finalists for the Tiny Web Awards&lt;/a&gt;, they&#39;re all so incredible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you own a domain name?&lt;/strong&gt; I own way too many domain names. On Porkbun I have: &lt;a href=&quot;https://brennan.page/&quot;&gt;brennan.page&lt;/a&gt;, &lt;a href=&quot;https://brennan.cafe/&quot;&gt;brennan.cafe&lt;/a&gt;, &lt;a href=&quot;https://fireweed.school/&quot;&gt;fireweed.school&lt;/a&gt;, &lt;a href=&quot;https://brennan.jp.net/&quot;&gt;brennan.jp.net&lt;/a&gt;, &lt;a href=&quot;https://meddler.fyi/&quot;&gt;meddler.fyi&lt;/a&gt;, &lt;a href=&quot;https://fanfiction.lol/&quot;&gt;fanfiction.lol&lt;/a&gt;, &lt;a href=&quot;https://fanfic.lol/&quot;&gt;fanfic.lol&lt;/a&gt;, &lt;a href=&quot;https://theforum.love/&quot;&gt;theforum.love&lt;/a&gt;, &lt;a href=&quot;https://brennan.casa/&quot;&gt;brennan.casa&lt;/a&gt;, &lt;a href=&quot;https://brennan.click/&quot;&gt;brennan.click&lt;/a&gt;, &lt;a href=&quot;https://fanfiction.forum/&quot;&gt;fanfiction.forum&lt;/a&gt;, &lt;a href=&quot;https://folkzone.org/&quot;&gt;folkzone.org&lt;/a&gt;, &lt;a href=&quot;https://folk.zone/&quot;&gt;folk.zone&lt;/a&gt;, &lt;a href=&quot;https://tilde.land/&quot;&gt;tilde.land&lt;/a&gt;, &lt;a href=&quot;https://craft.wang/&quot;&gt;craft.wang&lt;/a&gt;, &lt;a href=&quot;https://blogstudy.org/&quot;&gt;blogstudy.org&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/&quot;&gt;brennan.day&lt;/a&gt;. I have even more on NameCheap. Some are in use, some are still just mere ideas.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What do you think of nostalgia-focused or &amp;quot;retro&amp;quot; websites?&lt;/strong&gt; I love them! It&#39;s so cool to see how people use the design languages of the past in their websites. Simone.computer keeps a wonderful selection of &lt;a href=&quot;https://simone.computer/#/webdesktops&quot;&gt;websites that are designed to look like desktops&lt;/a&gt; which often are nostalgic in nature.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Is your HTML valid? Do you even check?&lt;/strong&gt; Good question! I check when I first make a website, but I don&#39;t do routine checks on this. According to the &lt;a href=&quot;https://validator.w3.org/nu/?doc=https%3A%2F%2Fbrennan.day%2F&quot;&gt;W3 validator&lt;/a&gt;, Brennan.day has &lt;a href=&quot;https://cdn.some.pics/brennan/6a957fe32afb7.png&quot;&gt;two errors and three warnings&lt;/a&gt;. Good enough for me, right now.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What are your opinion on buttons and banners?&lt;/strong&gt; I love them! There&#39;s a dedicated spot on my sidebar for them, after all. And I have &lt;a href=&quot;https://brennan.day/assets/images/brennan-day-alt.gif&quot;&gt;my own 88x31 badge&lt;/a&gt;, free for anyone to grab or hotlink!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What do you think of button walls in particular?&lt;/strong&gt; I&#39;ll once again link to Shen with his wonderful page, &lt;a href=&quot;https://shens.world/campaigns/go-click-on-a-wall&quot;&gt;go click on a wall!&lt;/a&gt; I also love these.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If you started over again, would you make something similar or completely different?&lt;/strong&gt; I have started over many times already, and I find myself gravitating towards the same inclinations no matter how I try to renew or reinvent myself. I think this is most evident in my timeline of poetry blogs: &lt;a href=&quot;https://www.deviantart.com/bk-blayze&quot;&gt;b.k. blayze&lt;/a&gt;, &lt;a href=&quot;https://hyacinthboy.wordpress.com/&quot;&gt;the Hyacinth Boy&lt;/a&gt;, &lt;a href=&quot;https://web.archive.org/web/20180722212013/http://pinedraft.com/&quot;&gt;the Pine Draft&lt;/a&gt;, and &lt;a href=&quot;https://warsawmountain.com/&quot;&gt;Warsaw Mountain&lt;/a&gt;, and finally &lt;a href=&quot;https://bkpoetry.com/&quot;&gt;bkpoetry.com&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are you envious of other people&#39;s websites?&lt;/strong&gt; I would not use the word envy, but I am in awe of people&#39;s design talent and skills. There are so many sites I visit that have a user experience that just sparks joy!  My philosophy has always been &amp;quot;community over competition.&amp;quot; Other people&#39;s good sites always make the neighbourhood better.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What text editor do you use?&lt;/strong&gt; Primarily, I use &lt;a href=&quot;https://www.sublimetext.com/&quot;&gt;Sublime Text 4&lt;/a&gt;. I also use &lt;a href=&quot;https://bear.app/&quot;&gt;Bear&lt;/a&gt;, &lt;a href=&quot;https://vscodium.com/&quot;&gt;VSCodium&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/TextEdit&quot;&gt;TextEdit&lt;/a&gt;, &lt;a href=&quot;https://www.geany.org/&quot;&gt;Geany&lt;/a&gt;, and I&#39;ve been meaning to get into &lt;a href=&quot;https://gram-editor.com/&quot;&gt;Gram&lt;/a&gt; and &lt;a href=&quot;https://ia.net/writer&quot;&gt;IA Writer&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Why do you use that one?&lt;/strong&gt; I love simplicity, speed, and a proactive lack of genAI features. All of which have become increasingly difficult to find in an IDE and word processor. I was a huge fan of &lt;a href=&quot;https://atom-editor.cc/&quot;&gt;Atom&lt;/a&gt; (RIP) when it first came out many years ago, as it felt really aligned with Jekyll. Oh, how things change.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you host your image files on your web server, or on another host?&lt;/strong&gt; Most assets live in the site&#39;s &lt;a href=&quot;https://gitlab.com/brennankbrown/brennan.day/-/tree/main/src/assets/images/blog?ref_type=heads&quot;&gt;codebase repo&lt;/a&gt;, which is becoming increasingly unsustainable. I also use &lt;a href=&quot;https://some.pics/&quot;&gt;some.pics&lt;/a&gt; (an omg.lol service) for some images as well.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What&#39;s your opinion on the Neocities vs. Nekoweb debate?&lt;/strong&gt; I wasn&#39;t aware there was a debate! They both are wonderful platforms and I&#39;m thankful both exist. We need more accessible ways for people to get into webdev, not less.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How much server space would you estimate your main website takes up?&lt;/strong&gt; The folder of my codebase is just over 1GB including &lt;code&gt;node_modules&lt;/code&gt;, and when I build, the generated &lt;code&gt;_site&lt;/code&gt; is 437MB (mostly images). Despite these rather large sizes, I&#39;m in the &lt;a href=&quot;https://1mb.club/#:~:text=brennan.day&quot;&gt;1MB Club&lt;/a&gt;! There are +400 pages generated in about a 4 second build from a dry run, and my site produces &lt;a href=&quot;https://brennan.day/green/&quot;&gt;0.07g of CO₂ per visit&lt;/a&gt; which is cleaner than 94% of pages tested.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you keep local backups of your files?&lt;/strong&gt; Of course! My codebase lives on my local computers as a git repository, and on a redundant USB stick. Build for portability and back up constantly, or accept your work dies with the platform.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you prefer simple or highly visual websites?&lt;/strong&gt; I prefer visually-interesting websites that manage to remain accessible and readable, which is a very hard balance to strike.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you stick to certain colours?&lt;/strong&gt; The only colours I stick to are all of them. I love rainbows and being colourful, using all colours as much as I can. The human eye can only see so many shades, I want to take advantage of that as much as I can!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Have you ever thought about quitting?&lt;/strong&gt; Quit be a webmaster? If I&#39;m being candid, yes. All the time. There&#39;s real responsibility to having a computer in my home that runs a website that has hundreds of users, and I take that seriously, and it&#39;s stressful sometimes. But the human spirit is indomitable, and I will continue trying to improve the web and contribute in the little ways I can as long as I can do so!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you have many webmaster friends, or is it a solitary hobby?&lt;/strong&gt; Solitary by temperament, social by effort. &lt;a href=&quot;https://girlonthemoon.xyz/&quot;&gt;Melo&lt;/a&gt; and &lt;a href=&quot;https://agnes.love/&quot;&gt;Agnes&lt;/a&gt; are two of my closest webmaster friends I&#39;ve made since I started, and both are very inspiring to me. I&#39;m also in over a dozen webrings and I&#39;m an organiser in &lt;a href=&quot;https://webwriterscollective.com/&quot;&gt;the Web Writers&#39; Collective&lt;/a&gt;, but it all takes real work against my introversion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do people in your real life know about your website?&lt;/strong&gt; I&#39;d say so. I shamelessly promoted myself heavily on Instagram and Discord and whatnot before I deleted all those accounts. I don&#39;t really have anybody IRL interact with my site, but everyone I know does indeed know.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you update your website very often?&lt;/strong&gt; If you check my &lt;a href=&quot;https://brennan.day/changelog/&quot;&gt;changelog&lt;/a&gt;, I push a commit to this website nearly every day since I started it back in December 2025. There are over 1,400 commits currently.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;And the overall design, do you change that much?&lt;/strong&gt; I would say no. If you look at the &lt;a href=&quot;http://web.archive.org/web/20251228064152/https://brennan.day//&quot;&gt;first archive&lt;/a&gt; of my website back on December 28th, just a couple weeks after I started, it looks largely the same as it does now. I make small tweaks and iterate, but I actually really enjoy the design overall and don&#39;t have an itch to do an overhaul as I typically do.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Is your website more you-focused, hobby-focused, or outside world-focused?&lt;/strong&gt; All of the above? I love everything, and so my personal essays and biography sit next to my writing on cultural criticism, tech ethics, and politics. I don&#39;t stop myself from adding anything on this site, no topic off-limits, no specific niche. It&#39;s very freeing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you do web design professionally?&lt;/strong&gt; Yes, I&#39;m the lead developer and founder of &lt;a href=&quot;https://berryhouse.ca/&quot;&gt;Berry House&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If not, would you like to?&lt;/strong&gt; N/A, since I already do. Writing is also part of my income, through the Medium Partner Program.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you communicate with people by email very much?&lt;/strong&gt; Yes, I find that I&#39;ve been writing more emails this year than any before. I love exchanging letters with people. It&#39;s a wonderful and rather intimate mode of communication. But of course I also love public comments and guestbook signings!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you keep social media outside of your website?&lt;/strong&gt; I deleted Facebook, Messenger, Instagram, WhatsApp, Threads, X, Reddit, and Discord. I still use &lt;a href=&quot;https://social.lol/@brennan&quot;&gt;Mastodon&lt;/a&gt; and &lt;a href=&quot;https://bsky.app/@brennan.day&quot;&gt;Bluesky&lt;/a&gt;. I also use some more niche social media you can find on my &lt;a href=&quot;https://brennan.day/accounts&quot;&gt;/accounts&lt;/a&gt; page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How about instant messengers?&lt;/strong&gt; Signal, plus a handful of IRC networks (Libera, tilde.chat, irc.social.lol).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you listen to music while you work on websites?&lt;/strong&gt; Constantly! Mostly indie folk and singer-songwriter stuff like Sufjan Stevens, Phoebe Bridgers, The Mountain Goats, and Elliott Smith. I also love Midwest emo, post-rock, ambient, and hip-hop. There&#39;s quite a few of my faves on my &lt;a href=&quot;https://brennan.day/canon/&quot;&gt;/canon&lt;/a&gt; page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you keep everything you make on one website, or do you have more than one?&lt;/strong&gt; Despite the fact that I allow myself to publish anything on Brennan.day, I have many websites! (See my answer to question #18.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;On a similar note, do you keep to one topic on your site, or many?&lt;/strong&gt; Many. I find myself focusing on writing craft, the IndieWeb, accessibility, Métis and Indigenous issues, layman science, webdev tutorials, community, disability, genAI ethics, philosophy, music, and whatever else grabs me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you present your real self, or at least try?&lt;/strong&gt; We are always in a state of performance in a social setting, no matter how authentic and honest we attempt to be, on or off the Internet. Sociology aside, I do try to be genuine and as close to myself as I can be on here. It would be far too exhausting to be anything else, really.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Have you ever made a good friend thanks to your website?&lt;/strong&gt; Yes, absolutely! My &lt;a href=&quot;https://brennan.day/blogroll&quot;&gt;/blogroll&lt;/a&gt; has a &amp;quot;Friends!&amp;quot; section of people I have been lucky enough to meet through the IndieWeb.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are you happy with the way HTML and CSS currently work?&lt;/strong&gt; I think my answer is no? It is a little bonkers you have to write a reset.css stylesheet whenever creating a webpage that you want to look the same in any browser, but I suppose that is the price paid for a free and open protocol. I guess HTML/CSS are fine if used responsibly, but the browsers we use and the most popular frameworks are so heavy and bloated. The Internet does not need to be complex or resource-intensive, and I am increasingly appreciative of the &lt;a href=&quot;https://geminiprotocol.net/&quot;&gt;Gemini protocol&lt;/a&gt; because of that.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What are practices that you think people should avoid?&lt;/strong&gt; Many. Dark patterns, invasive analytics, unnecessary JS frameworks, clickbait, SEO-optimized garbage, and AI-generated content passed off as human. Just be honest, try your best. Use your own hands, hearts, and mind.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What about under-utilised practices?&lt;/strong&gt; I don&#39;t know if these are under-utilised, but I&#39;d say RSS/Atom feeds, semantic HTML, webmentions, progressive enhancement, and plain-text/Markdown workflows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you use a lot of semantic HTML? Or are you guilty of generic structure?&lt;/strong&gt; I love semantic HTML. Divs and spans everywhere would confuse me more (and are worse for accessibility). Headers are headers, lists are lists, forms are forms.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you consider different browsers?&lt;/strong&gt; Yes! I check my sites on Firefox, Chromium, Lynx, and on iOS and Android devices. Brennan.day looks a little different depending on your operating system since I use system fonts instead of embedded fonts, but it is at a functional parity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Speaking of, what&#39;s your preferred browser?&lt;/strong&gt; I have been a Firefox user forever. But since their baffling push towards genAI, I have been trying various forks: Palemoon, Iceweasel, Waterfox, but I find myself returning back to FF.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;And what OS are you on?&lt;/strong&gt; macOS Sequoia 15 on a 2025 MacBook Air (M4) daily, and Debian-based Linux (BunsenLabs) on my ThinkPads and desktop.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you have a strong opinion on that, or do you just happen to use it?&lt;/strong&gt; I&#39;ve always loved the stability and brutalist aesthetic of Debian-based distros (though that&#39;s &lt;a href=&quot;http://plaintext.brennan.day/sad-machine/&quot;&gt;now being questioned&lt;/a&gt;), and I use Mac day-to-day for the reasons you always hear: the trackpad, keyboard, screen, integration, devtools, etc. It really does just work, though I still haven&#39;t upgraded to Tahoe because it seems to be getting worse. Maybe Golden Gate will fix things.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are your websites mobile-friendly?&lt;/strong&gt; Yes, very much so. I explicitly design for a responsive experience across devices. See &lt;a href=&quot;http://plaintext.brennan.day/phoneblogging/&quot;&gt;phoneblogging&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What are your thoughts on autoplay?&lt;/strong&gt; I used to love having an autoplaying music playlist on my Tumblr, it gave my blog such a mood. But of course, I recognize now that this is universally a terrible and user-hostile feature. There is never a reason to have something autoplay unless it is the sole purpose of a webpage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What are your thoughts on webrings? Are you in any?&lt;/strong&gt; I love them! I&#39;m in many: Bucketfish, Hotline, Static.Quest, IndieWeb, the a11y Webring, Fediring, XXIIVV, and others. I wrote a whole post about it, &lt;a href=&quot;https://brennan.day/be-my-neighbour/&quot;&gt;Won&#39;t you be my neighbour?&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you have any web shrines?&lt;/strong&gt; Hm, I don&#39;t think so. You could say that my page about &lt;a href=&quot;https://brennan.day/hometown/&quot;&gt;Winnipeg&lt;/a&gt; is a shrine. I should make shrines though, the world needs more of them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are your websites &amp;quot;cliché&amp;quot;, in your opinion?&lt;/strong&gt; I don&#39;t think they&#39;re cliché, but I do think all of my websites are rather boring and use predictable, obvious layouts. But I&#39;m okay with this since it means I can make them accessible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What is your ideal website?&lt;/strong&gt; Honestly? I think Brennan.day is close to that. A durable, useful, human-first archive that serves writers, open-source devs, readers, and small organizations instead of feeds or engagement metrics.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are you an artist? Do you draw or design your own assets?&lt;/strong&gt; I&#39;ve got design tools in my kit (GIMP, Inkscape), I draw a little bit sometimes, and have past lives as a photographer and a musician, but I don&#39;t hand-draw my own site graphics.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What are your favourite resource sites?&lt;/strong&gt; &lt;a href=&quot;https://discourse.32bit.cafe/t/resources-list-for-the-personal-web/49&quot;&gt;32-bit Café&#39;s Personal Web Resource List&lt;/a&gt;, and everything else I list in my &lt;a href=&quot;http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/#further-resources&quot;&gt;WEBMASTER@ Manifesto&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Is there a habit you just can&#39;t get away from no matter how hard you try?&lt;/strong&gt; Self-quantification. I track my steps, sleep, chess puzzles, word counts and a lot more on Beeminder. Also, as you can see, writing as well.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What&#39;s your biggest advice for a new webmaster?&lt;/strong&gt; You are capable of learning what&#39;s needed to be learned, I promise. And the bare minimum is all you need: a computer, a text editor, a way to host. Read the &lt;a href=&quot;http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/&quot;&gt;WEBMASTER@ Manifesto&lt;/a&gt; for my full pep talk!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you keep all your styling in CSS? Or do you hard-code some?&lt;/strong&gt; My CSS is fairly well organized into multiple stylesheets. I really dislike inline CSS because it often violates the DRY principle of writing things out only once and it gets really hard to keep track of.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What do you think of frameset layouts?&lt;/strong&gt; These are really &lt;a href=&quot;https://www.w3.org/TR/html401/present/frames.html&quot;&gt;before my time&lt;/a&gt;. I wouldn&#39;t use them myself, but I think it&#39;s really cool so long as it works for things like screen readers, keyboard navigation, etc.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How about table-based layouts?&lt;/strong&gt; Same as above, although I will add &lt;a href=&quot;https://flownet.com/ron/css-rant.html&quot;&gt;this hilarious rant&lt;/a&gt; found by Shen about how people should be using tables instead of CSS. It&#39;s so hard to wrap my head around!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you subscribe to the ideas of &amp;quot;one-column&amp;quot;, &amp;quot;two-column&amp;quot; and &amp;quot;three-column&amp;quot; layouts?&lt;/strong&gt; Yes, absolutely. My site runs a two-column layout with a sidebar, which goes underneath of the main content in mobile view.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you spend longer on the HTML or the CSS?&lt;/strong&gt; According to &lt;a href=&quot;https://wakatime.com/@brennan&quot;&gt;WakaTime&lt;/a&gt;, I&#39;ve spent twice the amount of time on HTML as I have CSS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Have you ever made a page with no CSS?&lt;/strong&gt; I tried really hard to do so for my &lt;a href=&quot;https://brennan.day/html-day-2026/&quot;&gt;HTML Day 2026 project&lt;/a&gt;. This is the CSS I managed to golf for it:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;    body{max-width:70rem;margin:0 auto;
        background:radial-gradient(circle at center, 
        #c6ffca 0%, #ffffff 60%, #ffffff 100%);
        min-height:100vh;background-attachment:fixed;
        background-size:cover;background-position:center;}
    @media(max-width:768px){
        body{max-width:100%;padding-left:1.5rem;padding-right:1.5rem;}
    }
    pre,code{overflow-x:auto;max-width:100%;word-wrap:break-word;}
    @keyframes marquee {
        0% { transform: translateX(0); }
        100% { transform: translateX(-50%); }
    }
    marquee {
        display: block;
        width: 100%;
        overflow: hidden;
        white-space: nowrap;
    }
    marquee span {
        display: inline-block;
        animation: marquee 30s linear infinite;
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;73&quot;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you ever find yourself making layouts with nothing to put on them?&lt;/strong&gt; Yes, sort of. I build a lot of standalone &lt;a href=&quot;https://brennan.day/indieweb/#my-indieweb-projects&quot;&gt;JAMstack themes&lt;/a&gt; for other people&#39;s future content, separate from my own writing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Would you consider yourself a beginner? Or advanced?&lt;/strong&gt; I guess I&#39;m a bit of a static-site generator/JAMstack specialist with over ten years of experience by now, but I still very much feel like a beginner, or just a hobbyist. There&#39;s still so much for me to learn and understand!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you have a habit of looking at the source code of websites you visit?&lt;/strong&gt; If it&#39;s a website with a design I particularly admire, I usually do. Also if I&#39;m trying to properly cite a webpage I&#39;ll see if the source code has something that&#39;s missing (author name, date published, etc.). And, cheekily, sometimes I check to see if a CMS or theme is being used for fun.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How did YOU learn how to make websites?&lt;/strong&gt; As I mentioned earlier, doing the HTML/CSS for my Tumblr blogs back when I was a teenager. I also have used Lynda (now LinkedIn Learning), Codecademy, and FreeCodeCamp for self-directed learning. But I also studied software development for a year at SAIT in 2019 and then attended a full-stack web bootcamp called EvolveU in 2020.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you ever force elements to do things they&#39;re not supposed to?&lt;/strong&gt; I try not to, but sometimes certain frameworks and platforms require the dreaded &lt;code&gt;!important&lt;/code&gt; CSS keyword flag.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Thoughts on floating elements?&lt;/strong&gt; Should be used sparingly and in the right context, like wrapping text around an inline element, eg. images, icons, or pull-quotes. There&#39;s always an exception to every rule.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;When you&#39;re sizing stuff, what do you use first?&lt;/strong&gt; The right answer here is &lt;a href=&quot;https://www.freecodecamp.org/news/what-is-rem-in-css-rem-unit-font-size-padding-height-and-more/&quot;&gt;&lt;code&gt;rem&lt;/code&gt;&lt;/a&gt;, but I still often use pixels due to force of habit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you have a favourite font?&lt;/strong&gt; I used to really love &lt;a href=&quot;https://github.com/octaviopardo/EBGaramond12&quot;&gt;EB Garamond&lt;/a&gt; but I&#39;ve used it so often that it&#39;s starting to wear on me. Now I&#39;m absolutely loving bold Old Style serifs like &lt;a href=&quot;https://github.com/noirblancrouge/YoungSerif&quot;&gt;Young Serif&lt;/a&gt;. More generally speaking though, I enjoy Geometric Humanist for headings, Old Style for body text, Monospace Code for code -- all system fonts via &lt;a href=&quot;https://modernfontstacks.com/&quot;&gt;Modern Font Stacks&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Would you run a website with another person?&lt;/strong&gt; I would absolutely love to. If anybody reading this is interested in that idea,  please hit me up!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you surf the Web to find new personal websites very often?&lt;/strong&gt; Yes, definitely! I use various directories, blogrolls, aggregators, anything that lets me find new personal websites and people.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you bookmark other people&#39;s websites? How would you feel knowing someone else bookmarked yours?&lt;/strong&gt; I&#39;m so bad at remembering to bookmark in general. It&#39;s a habit I absolutely need to reinforce more. If I don&#39;t note something in a blog post immediately it usually vanishes from my mind. But I guess my &lt;a href=&quot;https://brennan.day/blogroll&quot;&gt;/blogroll&lt;/a&gt; is a bit of a bookmark list. And I&#39;d be touched to know someone bookmarked mine!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What do you want people to be most impressed with when they see your website?&lt;/strong&gt; Oh goodness, I&#39;m not trying to impress anyone. I hope they enjoy the custom cursor and rainbows and little hover animations, though! And maybe the couple easter eggs my website has.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are you interested in technology outside of websites? Do you collect?&lt;/strong&gt; You bet. I&#39;m into mechanical keyboards, ThinkPads, retro handhelds, and single-use devices in general.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How often and for how long are you online?&lt;/strong&gt; Very often, very long. I try to step away from screens as much as possible and only use them for work rather than leisure, but I find myself working often.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;When it comes to your website, who is your target audience?&lt;/strong&gt; I explicitly don&#39;t have an audience in mind for my website. I write for myself, and I find that paradoxically makes the content more enjoyable for a larger amount of people as a result.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Have you ever been interested in XHTML?&lt;/strong&gt; Oh goodness, another piece of history before my time. I&#39;d say in passing, like while researching XFN (XHTML Friends Network) for semantic &lt;code&gt;rel&lt;/code&gt; links between sites. Not a personal enthusiasm so much as a historical footnote.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you program in general?&lt;/strong&gt; A little bit. I dabble in Python, Ruby, TypeScript, shell scripts, across various tools and side projects. See &lt;a href=&quot;https://brennan.day/projects/&quot;&gt;/projects&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Speaking of programs that help you make websites, what do you think of static site generators (SSGs)?&lt;/strong&gt; Obviously I love them, I grew up with them! Right now, I use Eleventy as my primary, but I also often use Hugo. Jekyll has sadly become too slow with too many dependencies in comparison, but I still maintain quite a few Jekyll projects from earlier years.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you keep a hitcounter?&lt;/strong&gt; No, I don&#39;t. I lean on privacy-focused analytics (Umami and NeatStats) instead, though I have a soft spot for hitcounters as GeoCities-era culture.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you frequent forums?&lt;/strong&gt; Yes! 32-bit Café (Discourse), the MelonLand Forum, and the BBS communities on tilde.town and tilde.club.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you write your page content directly into the editor, or do you prepare it elsewhere?&lt;/strong&gt; Drafts start as Markdown on &lt;a href=&quot;https://750words.com/&quot;&gt;750 Words&lt;/a&gt;, which I&#39;ve been using since 2011. Once I reach 750 words then I move over to writing the rest in Sublime, typically.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you think you appear cool to others?&lt;/strong&gt; Nah, probably not.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are you embarrassed of your old work? Have you ever deleted everything out of shame?&lt;/strong&gt; No, quite the opposite. I used to delete everything out of an impulse to start fresh and escape myself, but now I try to archive and retain absolutely everything I do. My &lt;a href=&quot;https://www.lulu.com/shop/brennan-kenneth-brown/the-dogwood-verses/hardcover/product-pmv7zj.html?page=1&amp;amp;pageSize=4&quot;&gt;first book, &lt;em&gt;The Dogwood Verses&lt;/em&gt;&lt;/a&gt; was my attempt at collecting all of my still-surviving writing, starting from 2011 up to 2021.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Would you close down your website if you couldn&#39;t update it, or would you leave an archive?&lt;/strong&gt; I&#39;d definitely leave an archive. My whole philosophy is &amp;quot;plain text survives&amp;quot; and &amp;quot;own your domain, own your words.&amp;quot; Frankly, I would be really upset if all this work I&#39;ve done vanished. Silly, right?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Do you reveal a lot about yourself on your website?&lt;/strong&gt; A lot, yes. I&#39;d say nearly everything about myself, including full name and location. I publish about my disabilities, mental health, family history, and personal boundaries openly. See &lt;a href=&quot;https://brennan.day/disability/&quot;&gt;/disability&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Are you willing to reveal who your best online friend is, and/or if they have a website?&lt;/strong&gt; Yes! See my answer to question #34.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;And do you optimise the images on your website?&lt;/strong&gt; Yes, I try to with lazy loading, compression, and proper formats. I have a Sharp-based image compression workflow. That said, my articles typically feature a 2500x2500 featured image.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;We&#39;re out of time! How do you feel after answering 100 questions?&lt;/strong&gt; Let&#39;s see. I began at 6AM and it&#39;s now 9:30AM. The word count (including the questions) is just over 4,700 words. I&#39;ve just completed 31/31 blog posts for Blaugust and have written 54,000 words this month in total. I feel like I closed a hundred browser tabs I&#39;d been meaning to deal with for weeks, and I think I&#39;m going back to bed.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content>
	</entry>
	<entry>
		<title>SAD MACHINE</title>
		<link href="http://plaintext.brennan.day/sad-machine/"/>
		<updated>2026-08-31T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/sad-machine/</id>
		<content type="html">&lt;p&gt;In the past few days, Debian has held a lengthy &lt;a href=&quot;https://www.debian.org/vote/2026/vote_002&quot;&gt;and rather bureaucratic vote&lt;/a&gt; on how the project will handle genAI and LLM contributions moving forward. There were eight possible options, ranging from a ban to full acceptance, decided by Debian&#39;s Condorcet voting system.&lt;/p&gt;
&lt;p&gt;The winner was for permissive usage, #5 &amp;quot;Responsible Use of Generative AI&amp;quot; proposed by Marc Haber. Disclosure of AI use is encouraged, not required, and the policy explicitly ducks the copyright status question. To get into the weeds of it, this option was the only one in the &amp;quot;Schwartz Set&amp;quot; to beat every other option head-to-head, including the stricter &amp;quot;Allow AI-Assisted Contributions with conditions&amp;quot; (Option 2) by 203-14.&lt;/p&gt;
&lt;p&gt;Debian has always been my operating system of choice, as I&#39;ve always preferred stability over bleeding-edge updates. &lt;a href=&quot;https://ubuntu.com/community/docs/governance/debian&quot;&gt;Ubuntu&lt;/a&gt;, the most popular GNU/Linux distro in the world, is based on Debian. Where do we go from here, then?&lt;/p&gt;
&lt;p&gt;I&#39;ve already written on how generative AI contributions are becoming increasingly inescapable in open-source codebases, and that we should aspire towards &lt;a href=&quot;http://plaintext.brennan.day/software-harm-reduction/&quot;&gt;a harm reduction approach rather than an absolutist stance&lt;/a&gt; because of that.&lt;/p&gt;
&lt;p&gt;I&#39;m certainly not saying that LLMs are the future and here to stay, but rather that using only genAI-free software is becoming increasingly difficult as time goes on and more maintainers decide to go the permissive route.&lt;/p&gt;
&lt;p&gt;On a similar note, I &lt;a href=&quot;https://github.com/jimmitchell/indiewebispunk.net/issues/1&quot;&gt;raised an issue&lt;/a&gt; yesterday regarding the &lt;a href=&quot;https://indiewebispunk.net/&quot;&gt;IndieWeb is Punk manifesto&lt;/a&gt; being mostly created by Claude instead of being handmade by a human--which is what the manifesto explicitly advocates for.&lt;/p&gt;
&lt;h2 id=&quot;good-faith-and-apathy&quot; tabindex=&quot;-1&quot;&gt;Good Faith and Apathy&lt;/h2&gt;
&lt;p&gt;For the past several months, I have attempted an approach of &lt;a href=&quot;http://plaintext.brennan.day/trust-and-faith-in-our-web/&quot;&gt;good faith&lt;/a&gt; and have assumed all the writing, art, and code I&#39;ve encountered online has been human-made unless stated otherwise. I&#39;ve also tried to take &lt;a href=&quot;http://plaintext.brennan.day/apathetic-intentionally-why-i-dont-block-ai-scrapers-on-my-website/&quot;&gt;an apathetic approach to genAI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have been trying to uplift and spread awareness of the good human web--of people still using their own hands and minds and hearts.&lt;/p&gt;
&lt;p&gt;And yet the world is still trying to insist on a genAI future. As &lt;a href=&quot;https://www.theverge.com/ai-artificial-intelligence/960588/openai-government-5-percent-stake-trump&quot;&gt;OpenAI gives Trump a stake of their company&lt;/a&gt;, as &lt;a href=&quot;https://gizmodo.com/midjourney-thinks-hollywood-should-fess-up-about-using-ai-2000781426&quot;&gt;Hollywood uses Midjourney without disclaiming&lt;/a&gt;, as &lt;a href=&quot;https://futurism.com/artificial-intelligence/brown-university-professor-cheating-scandal-ivy-league&quot;&gt;genAI cheating scandals become more widespread&lt;/a&gt;, and as &lt;a href=&quot;https://futurism.com/artificial-intelligence/logs-chatgpt-suicidal-woman-death&quot;&gt;ChatGPT continues to drive people to suicide&lt;/a&gt;. There is a never-ending ledger, and it is growing miles and miles in front of us.&lt;/p&gt;
&lt;p&gt;I am not someone who would think negatively of people who use genAI; I am not someone who would call them names, or feel disdain toward the humans in these situations.&lt;/p&gt;
&lt;p&gt;Rather, I have been looking at the trade-offs, here.&lt;/p&gt;
&lt;h2 id=&quot;a-devil&#39;s-bargain&quot; tabindex=&quot;-1&quot;&gt;A Devil&#39;s Bargain&lt;/h2&gt;
&lt;p&gt;One-shotting the output of any mainstream, consumer LLM will always result in something obviously AI and rather uninspiring. Garbage in, garbage out. The only way to get these models to produce something high-quality is with thorough coaxing and human intervention--paragraphs of human writing in markdown files, hours-long back-and-forth conversations.&lt;/p&gt;
&lt;p&gt;And a lot of people have been deceived into thinking that labour is necessary, because they simply can&#39;t do the damn thing on their own. And that couldn&#39;t be further from the truth--you can instead spend that time learning and doing on your own.&lt;/p&gt;
&lt;p&gt;Reliance on genAI obscures the know-how to do things ourselves, and &lt;a href=&quot;https://link.springer.com/article/10.1007/s00146-025-02686-z&quot;&gt;will actively deskill you&lt;/a&gt;. Your capacity and capabilities &lt;a href=&quot;https://link.springer.com/article/10.1007/s11023-025-09737-w&quot;&gt;atrophy the more you use generative AI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And I have to wonder if people who constantly create and share genAI work do not see and understand its obviousness--have they been incubated for so long that the low-variance, piss-average genAI output looks no different to them than high-variance, human-made work?&lt;/p&gt;
&lt;h2 id=&quot;nfts-were-no-different&quot; tabindex=&quot;-1&quot;&gt;NFTs Were No Different&lt;/h2&gt;
&lt;p&gt;Let me make a comparison: it&#39;s easy to instantly perceive the low-quality, garbage aesthetic of Web3 NFTs, such as &lt;a href=&quot;https://opensea.io/collection/veefriends&quot;&gt;Gary Vaynerchuk&#39;s &amp;quot;VeeFriends&amp;quot;&lt;/a&gt;, rushed shitty sketches that earned him thousands of dollars. Many grifting blockchain-based games made during the peak of the hype were also &lt;a href=&quot;https://www.creativebloq.com/news/pixelmon-nft-game&quot;&gt;low-quality, asset-flipped, rushed jobs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There were many thinkpieces during this time discussing how &lt;a href=&quot;https://www.blockhead.co/2022/06/01/admit-it-nfts-are-ugly-and-expensive/&quot;&gt;cryptobros simply didn&#39;t understand aesthetic or art&lt;/a&gt; or simply didn&#39;t care. It was always just a means to the end goal of making money.&lt;/p&gt;
&lt;p&gt;I think we are experiencing a parallel--there is a decay of aesthetic and care of aesthetic, and with genAI it is far more widespread and mainstream. The problem is that the initial deception is far more convincing: the writing is verbose and grammatically correct; the website has the semantics you expect; the art is fully rendered and coherent.&lt;/p&gt;
&lt;p&gt;But as soon as you examine closely, it really is just as ugly and boring as the grifts of NFTs that came before. There is no substance, no novel compulsion, no skin in the game.&lt;/p&gt;
&lt;p&gt;And again, I&#39;m unsure whether people are unaware, or just don&#39;t care. People were upset that &lt;a href=&quot;https://www.anthropic.com/news/claude-text-watermark&quot;&gt;invisible watermarks&lt;/a&gt; are being added to Claude? There have already been visible (load-bearing) watermarks (added) this entire time.&lt;/p&gt;
&lt;h2 id=&quot;the-mystery-of-the-potemkin-village&quot; tabindex=&quot;-1&quot;&gt;The Mystery of the Potemkin Village&lt;/h2&gt;
&lt;p&gt;I do not know why the push for genAI continues. No corporation (with the exception of Nvidia) &lt;a href=&quot;https://isaiprofitable.com/&quot;&gt;has found profitability&lt;/a&gt;. &lt;a href=&quot;https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/&quot;&gt;95% of generative AI pilots&lt;/a&gt; at companies are failing.&lt;/p&gt;
&lt;p&gt;I do not know who is gaining from maintaining the Potemkin village of generative AI. I do not know who is fooled by &amp;quot;Agentic AI,&amp;quot; which does not change the underlying foundational technology at play, and is instead a dozen sycophant chatbots rather than just one.&lt;/p&gt;
&lt;p&gt;I also do not know what this means for the future of the web or my presence on it. I do not want to be defined by my enemies. I do not want to go gently into that good night. Maybe I&#39;ll give up the HTTP protocol altogether and exclusively publish &lt;a href=&quot;http://plaintext.brennan.day/gemini-gophers-and-fingers-oh-my-alternative-internets-beyond-https/&quot;&gt;to Gemini and Gopher&lt;/a&gt;. It&#39;s hard for me to say at this point.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/embed/HAIDqt2aUek&quot;&gt;embedded video&lt;/a&gt;&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>A Few Small Things</title>
		<link href="http://plaintext.brennan.day/a-few-small-things/"/>
		<updated>2026-08-30T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-few-small-things/</id>
		<content type="html">&lt;p&gt;When I first began this blog last year, it was meant to be a silly place where I allowed myself to draft rough ideas and prose experiments. It did not take long at all for the scope to creep, and for that to be thrown completely out of the window.&lt;/p&gt;
&lt;p&gt;Trying to keep up a 1:1 post-per-day cadence this month has melted my brain a little. I thought it wouldn&#39;t be a big deal, since I usually write 5 or 6 posts a week, so what damage would there be bumping that up to 7?&lt;/p&gt;
&lt;p&gt;Miraculously, I&#39;ve still had a fair share of blog posts this month that I&#39;m happy with despite the increasing straw-grasping.&lt;/p&gt;
&lt;p&gt;But I noticed last night, while working on the website for blogging studies, that I was hit with this wave of demotivation--this alien sensation of not wanting to continue, of not caring to write anymore. It was startling, because since I began in November, I had never experienced such a despondent frame of mind--as though my remaining active brain cells had come together and finally unionized against my onslaught of cognitive tyranny.&lt;/p&gt;
&lt;p&gt;On one hand, I recognize I simply need a break, but on the other, maybe I have finally reached a ceiling. I have only so many thoughts, opinions, and ideas. I feel like I&#39;ve done a good job at avoiding being repetitive on this blog--sure, I beat the same drum of values--but I like to think I&#39;ve always found new, creative angles to attack my favourite topics over and over again.&lt;/p&gt;
&lt;p&gt;And of course I have an embarrassing amount of pride in making it to the make-believe, arbitrary finish line on September 1st, the sunk-cost fallacy pointing out that there are only three more days left. Also, the make-believe, arbitrary standards referee checks to ensure that each post is still, at minimum, a thousand words and useful.&lt;/p&gt;
&lt;p&gt;I want to make it clear none of the above diminishes my joy, nor does it take away from how lucky I am to be doing this at all. Even when I become emotionally blunted and psychically exhausted, I still have the cognitive wherewithal to keep those facts in mind. Maybe it&#39;s also because I&#39;ve begun watching the 2000 anime series about boxing and sportsmanship, &lt;a href=&quot;https://myanimelist.net/anime/263/Hajime_no_Ippo&quot;&gt;&lt;em&gt;Hajime no Ippo&lt;/em&gt;&lt;/a&gt;, that I have been so inspired to continue.&lt;/p&gt;
&lt;p&gt;Anyways, that&#39;s enough navel-gazing for one post. There are a few small things I want to write about that cheered me up.&lt;/p&gt;
&lt;p&gt;To start, &lt;a href=&quot;https://bubbles.town/&quot;&gt;Ben of Bubbles.town&lt;/a&gt; responded to my &lt;a href=&quot;http://plaintext.brennan.day/bubbles-town-four-months-later/&quot;&gt;retrospective of the platform&lt;/a&gt;. While most of his response was a well-argued and fair reply to my criticism, he did release a new feature allowing people to filter and &lt;a href=&quot;https://dshbx.de/blog/bubbles/entry/f3238233-a208-4f70-b2ff-3a4c36ac4356&quot;&gt;hide posts by keyword&lt;/a&gt; in response to the large number of genAI posts on the platform. I appreciate not only that a feature was made in response to feedback, but also that it was done so quickly. Huzzah.&lt;/p&gt;
&lt;p&gt;Next, I want to share an application in development that was recently shared with me. &lt;a href=&quot;https://jan.miksovsky.com/&quot;&gt;Jan Miksovsky&lt;/a&gt;, creator of the web builder &lt;a href=&quot;https://weborigami.org/&quot;&gt;Origami&lt;/a&gt;, has announced a new project called &lt;a href=&quot;https://jan.miksovsky.com/posts/2026/08-28-origami-projector&quot;&gt;Origami Projector&lt;/a&gt;. It is rather simple, but that&#39;s why I love it. It&#39;s designed to be a lightweight web development tool that gives you a real-time preview of what you&#39;re creating. You can even upload the work you create to NeoCities or Netlify.&lt;/p&gt;
&lt;p&gt;Miksovsky credits the now-defunct platform &lt;a href=&quot;https://blog.glitch.com/&quot;&gt;Glitch&lt;/a&gt; for inspiration. If you were a user, I&#39;m sure you were as heartbroken as I was when the site shut down. There were so many cool, weird projects housed on Glitch that wouldn&#39;t have existed were it not for its unique ethos and design. It was an excellent starting point for people interested in web development, so I hope to see Origami Projector take off, because I think it scratches that itch, even though it&#39;s rather different in how it operates.&lt;/p&gt;
&lt;p&gt;Seeing the efforts of others really boosts my spirits. People are still creating good things on the web, by hand, for the sake of others. This has always been the case and will always continue to be the case so long as there is an Internet and there are people. No matter how many headlines try to convince you that the Internet is now only a husk of belligerent robots and platforms created by corporations, the personal and independent web will always be here. The good of the world doesn&#39;t stop existing, I promise.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Creating an Open-source Blogging Studies Syllabus</title>
		<link href="http://plaintext.brennan.day/creating-an-open-source-blogging-studies-syllabus/"/>
		<updated>2026-08-29T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/creating-an-open-source-blogging-studies-syllabus/</id>
		<content type="html">&lt;p&gt;As you may be aware if you&#39;re a regular reader of my blog, I love learning, studying, &lt;a href=&quot;http://plaintext.brennan.day/a-guide-to-becoming-a-rogue-scholar/&quot;&gt;and academia&lt;/a&gt;. And I&#39;ve been thinking recently of how to take the opportunity to better intersect this with my knowledge of web development and technology in general.&lt;/p&gt;
&lt;p&gt;You see, for many years there have been free, open-source resources for people to use if they wanted to learn programming, such as the &lt;a href=&quot;https://www.theodinproject.com/&quot;&gt;Odin Project&lt;/a&gt; which maintains a Discord community of 708,000 learners, and &lt;a href=&quot;https://www.freecodecamp.org/&quot;&gt;freeCodeCamp&lt;/a&gt;, which has helped &lt;a href=&quot;https://codakey.io/projects/freecodecamp-freecodecamp&quot;&gt;more than 100,000 people land their first developer job&lt;/a&gt;. These have been a wonderful resource for people to go from absolute beginner to becoming competent enough to make a career in software development.&lt;/p&gt;
&lt;p&gt;And in a similar manner, over a decade ago, there were many options for Massively Open Online Courses (MOOCs); however, these have been in a sharp decline in recent years[^1]. The New York Times called 2012 &lt;a href=&quot;https://www.nytimes.com/2012/11/04/education/edlife/massive-open-online-courses-are-multiplying-at-a-rapid-pace.html&quot;&gt;the Year of MOOCs&lt;/a&gt;, but things are incredibly different, now. Let me give you a couple examples.&lt;/p&gt;
&lt;p&gt;[^1]: Class Central still maintains a running list of &lt;a href=&quot;https://www.classcentral.com/report/coursera-free-online-courses/&quot;&gt;470+ courses that remain completely free&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In mid-2025, under new CEO Greg Hart, Coursera rolled out &amp;quot;Preview Mode,&amp;quot; replacing the old free-audit system. Instead of auditing an entire course for free, courses now only let you preview the first module before hitting a paywall. &lt;a href=&quot;https://www.classcentral.com/report/coursera-preview-mode-paywall/&quot;&gt;Class Central&#39;s analysis&lt;/a&gt; called it &amp;quot;the day MOOCs truly died,&amp;quot; noting the change came right as Coursera&#39;s stock jumped 36% on an earnings call and its valuation passed $2 billion, despite sitting on $775M in cash reserves.&lt;/p&gt;
&lt;p&gt;Harvard and MIT sold EdX to 2U in 2021 for $800 million, and edX dropped free certificates back in 2023. Then 2U &lt;a href=&quot;https://www.timeshighereducation.com/news/online-course-provider-2u-files-bankruptcy&quot;&gt;filed for Chapter 11 bankruptcy in July 2024&lt;/a&gt;, citing over $945 million in long-term debt. edX kept operating through the bankruptcy, but &lt;a href=&quot;https://course.careers/blog/best-edx-courses&quot;&gt;tightened the auditing access and raised prices&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When looking at the above, I realize I want to contribute to free online learning as much as I can for the sake of others.&lt;/p&gt;
&lt;h2 id=&quot;blogging-studies&quot; tabindex=&quot;-1&quot;&gt;Blogging Studies&lt;/h2&gt;
&lt;p&gt;Over the past year, I&#39;ve written extensively on both &lt;a href=&quot;https://brennan.day/collections/indieweb/&quot;&gt;the IndieWeb&lt;/a&gt; and &lt;a href=&quot;https://brennan.day/collections/writing-craft/&quot;&gt;the craft of writing&lt;/a&gt;. While it can be enjoyable to read and learn from these posts one-by-one, that can also be overwhelming or a slog. They&#39;re all presented as individual articles instead of something like a tangible, actionable curriculum.&lt;/p&gt;
&lt;p&gt;In light of this, I&#39;ve decided I want to take everything I&#39;ve written and launch a new project with it. I&#39;ve actually had the idea to teach writing in virtual classes for a while now, ever since I first announced &lt;a href=&quot;https://fireweed.school/&quot;&gt;Fireweed School&lt;/a&gt;; unfortunately, I&#39;ve realized I&#39;m &lt;a href=&quot;http://plaintext.brennan.day/notice-bandwidth-exceeded/&quot;&gt;lacking the bandwidth&lt;/a&gt; to teach a synchronous class that would ask students to pay me for my services. The good news is, though, that I will be doing this instead, and it will be free for everyone. And I&#39;ll be able to take a lot of my ideas from that for this.&lt;/p&gt;
&lt;p&gt;As Unattributed notes in his recent post, &lt;a href=&quot;https://unattributed.cc/2026/08/27/why-people-quit-blogging/&quot;&gt;&amp;quot;Why People Quit Blogging&amp;quot;&lt;/a&gt;, much of what you encounter when you search &amp;quot;blogging&amp;quot; online is related to search engine optimization, corporate business marketing, and opportunistic pyramid scheme-esque endeavours promising passive income.&lt;/p&gt;
&lt;p&gt;I&#39;ve written before about how I want to reclaim blogging as a democratic, open tool for people to write and share online from this cynical, capitalistic definition that is dominant and popular on search engine results, and I think this idea could be a great way to make that happen.&lt;/p&gt;
&lt;h2 id=&quot;my-pitch&quot; tabindex=&quot;-1&quot;&gt;My Pitch&lt;/h2&gt;
&lt;p&gt;The premise for this is rather simple: I am going to create a static site that will act as the syllabus and curriculum for Blogging Studies, and it will include lessons/lectures, assignments, recommended readings, and methods for class participation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blogging Studies&lt;/strong&gt; is a term I coined myself, and I define it as the study and practice of writing craft and independent online publishing as a single, integrated discipline, treating the blog post medium as a legitimate unit of scholarly and creative work. I use the word &amp;quot;blogging&amp;quot; instead of &amp;quot;writing&amp;quot; because while a large amount of it will focus on writing craft, I also want to similarly focus on getting that writing out there in the world &lt;em&gt;with&lt;/em&gt; blogging. I&#39;ll cover platforms, formatting, netiquette, etc. just as much as the writing itself. I will try to make the technical aspects as accessible as possible, and essentially this will be a dual or hybrid approach. You can think of Blogging Studies as a subcategory of Digital Humanities.&lt;/p&gt;
&lt;p&gt;I want to avoid calling this a &amp;quot;course&amp;quot; or a &amp;quot;class&amp;quot; because it will be asynchronous, but also because online creators who announce such a thing are typically charging a lot of money, with revenue opportunity being the primary motivation.&lt;/p&gt;
&lt;p&gt;This couldn&#39;t be further from the case with this project. I have already shared everything I know and have learned on this blog, and this will simply be synthesizing that information.&lt;/p&gt;
&lt;h2 id=&quot;being-open-source&quot; tabindex=&quot;-1&quot;&gt;Being Open-Source&lt;/h2&gt;
&lt;p&gt;And, importantly, unlike nearly all my previous open-source projects where I&#39;ve been the sole contributor and developer, I truly want to be a maintainer for this. While I think my contributions are a good starting point, I think having this open-source is an excellent way of getting new and different resources, modules, and ideas added to the syllabus and curriculum by others.&lt;/p&gt;
&lt;p&gt;I&#39;m going to be hosting this project on Codeberg, and part of the curriculum itself will be teaching people how to sign up, how to use git, make pull requests and submit issues, etc.&lt;/p&gt;
&lt;p&gt;Being a good maintainer turns out to be less a technical skill than a communication one. &lt;a href=&quot;https://opensource.guide/best-practices/&quot;&gt;Open Source Guides&lt;/a&gt; has a lot of helpful advice, such as getting your community documents in order early (a README, a CONTRIBUTING file, a code of conduct, a license, etc.) matters as much as the code itself. I&#39;ll be adopting the &lt;a href=&quot;https://www.contributor-covenant.org/&quot;&gt;Contributor Covenant&lt;/a&gt; as the code of conduct &lt;a href=&quot;https://en.wikipedia.org/wiki/Contributor_Covenant&quot;&gt;created by Coraline Ada Ehmke in 2014&lt;/a&gt; and now used by nine of the ten largest open-source projects in the world.&lt;/p&gt;
&lt;h2 id=&quot;good-pedagogy&quot; tabindex=&quot;-1&quot;&gt;Good Pedagogy&lt;/h2&gt;
&lt;p&gt;Good pedagogy is not merely handing information down. Paulo Freire heavily criticized the &amp;quot;banking model&amp;quot; of education, where a teacher deposits knowledge into passive students who store it and hand it back on command.&lt;/p&gt;
&lt;p&gt;In an essay for Hybrid Pedagogy titled &lt;a href=&quot;https://hybridpedagogy.org/freire-made-mooc-open-education-resistance/&quot;&gt;&amp;quot;If Freire Made a MOOC: Open Education as Resistance,&amp;quot;&lt;/a&gt; the author draws on writer Audrey Watters&#39;s observation that a MOOC feels entirely different depending on whether the &amp;quot;C&amp;quot; is experienced as course or as community, and that community is what keeps people coming back. I want to provide scaffolding for people to become co-authors of their own writing practice, together.&lt;/p&gt;
&lt;p&gt;And I also admit I am lacking teaching credentials myself. But I will say this, if you don&#39;t know who I am already: I&#39;ve independently published nine of my own books, five of which are &lt;a href=&quot;https://brennanbrown.gumroad.com/&quot;&gt;available on Gumroad&lt;/a&gt;. Not only did I do the writing, but I did the cover design, layout, formatting, and copyright. These books span over 1,500 pages in total.&lt;/p&gt;
&lt;p&gt;I graduated from Mount Royal University with a 3.8 GPA majoring in English Honours with a minor in creative writing. During my time as an undergrad, I published &lt;a href=&quot;https://doi.org/10.29173/mruhr768&quot;&gt;a scholarly article on Indigenous resilience&lt;/a&gt; and my &lt;a href=&quot;https://doi.org/10.13140/RG.2.2.25021.37600&quot;&gt;honours thesis&lt;/a&gt; which examined the importance of the English Degree and writing in today&#39;s age.&lt;/p&gt;
&lt;p&gt;I also founded Write Club, a creative writing collective of young adults that grew from a couple students to 100+ members. I was the president of this club where we hosted open mics, fundraising events, and I ran dozens of workshops with hundreds of students for three years. We published two anthologies under my tenure: &lt;a href=&quot;https://www.amazon.ca/Fringe-Collection-Filth-Dana%C3%AB-Webb/dp/B0CYQ1NRY9&quot;&gt;&lt;em&gt;&amp;quot;On the Fringe: A Collection of Filth&amp;quot;&lt;/em&gt;&lt;/a&gt; and &lt;a href=&quot;https://www.amazon.ca/Fringe-Collection-Felix-Costa-Gomez/dp/B0F4PKFRZQ&quot;&gt;&lt;em&gt;&amp;quot;On the Fringe: A Collection of Community&amp;quot;&lt;/em&gt;&lt;/a&gt;, which are available for purchase.&lt;/p&gt;
&lt;p&gt;I&#39;m also a Queer Red River Métis, and I know how important it is to centre marginalized voices and be mindful of how political writing is. Our voice and our ability to have a platform is directly imbued into my teaching.&lt;/p&gt;
&lt;h2 id=&quot;identity&quot; tabindex=&quot;-1&quot;&gt;Identity&lt;/h2&gt;
&lt;p&gt;I think identity is an important (and fun) part of making this work for anyone who finishes a module, contributes a lesson, or shows up consistently. For instance, I&#39;m designing an 88x31 badge for the project, and I also want to run a webring.&lt;/p&gt;
&lt;p&gt;Beyond the badges and buttons, I want a communal space where cohort members can talk to each other, share drafts, and celebrate wins together, not just consume a syllabus alone in a browser tab. I&#39;m also interested in some light gamification: achievements, streaks, small visible symbols of progress.&lt;/p&gt;
&lt;p&gt;I know gamification has a bit of a bad reputation, mostly because platforms use it to manufacture compulsive engagement, and that&#39;s not my intention. Rather, I subscribe to the idea that romanticizing the process strengthens the bonds between people going through a cohort together, and provides motivation to continue and sustain the practice.&lt;/p&gt;
&lt;h2 id=&quot;on-being-anti-tyranny&quot; tabindex=&quot;-1&quot;&gt;On Being Anti-tyranny&lt;/h2&gt;
&lt;p&gt;Jo Freeman&#39;s 1970 essay, &lt;a href=&quot;https://www.jofreeman.com/joreen/tyranny.htm&quot;&gt;&amp;quot;The Tyranny of Structurelessness,&amp;quot;&lt;/a&gt; argued that groups claiming to have no structure or hierarchy don&#39;t actually escape hierarchy and instead make it invisible and unaccountable. That&#39;s important to be mindful of when thinking about open projects claiming to be neutral or all-encompassing.&lt;/p&gt;
&lt;p&gt;Blogging Studies is not neutral. I am opinionated and particular in how I write and in how I think writing should be taught. Which is why I want to emphasize that this is just &lt;em&gt;one way&lt;/em&gt; to blog and write, filtered through my own politics, my own aesthetic sensibilities, and my own experiences. Plenty of other resources exist, and plenty more should. I&#39;m not trying to be the final word on blogging, or writing, or teaching. I&#39;m trying to be one honest, clearly-labeled voice among many. I&#39;d rather you disagree with my syllabus and go build your own.&lt;/p&gt;
&lt;h2 id=&quot;interested%3F-get-involved!&quot; tabindex=&quot;-1&quot;&gt;Interested? Get Involved!&lt;/h2&gt;
&lt;p&gt;I realize that it would be good to start planning early. Things are totally up-in-the-air right now (I don&#39;t even have a name for this project) and there are many different ways people can help before I even launch. Here are a few ideas I have for contributing.&lt;/p&gt;
&lt;h3 id=&quot;ways-to-contribute%3A&quot; tabindex=&quot;-1&quot;&gt;Ways to contribute:&lt;/h3&gt;
&lt;p&gt;I&#39;d love writers and researchers who could help draft lessons, recommend specific readings, and share your own experience blogging as case studies for beginners.&lt;/p&gt;
&lt;p&gt;Editors and reviewers could provide feedback on drafts, proofread modules, and test assignments. Technical contributors can help with the code of the site, webring, and onboarding for folks new to git and Codeberg.&lt;/p&gt;
&lt;p&gt;Community builders could help moderate discussions, welcome newcomers, organize cohort activities, and host online writing group sessions.&lt;/p&gt;
&lt;p&gt;And of course, learners are the ones completing the modules, doing assignments, asking questions, and leaving feedback on what&#39;s helpful and what isn&#39;t.&lt;/p&gt;
&lt;p&gt;I&#39;d love to hear from people who want to co-teach a module in their area of expertise, as well as folks who&#39;ve been blogging for a while and have their own lessons to share.&lt;/p&gt;
&lt;h3 id=&quot;current-status&quot; tabindex=&quot;-1&quot;&gt;Current Status&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The project will live on &lt;strong&gt;Codeberg&lt;/strong&gt; (repository link coming soon), where you&#39;ll be able to submit issues, make pull requests, and follow along with development.&lt;/li&gt;
&lt;li&gt;The Blogging Studies syllabus itself will be a static site, and I&#39;ll post a link when it&#39;s live.&lt;/li&gt;
&lt;li&gt;You can reach me through my &lt;a href=&quot;https://brennan.day/contact/&quot;&gt;contact page&lt;/a&gt;, &lt;a href=&quot;mailto:mail@brennanbrown.ca&quot;&gt;email&lt;/a&gt; or reply to this post.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	<entry>
		<title>Notice: Bandwidth Exceeded</title>
		<link href="http://plaintext.brennan.day/notice-bandwidth-exceeded/"/>
		<updated>2026-08-28T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/notice-bandwidth-exceeded/</id>
		<content type="html">&lt;p&gt;August is ending, and yet today&#39;s high is going to be 28+°C, that unseasonable summer air in early fall.&lt;/p&gt;
&lt;p&gt;With my fan humming away, I wrote yesterday about how, for the first time, I&#39;ve exceeded my &lt;a href=&quot;https://social.lol/@brennan/117162424319064228&quot;&gt;free Netlify bandwidth&lt;/a&gt; of 100GB for the month, with five days still left to go. Everything is fine as of right now, but I&#39;ve gone ahead anyways and wired up my homelab to be able to run this site, replacing the various functions and webhooks with MySQL databases and Caddy files in Docker. Containers stacked like a Jenga game.&lt;/p&gt;
&lt;p&gt;And I&#39;m sure I&#39;ll write a tutorial about the process in the future, since it would probably be useful for people to know how to migrate off of Netlify while still retaining the features the hosting platform provides.&lt;/p&gt;
&lt;p&gt;There was an existential crisis during the procedure for me, though. I recall when I would simply write the words for a short blog post during my lunch break at work and post them to Medium.com--fast forward to now, and it&#39;s now &lt;em&gt;ingress, provisioning, blob storage, and webhooks&lt;/em&gt;. Each day that I&#39;ve tinkered with my website I&#39;ve returned more and more to web development and programming--all with the hope that the additional functionality I&#39;ve been adding has improved the experience and allowed more two-way communication.&lt;/p&gt;
&lt;p&gt;I look at the &lt;code&gt;Caddyfile&lt;/code&gt; and &lt;code&gt;docker-compose.yml&lt;/code&gt; I have to write, and it makes me take a step back and question what I&#39;m doing here at all. Though, that doesn&#39;t actually have anything to do with writing or coding, but rather the rest of my life in-between.&lt;/p&gt;
&lt;p&gt;As you may be able to tell by the number of posts I publish and their typical length, I&#39;ve devoted my life to this project. That sounds dramatic, but it is the truth--if I&#39;m not at a screen researching or writing or debugging a local dev server, then I&#39;m taking a break or sleeping. There is an ascetic quality to it. Sometimes I ask myself if I feel as though I&#39;m missing out on anything, or if I shouldn&#39;t be putting all of my eggs in one basket, but I don&#39;t find myself wanting. I don&#39;t find myself lacking.&lt;/p&gt;
&lt;p&gt;But there are consequences to this. Consequences I&#39;m not proud of. The close friends I had in person but no longer have, for instance. I realized that many of my relationships had become too one-sided--that others were putting in far more effort than I was--and I made the call that it was shittier to let that continue than to be honest and end things. I have always been the kind of person to act impulsively, as though social acts were irreversible, and burn bridges that could be left standing.&lt;/p&gt;
&lt;p&gt;I&#39;ve also reached capacity in my bandwidth. In some ways, my bandwidth could be regarded as impressive--having the ability to write and create consistently for so long. But in many more ways, my bandwidth is shockingly low, and I&#39;ve had to be strategic and tactical with how I use my time and energy because of that. And that has included making some difficult, and often hypocritical, decisions.&lt;/p&gt;
&lt;p&gt;I don&#39;t really know what&#39;s happened. I look back at the twenty-year-old Brennan who biked everywhere and went to school full-time, worked part-time, and still maintained a social life. On paper, I&#39;ve lived &lt;a href=&quot;https://weeks.brennan.day/&quot;&gt;a rich decade&lt;/a&gt; but in practice I&#39;m so much less sure. There are a million more things I could be doing, a million more connections I could be weaving, and instead I&#39;m here sitting at my desk writing yet another blog post. An unlived life stacked against these four walls.&lt;/p&gt;
&lt;p&gt;And this &lt;em&gt;is&lt;/em&gt; what I want to be doing, or at least what I feel a magnetic compulsion toward. I&#39;ve come to realize so much of my life, heavy with masking, was doing what I thought was the right thing to do, what &amp;quot;normal&amp;quot; people do. And I didn&#39;t question things until I had the time and silence to do so. And there is a shade of guilt that comes with that--questioning why I can&#39;t be more typical and have a drive to live a larger life with more dimensions.&lt;/p&gt;
&lt;p&gt;I think of &lt;a href=&quot;https://worldtreasures.org/blog/emily-dickinson-the-recluse&quot;&gt;Emily Dickinson&lt;/a&gt;, the reclusive hermit, the myth of Amherst. The New England Mystic &lt;a href=&quot;https://www.emilydickinsonmuseum.org/emily-dickinson/poetry/&quot;&gt;wrote over 1,800 poems&lt;/a&gt; in her isolation, so rarely seen outside of her homestead that she was conjured into a ghost by her neighbours. And it is a ghost-like existence; a peculiar fraction of a death.&lt;/p&gt;
&lt;p&gt;From the other side of the screen, you might have had a totally different assumption about the kind of life I was living, given how much I pour into my work. You expected this to end with a triumphant declaration--a neat resolution where I announce I&#39;m changing for the better. I wish I could offer myself a clean break. There&#39;s no vinyl to flip over.&lt;/p&gt;
&lt;p&gt;Instead, the fan doesn&#39;t stop humming white noise, and the August heat pushes fresh wind through the open window. Quiet room, screen glowing, words always finding their way out. Everything else beyond that is tentative, determined by a calculus I can&#39;t see. Arithmetic of unspent days. But regardless of what tomorrow brings, you know there&#39;s certainty in the fact that I&#39;ll write about it.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Being a Toolshed of Optimism</title>
		<link href="http://plaintext.brennan.day/being-a-toolshed-of-optimism/"/>
		<updated>2026-08-27T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/being-a-toolshed-of-optimism/</id>
		<content type="html">&lt;p&gt;A few days ago, I noticed on Umami that there was a small uptick of referrals coming from Reddit, so I searched the site for my URL and found this &lt;a href=&quot;https://www.reddit.com/r/indieweb/comments/1vw4dhw/two_indieweb_dudes_worth_bookmarking/&quot;&gt;lovely little post&lt;/a&gt; in r/IndieWeb recommending me and &lt;a href=&quot;https://jamesg.blog/&quot;&gt;James&lt;/a&gt;. I later discovered this was posted by &lt;a href=&quot;https://wilcosky.com/&quot;&gt;Billy&lt;/a&gt;, creator of &lt;a href=&quot;https://ctrlshift3.com/&quot;&gt;Ctrl+Shift+3&lt;/a&gt;, which has been an enjoyable indie social media platform these past few weeks I&#39;ve been using it.&lt;/p&gt;
&lt;p&gt;It&#39;s always interesting to hear how others describe you, and it gave me pause for contemplation. Billy wrote that I&#39;m someone that doesn&#39;t take myself too seriously, and I certainly agree there. But &amp;quot;nice&amp;quot;? Hm. Is that how I&#39;m viewed?&lt;/p&gt;
&lt;p&gt;Let me take a step back and say, first, that it is weird to have a readership at all. I&#39;ve gone most of my life being invisible, and I&#39;ve been writing online since 2015 mostly to just myself and have been content with that. This past year of creating my own independent publication and posting on a near-daily basis has changed that.&lt;/p&gt;
&lt;h2 id=&quot;being-a-jester&quot; tabindex=&quot;-1&quot;&gt;Being a Jester&lt;/h2&gt;
&lt;p&gt;Without a doubt, there comes a responsibility when people begin reading your work and taking you seriously. I&#39;ve had &lt;a href=&quot;https://www.kinfolk.com/stories/jesters-privilege/&quot;&gt;Jester&#39;s privilege&lt;/a&gt;, the historical right of a court jester to mock and speak hard truths without facing punishment, because their words are disguised as mere jokes and--more so in my case--because nobody cared what the jester has to say, or takes it seriously.&lt;/p&gt;
&lt;p&gt;As a result, I&#39;ve found myself making off-hand remarks and having a flippant attitude. I&#39;ve developed a bad habit of rubbernecking and gravitating towards mess and disaster. Thankfully, I&#39;ve been able to channel my compulsive morbid curiosity into healthy avenues, such as the various topics I write about on this blog.&lt;/p&gt;
&lt;h2 id=&quot;yet%2C-being-virtuous&quot; tabindex=&quot;-1&quot;&gt;Yet, Being Virtuous&lt;/h2&gt;
&lt;p&gt;At the same time though, in contradiction, I have tried to live a values-oriented life and be vocal about what I think is important and right. And doing so puts you and your actions under a vigilant lens of scrutiny.&lt;/p&gt;
&lt;p&gt;Similarly, I think many people (myself included) have the assumption that somebody who cares deeply about virtue and justice is then also rigid, unforgiving, and views those who are less virtuous as inferior, and perhaps even irredeemable.&lt;/p&gt;
&lt;p&gt;And so I&#39;m writing this out for a number of reasons.&lt;/p&gt;
&lt;p&gt;I want to make it clear that I&#39;ve never been interested in scolding, pearl clutching, and certainly not infighting. When I&#39;ve reported on the actions and behaviours of people in the past, I have done so trying my best to shine light and awareness where I thought it was both important and dark. I have been frustrated and disappointed by people, sure, but nothing beyond that.&lt;/p&gt;
&lt;p&gt;Going forward, I want to be more careful and mindful with my subject matter--what can be healed, what injustices can be redeemed? What good can be made more accessible?&lt;/p&gt;
&lt;h2 id=&quot;helpful-frameworks&quot; tabindex=&quot;-1&quot;&gt;Helpful Frameworks&lt;/h2&gt;
&lt;p&gt;I&#39;ve been looking towards the work of others that I can use as reference. To start, &lt;a href=&quot;https://www.solutionsjournalism.org/learning-lab/toolkits-guides/basic-toolkit&quot;&gt;Solutions journalism&lt;/a&gt; insists on rigour--a solutions story shows evidence of what&#39;s working, insight into why it&#39;s working, and its limitations. Similarly, &lt;a href=&quot;https://constructiveinstitute.org/why/&quot;&gt;constructive journalism&lt;/a&gt; focuses on the three pillars of solutions, nuance, and democratic conversation. Newsrooms need to facilitate conversations society needs to move forward, and not just aspire to document evidence neutrally. And though I am not a newsroom, I do aspire to be a good citizen journalist.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.poynter.org/reporting-editing/2015/whats-restorative-narrative-a-qa-with-a-journalism-professor-whos-studying-it/&quot;&gt;Restorative narrative&lt;/a&gt; is a related genre that grew out of the folks at &lt;a href=&quot;https://ivoh.org/&quot;&gt;Images &amp;amp; Voices of Hope&lt;/a&gt;, and says stories cannot skip past the hard truths of tragedy or rupture. The story must continue with a person or community long enough to document progression toward repair.&lt;/p&gt;
&lt;p&gt;I will never look away from what&#39;s broken, and that&#39;s many things, and I will also honour attempts at rebuilding.&lt;/p&gt;
&lt;p&gt;When you&#39;re writing day-to-day like me, it can be easy to get caught up in the trees and begin to forget about the forest. It can be easy to get wrapped up in the particular actions of particular people simply because of things like proximity bias. I need to remind myself that, just because I see something on my timeline or feed a lot, does not automatically mean it&#39;s what deserves my attention and effort.&lt;/p&gt;
&lt;p&gt;I want my little publication here to be &lt;strong&gt;a toolshed of hope and stubborn optimism&lt;/strong&gt;--by that, I mean I want to focus on compassion, grace, benevolence, and hope--but in a tangible, practical way that&#39;s actionable and verb-oriented. I want my humble shed to have the tools needed to change things for the better.&lt;/p&gt;
&lt;p&gt;Rebecca Solnit wrote that &lt;a href=&quot;https://www.themarginalian.org/2016/03/16/rebecca-solnit-hope-in-the-dark-2/&quot;&gt;hope lives in the uncertainty between optimism and pessimism&lt;/a&gt; and in the action we take. Hope is the room not-knowing leaves for you to act in. &lt;a href=&quot;http://rebeccasolnit.net/book/hope-in-the-dark-untold-histories-wild-possibilities&quot;&gt;Solnit looks at the Zapatista uprising and the 1999 shutdown of the WTO meetings in Seattle&lt;/a&gt; among forgotten wins on the left. Most of what changes the world never gets photographed, it looks like something that didn&#39;t happen. A war that didn&#39;t start, or a law that didn&#39;t pass. Do you know &lt;a href=&quot;http://plaintext.brennan.day/the-three-times-the-world-nearly-ended/&quot;&gt;the names of the people that stopped the world from ending&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cac.org/daily-meditations/hope-is-a-discipline/&quot;&gt;Mariame Kaba says hope is a discipline&lt;/a&gt;, rather than an emotion. Hope is a ritual and daily practice, done whether or not you feel like it. &lt;a href=&quot;https://www.thenation.com/article/culture/mariame-kaba-interview-til-we-free-us/&quot;&gt;Kaba herself has been running&lt;/a&gt; Project NIA and organizing the Chicago Torture Justice Memorials reparations campaign for decades. She does &lt;a href=&quot;https://micahherskind.medium.com/some-lessons-from-mariame-kabas-we-do-this-til-we-free-us-4ae4fc9986bb&quot;&gt;the unglamorous work&lt;/a&gt; of bail funds, court watching, and participatory defense campaigns. Hope as a discipline is showing up to unfinished work again and again.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ethical.net/sustainability/books/active-hope-the-book/&quot;&gt;Joanna Macy says active hope&lt;/a&gt; is three steps you take: see clearly what&#39;s happening, name the direction you want things to move in, then act. &lt;a href=&quot;https://aworkinglibrary.com/reading/emergent-strategy&quot;&gt;adrienne maree brown has principles of emergent strategy&lt;/a&gt; for hope: move at the speed of trust and focus on critical connections over critical mass. We must trust the people, because if you trust the people, they become trustworthy. &lt;a href=&quot;https://www.concentricstrategy.org/post/principles-of-emergent-strategy&quot;&gt;Small is good, small is all&lt;/a&gt;, the large is only ever a reflection of the small. This is why I am doing this on a daily blog trying to be a toolshed.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npr.org/2020/05/22/860128259/christiana-figueres-how-can-we-choose-optimism-even-in-the-darkest-times&quot;&gt;Christiana Figueres calls hers stubborn optimism&lt;/a&gt;, and she used it to broker the Paris Agreement, when 195 nations agreed, six years after the Copenhagen summit collapsed in tears and screaming. Stubborn optimism is also a discipline, chosen because the alternative is unthinkable, not because the odds favour you.&lt;/p&gt;
&lt;h2 id=&quot;what-this-means&quot; tabindex=&quot;-1&quot;&gt;What This Means&lt;/h2&gt;
&lt;p&gt;I need to remind myself to meet people where they are, and to focus on the human and what can be restored. I also need to hold every piece I write against the question: &lt;em&gt;will this look worthwhile from my deathbed, in retrospect?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://plaintext.brennan.day/the-blogging-uebermensch-or-being-the-luckiest-person-on-earth/&quot;&gt;I am extremely privileged&lt;/a&gt; both in my platform and my attitude--for whatever reason, I was built with the ability to endure and survive with the image of a positive future still intact in my mind, despite everything.&lt;/p&gt;
&lt;p&gt;Which is to say that I want to use this unique, absurd opportunity I have to try to leave the world a better place than I found it. And that starts with where my focus is. This isn&#39;t about ignoring the grave injustices, but it is about figuring out what can be done about them. And that will always include righteous fury and anger and grief.&lt;/p&gt;
&lt;p&gt;Regardless of all of the above, I am a deeply flawed person. I will try my best to write something that you&#39;ll find worth reading, but as a person, I will continue to make mistakes and disappoint you. And that&#39;s okay. I want to operate on good faith. If others mess up, that&#39;s okay! Because I will as well.&lt;/p&gt;
&lt;p&gt;So, what does the toolshed of optimism look like in practice? Before I publish anything, I will ask whether it points toward what can be healed, what the reader can do with it. I will tether any anger or grief I write to a concrete next step: a tool to try, a campaign to support, a question to keep asking, or an attempt at repair already underway. I will keep building this site by hand, one word and one page at a time, and use it for the stubborn work of optimism. That is the toolshed I want to tend.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Bubbles.town: Four Months Later</title>
		<link href="http://plaintext.brennan.day/bubbles-town-four-months-later/"/>
		<updated>2026-08-26T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/bubbles-town-four-months-later/</id>
		<content type="html">&lt;p&gt;It was near the end of April when &lt;a href=&quot;http://plaintext.brennan.day/floating-up-an-interview-with-the-creator-of-bubbles-town-benjamin-behnke/&quot;&gt;I interviewed the creator of Bubbles.town&lt;/a&gt;, Benjamin Behnke, and I feel as though I&#39;ve been using the platform for enough time to give a more long-term review of it now. Here are some of my thoughts, and if you disagree with any please drop a comment!&lt;/p&gt;
&lt;h2 id=&quot;the-good&quot; tabindex=&quot;-1&quot;&gt;The Good&lt;/h2&gt;
&lt;p&gt;I want to start with the positive, which is that I&#39;ve discovered and continue to find new blogs on a wide variety of interesting topics thanks to Bubbles. Blogs about &lt;a href=&quot;https://climbingmyfamilytree.blogspot.com/&quot;&gt;family genealogy&lt;/a&gt;, &lt;a href=&quot;https://corianderinpho.com/works/&quot;&gt;wonderful illustrators&lt;/a&gt;, &lt;a href=&quot;https://blog.curiousquail.com/&quot;&gt;musicians&lt;/a&gt;, &lt;a href=&quot;https://qtea.me/posts/souping-up-my-blog/&quot;&gt;souping&lt;/a&gt;, &lt;a href=&quot;https://figureoftheday.blogspot.com/2026/08/star-wars-figure-of-day-day-3374-r2.html&quot;&gt;Star Wars action figures&lt;/a&gt;, &lt;a href=&quot;https://googlemapsmania.blogspot.com/&quot;&gt;Google Maps&lt;/a&gt;, &lt;a href=&quot;https://www.velcro-city.co.uk/ours-is-the-tragedy-of-the-silent-stars/&quot;&gt;science fiction writers&lt;/a&gt;, &lt;a href=&quot;https://noisydeadlines.net/my-bullet-journal-setup-personal-august-2026&quot;&gt;bullet journals&lt;/a&gt;. I could go on and on, and that&#39;s just from this week.&lt;/p&gt;
&lt;p&gt;There are so many topics I don&#39;t have any knowledge of whatsoever, and it makes me so happy that there are people who have dedicated blogs to these topics! Bubbles allows me to discover personal sites that I would not have encountered otherwise. It reminds me of visiting my public library and browsing the more obscure aisles of the Dewey Decimal system and being astounded that so many books on each particular topic exist.&lt;/p&gt;
&lt;p&gt;In this sense, Bubbles has been a fantastic success story for the IndieWeb, and demonstrates how it is a net positive rather than a net negative, in my opinion.&lt;/p&gt;
&lt;p&gt;That said, I do still certainly have my issues with the aggregator, particularly as it becomes more popular and used as a primary source for bloggers and IndieWeb participants. So, onto my qualms.&lt;/p&gt;
&lt;h2 id=&quot;the-pace&quot; tabindex=&quot;-1&quot;&gt;The Pace&lt;/h2&gt;
&lt;p&gt;I don&#39;t know if I visit the aggregator too often (two or three times a day) but I notice that the top posts change at a rather glacial pace. It reminds me of how, back in 2018, Reddit changed their default sorting from &amp;quot;Hot&amp;quot; to &amp;quot;Best&amp;quot; and the ability to use the site for breaking news near totally collapsed.&lt;/p&gt;
&lt;p&gt;And I think this is especially puzzling since it&#39;s Blaugust, surely people are blogging like crazy right now, right? I&#39;m not sure if this simply has to do with how Bubbles calculates its algorithm: &lt;code&gt;Score = (1 + Votes × 25) / (EffectiveAge + 2) ^ 1.4&lt;/code&gt;. Now, this is indeed an algorithm, but it is not an impossible black box algorithm that is unknowable to even the engineers who designed it, the way corporate social media has. It&#39;s just plain math.&lt;/p&gt;
&lt;h2 id=&quot;the-popularity-contest&quot; tabindex=&quot;-1&quot;&gt;The Popularity Contest&lt;/h2&gt;
&lt;p&gt;One thing I don&#39;t like is the language used by the site, the about page specifically says that &amp;quot;you vote on the posts worth reading. The good stuff floats to the top. Everything else sinks over time.&amp;quot; And this couldn&#39;t be further from the case in my experience. Posts on page 10 of the aggregator with zero upvotes are typically as interesting, or more interesting, than whatever is on the front page.&lt;/p&gt;
&lt;p&gt;Also, something new I just noticed: there&#39;s now a &lt;a href=&quot;https://bubbles.town/classics&quot;&gt;classics page&lt;/a&gt; which shows off the all-time most upvoted posts and websites. As of writing, I&#39;m in third place, with 340 upvotes from 156 voters. Zoo-Wee Mama! From a statistical curiosity perspective, I think it&#39;s neat to have a page like this, but for someone who already thinks &lt;a href=&quot;https://osteophage.neocities.org/essays/bubbles-problems&quot;&gt;Bubbles is a popularity contest&lt;/a&gt;, this just amplifies that argument.&lt;/p&gt;
&lt;p&gt;I&#39;m a writer that is deeply uninterested in how many visits my site gets or upvotes my posts get on Bubbles. But I know that&#39;s not the case for everyone. Some people get anxious or worried about what others will think, and Bubbles gives a rather obvious and problematic framing to that. As soon as you become focused on trying to cater to an audience instead of writing what YOU want to write, the entire process will quickly become unfun and burdensome. So if metrics are something you care about, I&#39;d recommend not putting your site on Bubbles, or ask for it to be removed.&lt;/p&gt;
&lt;h2 id=&quot;the-categorization&quot; tabindex=&quot;-1&quot;&gt;The Categorization&lt;/h2&gt;
&lt;p&gt;Bubbles has categories, and the way they work is rather neat. From the &lt;a href=&quot;https://bubbles.town/faq&quot;&gt;FAQ&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Categories are decided by a small statistical classifier (Naive Bayes) that ships with the binary and runs on the Bubbles server, with no external service involved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is far from perfect, and after using the aggregator for some time I would recommend adding more categories to help with filtering. Specifically, I&#39;d love the ability to filter out genAI posts rather than all tech posts in general, since another criticism I have is that man, there are a lot of people writing about genAI on Bubbles. That doesn&#39;t have anything to do with Bubbles specifically, that&#39;s just a byproduct of people writing about genAI a lot in general.&lt;/p&gt;
&lt;p&gt;A &amp;quot;meta&amp;quot; category would also be great, to be able to filter out posts that themselves are about Bubbles.town (like this one!).&lt;/p&gt;
&lt;h2 id=&quot;the-community&quot; tabindex=&quot;-1&quot;&gt;The Community&lt;/h2&gt;
&lt;p&gt;Another issue Bubbles has is community participation. A place like Bubbles can only ever be as good as the willingness people have to use it. I&#39;m a culprit here, as I do a bad job at upvoting posts I enjoy (this is a case everywhere I go, I am so forgetful of giving a heart on posts on Tumblr, Mastodon, Pillowfort, anywhere that has that ability). An aggregator only works if people interact and participate with it. Likewise, because the categories are defined automatically, they can be wrong (like my post on &amp;quot;Buying Them a Coffee&amp;quot; being categorized as food) and if you click on a category on a post, you can easily submit which one is more accurate.&lt;/p&gt;
&lt;p&gt;Commenting culture is also incredibly sparse on Bubbles. I understand it&#39;s a little awkward and clunky, since you need to sign in and post comments via Mastodon, so I&#39;m hoping people are instead just commenting directly on people&#39;s sites, &lt;a href=&quot;http://plaintext.brennan.day/knitting-the-web-we-need-interlinkers/&quot;&gt;linking to posts they like&lt;/a&gt;, or directly emailing bloggers.&lt;/p&gt;
&lt;p&gt;I also will admit I have some beef with seeing certain bloggers on Bubbles, such as &lt;a href=&quot;https://www.joanwestenberg.com/&quot;&gt;Joan/JA Westenberg&lt;/a&gt; who has over 14,000 subscribers on the Nazi-complacent platform Substack, and who was previously &lt;a href=&quot;http://plaintext.brennan.day/did-joan-westenberg-memoryhole-web3-nfts/&quot;&gt;heavily involved in the Web3/NFT scene before deleting everything regarding that&lt;/a&gt;. Sure, Bubbles should be for small, independent creators who aren&#39;t just looking for another revenue source. And maybe I&#39;m hypocritical for that criticism given my own stats, but I like to think at least I actually deeply care about the IndieWeb and haven&#39;t just decided to hop to the next most viable market.&lt;/p&gt;
&lt;h2 id=&quot;the-heart-of-it&quot; tabindex=&quot;-1&quot;&gt;The Heart of It&lt;/h2&gt;
&lt;p&gt;Overall, Bubbles.town is a weird project. It is definitely a &amp;quot;ask for forgiveness instead of beg for permission&amp;quot; kind of project. As in, if someone told me they had the idea of starting an IndieWeb aggregator using genAI and collect thousands of personal sites and blogs without asking anyone, I would implore them not to do that and think it was a terrible idea.&lt;/p&gt;
&lt;p&gt;But Benjamin did this, and I would be dishonest if I said I didn&#39;t appreciate Bubbles.town. He has always been quick to respond and makes it easy to remove your blog.&lt;/p&gt;
&lt;p&gt;I also want to add that the &lt;code&gt;BubblesBot&lt;/code&gt; has been excellent in terms of crawling my site respectfully:&lt;/p&gt;
&lt;div class=&quot;scroll&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;User agent&lt;/th&gt;
&lt;th&gt;Requests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chrome&lt;/td&gt;
&lt;td&gt;429,811&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firefox&lt;/td&gt;
&lt;td&gt;343,546&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Other&lt;/td&gt;
&lt;td&gt;287,038&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile Safari&lt;/td&gt;
&lt;td&gt;177,268&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chrome Mobile&lt;/td&gt;
&lt;td&gt;108,253&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safari&lt;/td&gt;
&lt;td&gt;90,246&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Googlebot&lt;/td&gt;
&lt;td&gt;44,564&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge&lt;/td&gt;
&lt;td&gt;32,076&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NetNewsWire&lt;/td&gt;
&lt;td&gt;9,152&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BubblesBot&lt;/td&gt;
&lt;td&gt;9,032&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;p&gt;If you view Bubbles as just one of many ways to interface with the independent web, along side &lt;a href=&quot;https://ooh.directory/&quot;&gt;directories&lt;/a&gt;, &lt;a href=&quot;https://marginalia-search.com/&quot;&gt;alternative search engines&lt;/a&gt;, &lt;a href=&quot;https://brisray.com/web/webring-list.htm&quot;&gt;webrings&lt;/a&gt; , &lt;a href=&quot;https://brennan.day/blogroll&quot;&gt;blogrolls&lt;/a&gt;, &lt;a href=&quot;https://url.town/&quot;&gt;human curation&lt;/a&gt; and also use other aggregators like &lt;a href=&quot;https://nuchronic.uk/&quot;&gt;nuchronic&lt;/a&gt; or &lt;a href=&quot;https://scour.ing/&quot;&gt;scour.ing&lt;/a&gt;, then it&#39;s a great tool.&lt;/p&gt;
&lt;p&gt;And if you&#39;re someone that&#39;s totally uninterested in aggregators and think they&#39;re problematic, that&#39;s also really understandable! There&#39;s no &amp;quot;right&amp;quot; way to IndieWeb or share yourself, and I&#39;ll keep trying to find new ways to discover people and sites and blogs that don&#39;t rely on automated aggregators. The discovery is sometimes the best part.&lt;/p&gt;
&lt;p&gt;And, likewise, you are somebody that has a personal blog that you&#39;re active on, particularly if it&#39;s of a niche interest, I recommend you submit your blog to be added to Bubbles. Adventure is out there!&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>A 450-year History of Blogging</title>
		<link href="http://plaintext.brennan.day/a-450-year-history-of-blogging/"/>
		<updated>2026-08-25T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-450-year-history-of-blogging/</id>
		<content type="html">&lt;p&gt;If you take a look at &lt;a href=&quot;https://brennan.day/&quot;&gt;my website&#39;s homepage&lt;/a&gt;, you&#39;ll note that it&#39;s titled &amp;quot;Brennan&#39;s Weblog.&amp;quot; This is my attempt to pay homage to the original portmanteau--web log, which only became &amp;quot;blog&amp;quot; in April 1999, when programmer Peter Merholz jokingly shortened the word on his site Peterme.com by breaking it into the phrase &amp;quot;we blog.&amp;quot; Because we do, don&#39;t we?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&#39;ve decided to pronounce the word &amp;quot;weblog&amp;quot; as wee-blog. &lt;a href=&quot;https://web.archive.org/web/19991013021124/http://peterme.com/index.html&quot;&gt;Or &amp;quot;blog&amp;quot; for short.&lt;/a&gt;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This seems like it would be the origin point of the word, but that&#39;s far from the case. I would be remiss if I began the history of blogging somewhere in the 1980s, because that only explains the &amp;quot;web&amp;quot; part and not the &amp;quot;log&amp;quot; part. For that, we need to go back much further.&lt;/p&gt;
&lt;p&gt;Perhaps unsurprisingly, this begins in the maritime tradition with a literal, wooden log:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In his 1574 A Regiment for Sea, William Bourne describes how, with a line tied to it, a log was thrown over the side of the ship, and the length of line was measured &amp;quot;while someone turned a minute sand glass&amp;quot; or in some cases &amp;quot;spoke some number of woordes [sic]&amp;quot; in order to measure the ship&#39;s speed.[2] (The length was eventually counted by literal knots tied in the line at regular intervals; thus, our equally iconic term &amp;quot;knots.&amp;quot;) Recordings of the log-derived information, eventually replaced by the &amp;quot;chip log,&amp;quot; a weighted wooden quadrant, were entered into what would come to be called the &amp;quot;log board.&amp;quot;&lt;br /&gt;
-- Janet Sorenson, &lt;a href=&quot;https://shc.stanford.edu/arcade/interventions/logging-ships-log-medium-0&quot;&gt;&amp;quot;Logging-In: The Ship&#39;s Log as Medium&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A log board helped sailors record a ship&#39;s speed and direction hour by hour before writing them into the permanent official logbook. This was an instrument of navigation, a tool for cataloguing the wind and weather as much as figuring out your location during a voyage within the endless blue horizon of an unforgiving saltwater sea.&lt;/p&gt;
&lt;p&gt;The term &amp;quot;log&amp;quot; moved from maritime use to broader record-keeping during the 19th and 20th centuries as the practice of writing details in a ship&#39;s logbook was adopted by other industries. Engineers, scientists, and aviators utilized the same style of sequential, chronological record-keeping.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Flight logs have been around as long as aviation itself. The Wright brothers kept detailed notebooks, recording dispassionately the results of their experiments in building the first airplane.&amp;quot;&lt;br /&gt;
-- Tom LeCompte, &lt;a href=&quot;https://www.smithsonianmag.com/air-space-magazine/the-book-of-hours-136493265/&quot;&gt;&amp;quot;The Book of Hours&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transition established the log as more of a default structure for recording events over time, regardless of context. The log became a way of thinking about information.&lt;/p&gt;
&lt;p&gt;When looking at the transition to computer systems, you&#39;d think that this is the point where we begin talking about web logs--but that would be missing several decades of additional history.&lt;/p&gt;
&lt;p&gt;It was the start of the 1960s when &amp;quot;logging on&amp;quot; to computers entered the nomenclature. As in, the computing sense of &lt;a href=&quot;https://www.etymonline.com/word/log#etymonline_v_43590&quot;&gt;&amp;quot;gain access to a secure machine or system&amp;quot;&lt;/a&gt; and shares the same etymological roots.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Whether it was CTSS or a similar system, I envision an engineer, probably at MIT, somewhere between 1959 and 1961, needing to describe a new user command for the system they were creating. We get a lot of neologisms from these situations, and it&#39;s very possible &lt;strong&gt;log in&lt;/strong&gt; dates from just this moment in history.&amp;quot;&lt;br /&gt;
-- James Reffell, &lt;a href=&quot;https://www.designcult.org/2011/08/why-do-we-call-in-logging-in.html&quot;&gt;&amp;quot;The Secret History of Log In&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;Logging on&amp;quot; came from centuries of logs as the place where action met record.&lt;/p&gt;
&lt;p&gt;It took all the way until 1997 for the &amp;quot;web log&amp;quot; to finally make its debut, thanks to essayist and (shocker) blogger Jorn Barger:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Blogs have come a long way since Dec. 17, 1997, when Jorn Barger coined the term &amp;quot;weblog&amp;quot; to describe the list of links on his Robot Wisdom website that &amp;quot;logged&amp;quot; his internet wanderings. In the decade hence, blogs have come to dominate the net, from 100 million personal diaries to the breaking news sections of the august *The New York Times.&amp;quot;&lt;br /&gt;
-- Jenna Wortham, &lt;a href=&quot;http://web.archive.org/web/20090506134657/https://www.wired.com/entertainment/theweb/news/2007/12/blog_anniversary&quot;&gt;&amp;quot;After 10 Years of Blogs, the Future&#39;s Brighter Than Ever&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But, really, the actual first blogs simply were not called web logs and were more well-known as online diaries at the time. Justin Hall, someone &lt;a href=&quot;http://plaintext.brennan.day/knitting-the-web-we-need-interlinkers/#justins-links&quot;&gt;I&#39;ve referenced in previous articles&lt;/a&gt;, began eleven years of personal blogging in 1994 while a student at Swarthmore College.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For 11 years, Justin Hall was dedicated to documenting his life online. Composing more than 4,800 pages from nearly a decade of constant writing, which he posted on his site, www.links.net, Hall became a pioneer among online diarists and Web loggers.&amp;quot;&lt;br /&gt;
-- Reyhan Harmanci, &lt;a href=&quot;https://web.archive.org/web/20050305110627/http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/02/20/MNGBKBEJO01.DTL&quot;&gt;&amp;quot;Time to get a life -- pioneer blogger Justin Hall bows out at 31&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And if you ask the Encyclopedia Britannica, it&#39;ll tell you that the first blog was created by &lt;a href=&quot;https://www.britannica.com/topic/blog&quot;&gt;Tim Berners-Lee in 1992&lt;/a&gt;. Who counts as the true first blogger depends on whether your definition is a web log of links, an online diary, or simply a regularly updated personal page.&lt;/p&gt;
&lt;p&gt;Online journal writing was novel. There was the new, strange intimacy of writing for an audience you couldn&#39;t see. A paper diary is written for the self and usually hidden in the back of a drawer. A weblog is written for the self as well, but published to the world. The tension between private reflection and public performance has defined the act of blogging ever since. In fact, in order to distinguish web journal authors from keepers of traditional paper-and-ink diaries, one of the terms created was the adorable &lt;a href=&quot;https://www.escribitionist.org/&quot;&gt;&amp;quot;escribitionist&amp;quot; by Erin Venema in 1999&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also in 1999, entrepreneurs Ev Williams and Meg Hourihan (who knew Merholz personally in San Francisco, the guy who made the word blog, remember?) launched &lt;a href=&quot;https://blogger.com/&quot;&gt;Blogger.com&lt;/a&gt; out of their startup Pyra Labs. Williams is generally credited as the one who popularized turning &amp;quot;blog&amp;quot; into a verb (&amp;quot;to blog&amp;quot;) and coined &amp;quot;blogger&amp;quot; as the person doing it, cementing the noun/verb/agent-noun family we use today.&lt;/p&gt;
&lt;p&gt;And decades later, Williams would go on to found &lt;a href=&quot;https://medium.com/&quot;&gt;Medium.com&lt;/a&gt;, the platform where I currently make my living. He created the site in 2012 to provide a clean, simple space for thoughtful, long-form writing alternative to the 140-character limit of Twitter.&lt;/p&gt;
&lt;p&gt;After taking this journey, I&#39;m rather thankful this is a rare occasion where the origins of a word and its lineage are surprisingly straightforward and easy to research and cite.&lt;/p&gt;
&lt;h2 id=&quot;where-we-are-now&quot; tabindex=&quot;-1&quot;&gt;Where We Are Now&lt;/h2&gt;
&lt;p&gt;We&#39;re a quarter-way through the 21st century, where does blogging stand today? Well, if you&#39;re a so-called hustler trying to find a niche to gameify SEO in order to make passive income, you&#39;re probably a lot better off making short-form video content instead.&lt;/p&gt;
&lt;p&gt;But the blogosphere itself is incredibly healthy and thriving. There are &lt;a href=&quot;https://www.techbusinessnews.com.au/blog/how-many-blogs-are-there-in-the-world-blogging-statistics-2023/&quot;&gt;over 600 million blogs&lt;/a&gt; in 2026. It seems like I&#39;m in the 14% minority of bloggers that post +2,000 words per entry.&lt;/p&gt;
&lt;p&gt;Blogging is one of the most powerful forms of expression in human history. A modern digital parallel to the 15th-century printing press, scaling the democratization of ideas from physical mass production to instant global reach.&lt;/p&gt;
&lt;p&gt;There are no gatekeepers, no barriers to entry. Anyone with an internet connection can publish their thoughts for free on platforms or very low cost on their own. And unlike static print, blogs enable two-way conversations through comments and instant updates.&lt;/p&gt;
&lt;p&gt;In the early days, blogs were a destination you checked, the site you visited. Today, the blog is no longer the default for sharing things on the Internet; it&#39;s much more of a choice now. And choosing a blog means choosing a space you control, a format that allows for depth, and a record that remains yours.&lt;/p&gt;
&lt;p&gt;We&#39;ve come a long way since the sailors throwing logs into the ocean&#39;s waters, since the loglines and logbooks, since Justin&#39;s Links--and we&#39;re all still doing the same things: marking time, noting where we&#39;ve been, and leaving a record for whoever comes after. And we all have an opportunity in this thin slice of human history where any of us can write and publish whatever we like to the world. I&#39;m exercising that right, are you?&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>I&#39;m Looking for Love</title>
		<link href="http://plaintext.brennan.day/i-m-looking-for-love/"/>
		<updated>2026-08-24T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/i-m-looking-for-love/</id>
		<content type="html">&lt;p&gt;Yesterday, I posted &lt;a href=&quot;https://social.lol/@brennan/117141420526104806&quot;&gt;a couple&lt;/a&gt; &lt;a href=&quot;https://social.lol/@brennan/117142243698491730&quot;&gt;toots&lt;/a&gt; sharing some rather heated exchanges I had with anonymous blogger &lt;a href=&quot;https://unstory.eu/&quot;&gt;Unstory&lt;/a&gt;, who I previously &lt;a href=&quot;http://plaintext.brennan.day/suspect-happiness-in-pursuit-an-anti-interview-with-unstory/&quot;&gt;failed to interview properly&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But don&#39;t worry, this was just a mere lover&#39;s spat you see, and I--&lt;/p&gt;
&lt;p&gt;Hey, wait a minute. What did Unstory write to me in his most recent email?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There is nothing better than what is it. You can&#39;t change anything. It has no meaning. Love is nonsense, it does not exist in a way that people romanticizing it. It&#39;s fake story. It&#39;s romanticized story about the business, necessity, needs. There is not one cell in your body that loves you. Water does not love you. You don&#39;t love anyone and nobody loves you. It&#39;s fairy tale like gods, heaven and seven-headed dragon.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Oh, this really explained everything for me.&lt;/p&gt;
&lt;p&gt;On one hand, I really hope Unstory has just been fucking with me the entire time at this point, and is simply just playing the role of maximum cynic nihilist to get underneath my skin, and that I&#39;m naïvely taking the bait (as I typically do).&lt;/p&gt;
&lt;p&gt;Otherwise, if this is real, then it is heartbreaking. And I really mean that. I cannot imagine someone who views love this way.&lt;/p&gt;
&lt;p&gt;We all ought to be born into a loving world, with a loving family. I know for many people, that is not reality, but there are usually still people in our life that give us love no matter what, right?&lt;/p&gt;
&lt;p&gt;Even the pedantic, overzealous materialist who smugly explains that love is actually mere electrochemical reactions and biological hormones which have a primary purpose of reproduction is someone who still recognizes that love exists--that people have a connection to one another regardless of how or why that connection takes place. And that connection shows up in the body.&lt;/p&gt;
&lt;p&gt;Researchers put &lt;a href=&quot;https://journals.sagepub.com/doi/abs/10.1111/j.1467-9280.2006.01832.x&quot;&gt;spouses in an fMRI machine, threatened them with electric shocks&lt;/a&gt;, and watched their brains light up with fear until their partner took their hand. The threat response measurably dropped, and the happier the marriage, the bigger the drop. &lt;a href=&quot;https://news.harvard.edu/gazette/story/2025/05/things-money-cant-buy-like-happiness-and-better-health&quot;&gt;Harvard&#39;s 87-year Study of Adult Development&lt;/a&gt;, the longest-running study of human life ever conducted, has tracked hundreds of men and their families since 1938 and keeps arriving at the same stubborn answer. The people who fared best were the ones who leaned into their relationships, and loneliness carries a health risk on par with smoking. &lt;a href=&quot;https://www.kinship.com/dog-lifestyle/oxytocin-chemistry-between-people-and-dogs-real&quot;&gt;Oxytocin&lt;/a&gt;--the hormone that spikes when a mother gazes at her newborn--rises in both a dog and its person when they lock eyes.&lt;/p&gt;
&lt;p&gt;None of this is metaphor. It&#39;s a body responding to another body, a nervous system settling because another nervous system is near. Real, tangible, physical fact.&lt;/p&gt;
&lt;p&gt;To place love in the same category as the abstract, unknowable God or Heaven or fantastical seven-headed dragon is to believe it does not exist at all, whatsoever.&lt;/p&gt;
&lt;p&gt;If Unstory is not fucking with me, then the world has gravely failed him. Those who were meant to demonstrate and prove the existence of love to him at a young age failed him. And although we deeply disagree on many important things, I&#39;ve become rather endeared to Unstory and enjoy him in a wayward way, and I do not know if I could make him capable of understanding the existence of love, let alone how important it is. I&#39;ll once again quote Paulo Freire:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Because love is an act of courage, not of fear, love is a commitment to others. No matter where the oppressed are found, the act of love is commitment to their cause--the cause of liberation.&amp;quot;&lt;br /&gt;
―Pedagogy of the Oppressed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have felt love countless times in my life; the truth is, I fall in love so easily. And I try my best to practice unconditional love--a love that does not change or falter, regardless of how everything else does.&lt;/p&gt;
&lt;p&gt;And I have witnessed true love countless times in my life. The love parents have for their children, the love good teachers have for their students, the love of deep and supportive friendships. Just to name a few. I&#39;ve seen it in &lt;a href=&quot;https://www.pointofpride.org/blog/what-is-a-chosen-family&quot;&gt;chosen family&lt;/a&gt;, the kinship of Queers built out of necessity when their biological families turned them away. Friends became kin--showing up at the hospital bed, cooking the meal, holding the vigil, doing every unglamorous act a parent is supposed to do. I&#39;ve seen it in the &lt;a href=&quot;https://untag.com/blogs/news/chosen-family-the-heart-of-queer-community-and-resistance&quot;&gt;ballroom houses of Harlem&lt;/a&gt;, where a mother and father with no blood tie to their children built families out of nothing but the decision to love someone. I&#39;ve seen it in a mutual aid fridge stocked by neighbours who will never meet the people they feed. I&#39;ve seen it in a grandmother&#39;s hands, in a dog waiting at the door for hours, in the volunteer who drives a stranger to chemo every week without being asked twice. Love is everywhere you bother to look for it.&lt;/p&gt;
&lt;p&gt;I&#39;ve written before about how &lt;a href=&quot;http://plaintext.brennan.day/love-and-romance-in-the-times-of-our-apocalypse/&quot;&gt;romantic love seems impossible for many people in the present day&lt;/a&gt;, and I sympathize with that. Both &lt;a href=&quot;https://www.americansurveycenter.org/commentary/gen-zs-romance-gap-why-nearly-half-of-young-men-arent-dating/&quot;&gt;love&lt;/a&gt; and &lt;a href=&quot;https://ifstudies.org/in-the-news/adults-are-having-less-sex-than-ever-with-gen-z-seeing-the-steepest-decline-study&quot;&gt;sex&lt;/a&gt; are in decline for Generation Z adults.&lt;/p&gt;
&lt;p&gt;A lack of love in your life, though, does not mean there&#39;s a lack of love in the entire world. I desperately hope that there is a turn of events, and the monumental, transcendental power of love finds Unstory and pierces the impossibly dense armour he wears, and shakes him to his core, and makes him question everything that came before, and shakes the dust. I wish this for everyone.&lt;/p&gt;
&lt;p&gt;I know for me personally, I hate the idea of bothering others or making them uncomfortable, so I never approach somebody or proactively ask. All my previous relationships have been wonderful flukes, and they&#39;ve all been people who I met in person. I can&#39;t imagine any of the many dating apps actually working.&lt;/p&gt;
&lt;p&gt;All of this to say that I am, right now, looking for love. I am in a season of yearning! Dreams of an Internet boyfriend/girlfriend. And this post is an embarrassing declaration, as much as it is a genuine prayer. And I need to post this while I still have the courage to do so. How silly I am; how silly love is.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But all I want is the perfect love,&lt;br /&gt;
Though I know it&#39;s small, I want love for us all.&lt;br /&gt;
―Sufjan Stevens, &amp;quot;Impossible Soul&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>Le Flâneur, et Autres Mots Intraduisible</title>
		<link href="http://plaintext.brennan.day/le-flaneur-et-autres-mots-intraduisible/"/>
		<updated>2026-08-23T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/le-flaneur-et-autres-mots-intraduisible/</id>
		<content type="html">&lt;p&gt;Une &amp;quot;listicle&amp;quot; populaire qu&#39;on retrouve pas mal partout sur Internet, c&#39;est les mots et expressions d&#39;autres langues qui n&#39;ont pas de traduction directe vers l&#39;anglais. Le site &lt;a href=&quot;https://www.eunoia.world/&quot;&gt;&amp;quot;Eunoia&amp;quot;&lt;/a&gt;, par exemple, fait un bon travail pour cataloguer ça.&lt;/p&gt;
&lt;p&gt;Alors que la majorité du monde &lt;a href=&quot;https://www.iheardee.com/posts/bilingualism&quot;&gt;parle plus qu&#39;une langue&lt;/a&gt;, 78 à 80 % des &lt;a href=&quot;https://www.amacad.org/news/remaining-monolingual-surefire-way-america-fall-behind&quot;&gt;États-Unis parlent seulement l&#39;anglais&lt;/a&gt;. Résultat: les langues autres que l&#39;anglais sont traitées comme lointaines et inconnaissables, comme si elles portaient des propriétés mystiques et insaisissables--comme des mots qui, tout simplement, n&#39;auraient pas d&#39;équivalent en anglais.&lt;/p&gt;
&lt;p&gt;C&#39;est, évidemment, une façon de comprendre le langage qui est fausse et problématique. Les anglophones unilingues ne s&#39;en rendent probablement pas compte, mais cette attitude-là contribue à l&#39;exclusion et augmente les barrières pour celleux qui ne parlent pas anglais comme langue maternelle.&lt;/p&gt;
&lt;p&gt;L&#39;intraduisibilité, en linguistique, ça s&#39;appelle une lacune--ou, en anglais, un &amp;quot;lexical gap&amp;quot;. C&#39;est un sujet profond qui dépasse largement le cadre de cet essai, mais en gros: le &lt;a href=&quot;https://en.wikipedia.org/wiki/Untranslatability&quot;&gt;sens peut à peu près toujours être traduit&lt;/a&gt;, même si c&#39;est pas toujours avec une précision technique parfaite.&lt;/p&gt;
&lt;p&gt;Ceci étant dit, j&#39;pense que ce serait un exercice le fun et inoffensif d&#39;écrire sur plusieurs termes français précis que j&#39;ai croisés, qui n&#39;ont pas de traduction 1:1 vers l&#39;anglais, mais qui peuvent quand même être bien compris avec une couple de phrases un peu maladroites.&lt;/p&gt;
&lt;p&gt;Y&#39;a déjà certaines expressions qui sont pas traduites en anglais par défaut, comme &lt;strong&gt;déjà vu&lt;/strong&gt;, qui veut littéralement dire &amp;quot;already seen&amp;quot;. Pis sa p&#39;tite cousine moins connue, &lt;strong&gt;jamais vu&lt;/strong&gt; (&amp;quot;never seen&amp;quot;), qui est l&#39;opposé du déjà vu: un endroit, une personne ou un mot familier qui devient soudainement complètement étranger, bizarre, entièrement nouveau. Ou encore, &lt;strong&gt;presque vu&lt;/strong&gt; (&amp;quot;nearly seen&amp;quot;), cette sensation intense et frustrante d&#39;être à deux doigts d&#39;une épiphanie, d&#39;un souvenir, ou d&#39;un mot qui nous échappe. En anglais, on appelle ça being on the tip-of-the-tongue.&lt;/p&gt;
&lt;p&gt;Mais y&#39;a d&#39;autres mots français qui n&#39;ont pas de traduction directe. &lt;strong&gt;Dépaysement&lt;/strong&gt;, c&#39;est la désorientation (pas nécessairement négative) de se retrouver quelque part d&#39;inconnu, en dehors de son pays ou de son contexte habituel. &amp;quot;Homesickness&amp;quot; s&#39;en approche, mais c&#39;est pas ça pantoute--c&#39;est plus le sentiment lui-même de ne pas être chez soi, ce qui peut être aussi déstabilisant qu&#39;exaltant.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Retrouvailles&lt;/strong&gt;, c&#39;est la joie de retrouver quelqu&#39;un après une longue séparation. &amp;quot;Reunion&amp;quot; nomme l&#39;événement, mais ça, ça nomme le sentiment.&lt;/p&gt;
&lt;p&gt;Un de mes préférés, c&#39;est &lt;strong&gt;l&#39;esprit de l&#39;escalier&lt;/strong&gt;, littéralement &amp;quot;staircase wit&amp;quot;, soit le moment où la réplique parfaite te vient en tête seulement après que t&#39;as quitté la pièce.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Terroir&lt;/strong&gt;, c&#39;est la signature environnementale totale (le sol, le climat, la tradition) qui donne à un vin, un fromage ou un autre aliment son caractère particulier. Même en anglais, les critiques de vin et de bouffe utilisent juste &amp;quot;terroir&amp;quot;, parce que rien dans leur langue réussit à capturer ça au complet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jolie-laide&lt;/strong&gt;, c&#39;est une femme (traditionnellement) qui est frappante ou attirante justement parce que ses traits sont non conventionnels, pas classiquement &amp;quot;belle&amp;quot;. J&#39;pense que mes personnes préférées, physiquement, sont souvent de même. Pareillement, &lt;strong&gt;sortable&lt;/strong&gt;--littéralement &amp;quot;outable&amp;quot; en anglais--décrit si une personne est présentable assez pour être sortie en public.&lt;/p&gt;
&lt;h2 id=&quot;la-fl%C3%A2nerie&quot; tabindex=&quot;-1&quot;&gt;La Flânerie&lt;/h2&gt;
&lt;p&gt;Mais mon terme français préféré qui a pas d&#39;équivalent en anglais, c&#39;est peut-être flâner. Y&#39;a toute une histoire pis une culture derrière ce mot-là. Le poète Charles Baudelaire décrivait le flâneur comme un observateur, un vagabond attentif qui traite la ville comme une œuvre d&#39;art vivante. J&#39;vais citer mes sources plutôt que d&#39;essayer de le décrire moi-même:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Tiré d&#39;un mot français signifiant &amp;quot;flâner&amp;quot; ou &amp;quot;traîner&amp;quot;, le concept du flâneur s&#39;est développé à Paris au milieu du dix-neuvième siècle, avant de se répandre dans d&#39;autres villes européennes, particulièrement Berlin. Avant tout un observateur tranquille de la vie urbaine, le flâneur était quelqu&#39;un qui marchait à travers la ville, qui regardait, sans jamais vraiment participer à ce qu&#39;il voyait.&lt;/p&gt;
&lt;p&gt;--&lt;a href=&quot;https://www.theartstory.org/definition/flaneur/&quot;&gt;&lt;em&gt;The Art Story&lt;/em&gt;&lt;/a&gt; (ma traduction)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En anglais, y&#39;a le people watching, ok, mais ça décrit pas le rôle artistique élevé (ou peut-être prétentieux?) qu&#39;occupe le flâneur. Un livre anglais qui me vient en tête, c&#39;est &lt;a href=&quot;https://www.penguinrandomhouse.ca/books/531605/the-wander-society-by-keri-smith/9780143108368&quot;&gt;&lt;em&gt;The Wander Society&lt;/em&gt;&lt;/a&gt; de Keri Smith, une autrice surtout connue pour &lt;a href=&quot;https://www.goodreads.com/book/show/428862.Wreck_This_Journal&quot;&gt;&lt;em&gt;Wreck This Journal&lt;/em&gt;&lt;/a&gt;. Dans &lt;em&gt;Wander Society&lt;/em&gt;, Smith construit une espèce de version papier d&#39;un &lt;a href=&quot;https://en.wikipedia.org/wiki/Alternate_reality_game&quot;&gt;ARG&lt;/a&gt; où elle se retrouve embarquée dans une société secrète dédiée à l&#39;importance et à l&#39;émerveillement de la marche errante. C&#39;est vraiment agréable comme lecture, pis ça se lit vite--j&#39;le recommande.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La description que fait Baudelaire du flâneur est pleine de contradictions, ou du moins de jeux de paradoxes. Selon lui, pour être flâneur, il faut être dehors, dans la ville, en train de dévorer la culture. Mais cette traque de l&#39;extérieur doit devenir tellement naturelle qu&#39;elle finit par devenir ton seul vrai chez-toi.&lt;/p&gt;
&lt;p&gt;--Caroline Hagood, &lt;a href=&quot;https://kenyonreview.org/2018/02/flaneur-flaneuse-werewolf-roaming-social-wilderness/&quot;&gt;&lt;em&gt;Flâneur/Flâneuse: The Werewolf Roaming the Social Wilderness&lt;/em&gt;&lt;/a&gt; (ma traduction)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Selon &lt;em&gt;Journal18&lt;/em&gt;, le terme aurait des &lt;a href=&quot;https://www.journal18.org/issue15/the-revolutionary-origins-of-the-flaneur/#_edn1&quot;&gt;origines révolutionnaires&lt;/a&gt;, ce qui rajoute encore plus d&#39;intérêt et d&#39;intrigue.&lt;/p&gt;
&lt;p&gt;Y&#39;a quelque chose de beau à se laisser aller, à s&#39;abandonner à son environnement. J&#39;pense qu&#39;on se ferait tous du bien à errer davantage dans notre entourage, urbain ou pas, avec un regard neuf et frais. Y&#39;a toujours de la poésie qui nous entoure, constamment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[Baudelaire] décrit Guys comme quelqu&#39;un dont le génie réside dans une curiosité enfantine, qu&#39;il caractérise comme &amp;quot;le regard fixe et animalement extatique d&#39;un enfant devant quelque chose de nouveau, peu importe quoi.&amp;quot;&lt;/p&gt;
&lt;p&gt;Comme l&#39;enfant, qui &amp;quot;voit vraiment tout dans un état de nouveauté&amp;quot;, et qui est en conséquence &amp;quot;toujours ivre&amp;quot;.&lt;/p&gt;
&lt;p&gt;--Matthew Beaumont, &lt;a href=&quot;https://publicdomainreview.org/essay/charles-baudelaire-and-the-convalescent-flaneur/&quot;&gt;&amp;quot;Fevers of Curiosity: Charles Baudelaire and the Convalescent Flâneur&amp;quot;&lt;/a&gt; (ma traduction)&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>IndieWeb Ethos and Pagecord</title>
		<link href="http://plaintext.brennan.day/indieweb-ethos-and-pagecord/"/>
		<updated>2026-08-22T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/indieweb-ethos-and-pagecord/</id>
		<content type="html">&lt;p&gt;Around a month ago, I wrote &lt;a href=&quot;http://plaintext.brennan.day/softcore-first-hardcore-eventually-a-ladder-for-the-indieweb/&quot;&gt;an article&lt;/a&gt; about accessible approaches to the IndieWeb and meeting people where they are. I wrote about how writers who don&#39;t come from a technical background can utilize an already existing platform to focus solely on their writing, rather than the web development aspects of HTML and CSS.&lt;/p&gt;
&lt;p&gt;In the past couple days, there have been a couple responses to this, from &lt;a href=&quot;https://moonwriting.blog/you-can-choose-writing-over-tinkering&quot;&gt;Eetu of Moonwriting&lt;/a&gt; and Pagecord creator &lt;a href=&quot;http://web.archive.org/web/20260821044003/https://olly.world/hardcore-about-the-indieweb-ethos&quot;&gt;Olly&lt;/a&gt;, which was one of the platforms I initially recommended in the 4th paragraph of my article.&lt;/p&gt;
&lt;p&gt;Now, my article was itself a response to &lt;a href=&quot;https://neatnik.net/&quot;&gt;Adam&#39;s&lt;/a&gt; post, &lt;a href=&quot;https://neatnik.net/hardcore-indieweb/&quot;&gt;Hardcore IndieWeb&lt;/a&gt; where he explained how someone could host a site with &lt;a href=&quot;https://nearlyfreespeech.net/&quot;&gt;NFS&lt;/a&gt; for a penny a day and went over a lot of details about making a website. It was really helpful and cool, and my response was aimed at people who&#39;d be intimidated by such a guide and trying to explain progressive disclosure, and other possibilities of starting points.&lt;/p&gt;
&lt;p&gt;Eetu&#39;s response actually explained exactly why I think such a thing is important:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Brennan Kenneth Brown, a writer I admire, uses a ladder analogy to encourage people to learn HTML and CSS in order to eliminate dependence from platforms that could shut down any day.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes, exactly! (Also, thank you for the kind words.) Although he later continues by writing &amp;quot;[t]inkering with my site is something I would rather avoid,&amp;quot; I do not advocate for learning webweaving for the sake of tinkering. I advocate for it because the more dependencies we have, the more fragile our writing is on the web.&lt;/p&gt;
&lt;p&gt;It&#39;s awesome to have a platform where all you do is write and hit &amp;quot;publish&amp;quot; and thankfully there are multiple that exist; however, they come with trade-offs the way everything does. You either are paying money, or you&#39;re sacrificing privacy, or you&#39;ll have a lot of limits you wouldn&#39;t if you were doing things on your own.&lt;/p&gt;
&lt;p&gt;Learning to have a website of your own also has trade-offs, it&#39;s technical and time-consuming and at times, can be frustrating as hell. But one of the reasons I wrote the &lt;a href=&quot;http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/&quot;&gt;WEBMASTER@&lt;/a&gt; manifesto is because I believe far too many people have learned helplessness when it comes to technology. Everyone is capable of learning the basics to get their own website up.&lt;/p&gt;
&lt;p&gt;There is no gatekeeping here on my part. I want everyone to use their right to create and have digital autonomy and sovereignty. &lt;a href=&quot;https://brennan.day/collections/indieweb/&quot;&gt;My 40+ articles on the IndieWeb&lt;/a&gt; have been in an attempt to get people of all forms and from all backgrounds introduced to the independent web.&lt;/p&gt;
&lt;p&gt;And, likewise, if you&#39;d rather stay on a platform instead, that&#39;s okay! But don&#39;t say I&#39;m saying it&#39;s lesser or inferior--it isn&#39;t, and I don&#39;t think it is. There&#39;s no &amp;quot;right&amp;quot; way to IndieWeb. What I do think is that we&#39;ve seen products and services shut down time &lt;a href=&quot;https://ourincrediblejourney.tumblr.com/&quot;&gt;or get acquired&lt;/a&gt; and time and time again. At the very least, ensure you have local redundant personal backups of your writing and all your important works.&lt;/p&gt;
&lt;h2 id=&quot;case-study%3A-olly-and-pagecord&quot; tabindex=&quot;-1&quot;&gt;Case Study: Olly and Pagecord&lt;/h2&gt;
&lt;p&gt;Regrettably, a good example of why you shouldn&#39;t be dependent on a specific platform developed in real-time in the past couple days. Olly wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For me, by far the most important thing is supporting the IndieWeb ethos, not subjecting yourself to all the hassle that HTML, CSS, static sites, deployment and whatnot will bring you. I&#39;ve been programming professionally since 1995 and I can assure you it is a hassle, or will be one way or another!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I agree, it is a hassle, and if that&#39;s where his argument stopped, that&#39;d be fine by me because I say the same thing. But then he continued:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you choose the hardcore DIY approach, you&#39;re subjecting yourself to a lot of maintenance, unexplained errors and headaches that suck up a lot of time, or might require an LLM to fix it when you&#39;re stumped.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now, this is an edited version of what he wrote originally, which was that people would have to pay for an LLM to fix things when you&#39;re stumped.&lt;/p&gt;
&lt;p&gt;The IndieWeb has a general anti-genAI sentiment the way most creative subcultures do, and people pointed out that this was a weird counterargument to make. People can ask others (that&#39;s what community is all about) or simply do a web search to try to find a solution to the problem. No LLMs required.&lt;/p&gt;
&lt;p&gt;Olly himself has not made it a secret that he uses &lt;a href=&quot;http://web.archive.org/web/20260822081209/https://olly.world/328879bb&quot;&gt;LLMs like Claude&lt;/a&gt; to build Pagecord. From February of this year:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Claude thinks I should scale Pagecord by switching to bare metal. It&#39;s an AI after my own hacker heart! It takes me right back to those halcyon days of racking up servers in 2012.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But Olly became increasingly upset at people criticizing the original remark he made. He&#39;s subsequently deleted his Mastodon account and &lt;a href=&quot;https://cdn.some.pics/brennan/6a88d72620a66.png&quot;&gt;now is on Twitter&lt;/a&gt; exclusively, where he pays for a blue checkmark beside his name.&lt;/p&gt;
&lt;p&gt;It&#39;s okay to be sensitive, and it&#39;s also okay to fuck up (I&#39;ve fucked up plenty worse myself) but when you&#39;re a creator with a public-facing project like Pagecord, you need to be able to handle criticism, even when it&#39;s unfair or aggressive. This is the Internet. Many marginalized folks face far worse harassment for simply existing.&lt;/p&gt;
&lt;p&gt;I think, too, if you&#39;re going to make a product and market it as &amp;quot;a product that is built around [IndieWeb] ethos&amp;quot; and call yourself an &amp;quot;IndieWeb builder,&amp;quot; then being pro genAI and being a paying user of Twitter are both going to raise questions from people. Because neither of those are generally considered IndieWeb ethos--at all.&lt;/p&gt;
&lt;p&gt;Olly wrote on his blog in a now deleted post titled &amp;quot;Social Faux Pas&amp;quot; about how &amp;quot;Mastodon was just as toxic as X&amp;quot; (and yet he seems fine being on X and not Mastodon) in response to this. Hm.&lt;/p&gt;
&lt;p&gt;I know this article I&#39;m writing right now could be taken in bad faith, and seen as continuing to contribute to the so-called &amp;quot;witch hunt,&amp;quot; but I&#39;m not telling you to stop using Pagecord if you do use it. I don&#39;t think Olly is a bad person. Nor would I dissuade somebody from starting out with it. I still think it has a lot of cool features, which I&#39;ve written previously time and time again. But it certainly &lt;em&gt;is&lt;/em&gt; good and important to be aware and mindful of how the creators of the platforms you depend on operate, and why I recommend eventually trying your hand at hosting things yourself in the first place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; Since writing this, omg.lol user &lt;a href=&quot;https://omg.lol/love&quot;&gt;love&lt;/a&gt; has shared the following:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I stopped using pagecord and went to self hosted for my blog when I realized how much the admin relies on LLM. actually, he fed the entirety of my 26 year blog into Claude to figure out how to port it to pagecord, without my prior consent. I only knew afterward when I read his blog on how he resolved the situation&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Olly wrote a blog post, &lt;a href=&quot;https://archive.ph/nXVhi&quot;&gt;proud of his solution&lt;/a&gt;, where he did not even read the output of the LLM before pushing its code to production. Now, this is fine for a personal project, but Pagecord is an actual service people pay for and have real, sensitive data attached to.&lt;/p&gt;
&lt;p&gt;Olly seems to be wholly callous to the privacy and security implications of his actions for the people that use his products.&lt;/p&gt;
&lt;p&gt;Love continued:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It felt really invasive because those were blogs that were written since I was 10. a lot of them were really personal too, like how I started dealing with death of loved ones, personal health struggles (mostly mental like suicidality etc). they are public now but a lot of those started as private. I think a lot of times writing gets treated as the red headed stepchild when it comes to infringement - it&#39;s not as visibly bad like drawing genAI. but I spent decades refining my skill of writing both fiction and non fiction and to think it was fed to an AI without my consent has grossed me out more and more as time has gone on, especially with the subject matter being very personal and dark at times.&lt;br /&gt;
&amp;quot;I talked to my husband about it and he was like &amp;quot;well if your blog was public at any point and is public now then its definitely already been scraped by AI&amp;quot; and I&#39;m like there&#39;s a difference between me making something public and a rogue agent lifts it versus me entrusting a third party with the data and it gets pushed to an LLM. I also have the windows on my house fully open so someone with a nice camera could take pictures of the inside of my house, which would suck, but that feels somehow less invasive than if I invited a new friend in and they took pictures from inside the house while I was in the bathroom.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>Writing By Accident &amp; Surrendering On Purpose</title>
		<link href="http://plaintext.brennan.day/writing-by-accident-and-surrendering-on-purpose/"/>
		<updated>2026-08-21T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/writing-by-accident-and-surrendering-on-purpose/</id>
		<content type="html">&lt;p&gt;It&#39;s been a while since I allowed myself to just pour freely onto the page. I admit I&#39;ve noticed myself getting rut-barrelled into the ground again--getting caught up in the formula of writing, standardized. The desire path becoming the only road taken. Has it been good? Maybe. But the sputtering is present and becoming louder. Oil leaking from the engine.&lt;/p&gt;
&lt;p&gt;It&#39;s the 20th day of August, and the 21st day I&#39;ve written consecutively. I&#39;ve always taken a day or two break each week for the past year, but I&#39;ve been pushing myself to write each day of the month for Blaugust.&lt;/p&gt;
&lt;p&gt;Surprisingly, there have been a handful of good posts, in spite of the endless churning. But when I find myself falling asleep each night, there&#39;s a recurring nebulous thought. Rainbow-shaded, and just out of reach: What will I write about tomorrow?&lt;/p&gt;
&lt;p&gt;Each day, the pragmatic and practical becomes a deeper, darker chasm. I am somebody who attempts to take a broad, lengthwise view of things. The sight &lt;a href=&quot;http://plaintext.brennan.day/12-000-generations-on-deep-time-grief-and-the-body/&quot;&gt;from the long horizon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And yet, here I am writing with velocity and frantic compulsion for months in the now. A steep voice in my mind reminds me how precious and violent life is. Fragile and finite and to not take any moment for granted. As though I can visualize the red, blinking numbers counting down how many seconds I have, pulsing above my head.&lt;/p&gt;
&lt;p&gt;As &lt;a href=&quot;http://plaintext.brennan.day/outjerked-by-the-trickster/&quot;&gt;I wrote about&lt;/a&gt; a few days ago, I&#39;ve found myself as the sole subject of a satire &lt;a href=&quot;https://circlejerk.blog/&quot;&gt;circlejerk blog&lt;/a&gt; and I ask, why me? Five posts, now. It turned out that the anonymous writer behind the blog is part of the omg.lol community, who was silently reading an IRC conversation I was having with others about the blog.&lt;/p&gt;
&lt;p&gt;It conjures the image of the shy wallflower at the dance. The deep thinker who doesn&#39;t dare speak out loud in front of everyone, but is more mindful about what&#39;s going on more than anyone else. Life blooms in ruminating darkness just as much as in warm sunshine. I&#39;ve been in this position so, so many times throughout my life. I don&#39;t like taking up space, and I don&#39;t want to bother anybody by my mere existence, but my mind never turns off.&lt;/p&gt;
&lt;p&gt;Coincidentally, I had a &lt;a href=&quot;https://social.lol/@brennan/117125029868261571&quot;&gt;hateful threat&lt;/a&gt; sent to me yesterday, and of course a mind like mine contemplated if it was the same person. After reviewing logs, it turned out to be unrelated.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Clarification:&lt;/strong&gt; I want to make it clear that my site has an anonymous guestbook that is completely independent and detached from omg.lol. I choose to interact with and make note of when I receive incendiary comments there and elsewhere. That&#39;s entirely my responsibility, as are its consequences. While I think it&#39;s &lt;em&gt;weird&lt;/em&gt; that someone in the omg.lol community would make a satire site dedicated to me (another community member), I don&#39;t think it&#39;s harassment. It&#39;s just weird. People are allowed to be weird. Annoyance is the price we pay for community. None of my negative experiences have had anything to do with my connection to omg.lol. I didn&#39;t think I needed to spell that out, but clearly I need to.&lt;/p&gt;
&lt;p&gt;I&#39;ve also been thinking about the epistolary and missives I&#39;ve been exchanging with &lt;a href=&quot;https://unstory.eu/&quot;&gt;Unstory&lt;/a&gt;, the peasant anonymous blogger whose blog is being parodied by circlejerk in the first place.&lt;/p&gt;
&lt;p&gt;You sometimes encounter people on the Internet who have a compulsive pathology towards sockpuppeting--you will think you&#39;re in a group, but there&#39;s just a single individual spinning a dozen different plates. The singular is never sufficient; the emptiness is too vast. The thousand-mask catfish of dead Internet theory. And I thought for a moment--what if Unstory and Circlejerk.blog and the anonymous hate message were all the same person?&lt;/p&gt;
&lt;p&gt;But the truth is less interesting and dramatic: I get under many people&#39;s skin, not just one. I am abrasive, and often impossible.&lt;/p&gt;
&lt;p&gt;Anyways, I want to share some of what Unstory wrote to me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Carnival, war, greed, whatever. It does not matter. Those are just current visible &amp;quot;corpses&amp;quot;. Mind behind it is the cause. Topic, person, label does not really matter. It&#39;s how mind works.&lt;br /&gt;
&amp;quot;Here in Slovakia like half of the population were &amp;quot;communists&amp;quot; before 1989. Then they become democrats, like in 1939 they were national socialists. The same people. They were peasants, Slavic. They became Christians by force. They did not want anything from that. It just happened to them.&lt;br /&gt;
&amp;quot;This is also the reason I did not write a word for almost two weeks. There is nothing I can add. Whatever topic I found that bothers my mind, I found it&#39;s the result of the same mind&#39;s pattern. Even already written articles are all practically about the same thing.&lt;br /&gt;
&amp;quot;Recently I have pain in my back. Bending down is very hard, sitting is so so, even while standing there is a pain. My mind obviously use accumulated knowledge to telling me the story about it, explaining the thing.&lt;br /&gt;
&amp;quot;But the reality is, body knows what&#39;s happening. And body is dealing already with it, no matter what I think about it. And it will fix it without consulting the mind. I will don&#39;t know what it was and why. I will end with just story about it. Like this one I am writing you right now.&lt;br /&gt;
&amp;quot;Whatever words are out, on my website, your website, email, whatever. Those are just illusions ;/ Nobody can capture life with words. So your writing, my writing, Google&#39;s CEO writing, president&#39;s writing are the same hallucinations. And all have the same value, zero.&lt;br /&gt;
&amp;quot;Funny, isn&#39;t it? Many write books, studies about it for centuries. Theories, ideologies, religions were created based on that. And not a once it captured the reality. Some who wrote about it were killed, jailed, exiled, some were promoted, rewarded. It mostly depended on the current narrative, how punish/reward system that time was setup.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The IndieWeb carnival theme, hosted by &lt;a href=&quot;https://thoughts.uncountable.uk/august-2026-indieweb-carnival-purpose/&quot;&gt;Chris Shaw&lt;/a&gt; this month, is purpose. What is my purpose--and what is the purpose of this blog?&lt;/p&gt;
&lt;p&gt;I have a &lt;a href=&quot;https://brennan.day/why&quot;&gt;/why&lt;/a&gt; page and a &lt;a href=&quot;https://brennan.day/values&quot;&gt;/values&lt;/a&gt; page, both dedicated to answering the question. And of course I&#39;ve &lt;a href=&quot;http://plaintext.brennan.day/a-thousand-cranes-why-i-write-every-day/&quot;&gt;written blog posts&lt;/a&gt; about why. I&#39;m folding a thousand cranes, I&#39;m sending a thousand messages in bottles to sea. I&#39;m building sandcastles before the tide comes in.&lt;/p&gt;
&lt;p&gt;In reality, this is a lack of an answer. The truth is I don&#39;t really have any idea. I just keep moving forward. My fingers keep typing, each day. The truth is beyond my understanding. How strange it is to be anything at all.&lt;/p&gt;
&lt;p&gt;I&#39;ve been finalizing my blog, in a way. My &lt;a href=&quot;https://brennan.day/death&quot;&gt;/death&lt;/a&gt; page has been updated. I did a full backup of over 400 pages on the &lt;a href=&quot;http://web.archive.org/web/sitemap/brennan.day&quot;&gt;Wayback Machine&lt;/a&gt; and &lt;a href=&quot;https://brennanday.neocities.org/&quot;&gt;Neocities&lt;/a&gt;. I&#39;ve been accepted into &lt;a href=&quot;https://rogue-scholar.org/communities/brennan/records&quot;&gt;Rogue Scholar&lt;/a&gt;, giving my articles on science a proper DOI. Surely, at some point, I will reduce the output, or maybe take a break, or maybe stop writing altogether. It is still impossible for me to fathom, but I can see the horizon of diminishing autumn returns.&lt;/p&gt;
&lt;p&gt;In the morning, at my desk beside my bed, I take my abalone shell and smudge sweetgrass and wild sage. I ask the medicine what my purpose is. Leaves and grass burn slowly from ember to ash. We are all fated to this. Ember to ash. Beautiful mulchy wormfood to nourish what grows slowly and does not take more than it needs.&lt;/p&gt;
&lt;p&gt;The opposite of purpose is not meaninglessness. It is accidental. I do not think I am doing any of this on purpose. I focused on writing over anything else because a middle school teacher &lt;a href=&quot;http://plaintext.brennan.day/poetry-saved-my-life/&quot;&gt;complimented a poem I stole&lt;/a&gt;. I accidentally stumbled upon &lt;a href=&quot;https://omg.lol/&quot;&gt;omg.lol&lt;/a&gt; which resulted in the blog existing at all.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;And the most magical thing is. One day the body, organism will shut it down. No more thoughts, nothing that can observe, be aware of anything. No more stories or memory of the past stories. Again without consulting with the mind. Whole personality, identity, badges will be gone. While body will continue infinitely. Atoms will move, change and the universe will keep its balance.&lt;br /&gt;
&amp;quot;It&#39;s unimaginable. All those stories. Real things survives, matter, atoms. Everything that was not real will be gone. And nobody will notice. Like you don&#39;t have an idea about some random human who lived 200 year ago. That random probably tried hard whole his life. Only what left of him are atoms from his body. Like we drink piss from some dinosaur.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This too shall pass, and we all shall be healed in the life of the world to come. The world is a cruel place, and therefore I won&#39;t be. The world is a cruel place, but it&#39;s also very beautiful. The world is a cruel place, but it is also home.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>In Defence of Vent Posting</title>
		<link href="http://plaintext.brennan.day/in-defence-of-vent-posting/"/>
		<updated>2026-08-20T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/in-defence-of-vent-posting/</id>
		<content type="html">&lt;p&gt;If you&#39;ve been on the Internet, you&#39;ve seen someone venting. The act of sharing anger, sadness, grief--usually with vulnerable, personal details.&lt;/p&gt;
&lt;p&gt;Almost universally, these get a bad rap. People are often drained, or annoyed, or resentful towards those who vent, and communities go out of their way to prohibit it. Not to pick on 32-bit Café, but they have a detailed section on mental health topics and discussions in their &lt;a href=&quot;https://discourse.32bit.cafe/guidelines&quot;&gt;community guidelines&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The 32-Bit Cafe is not a replacement for support groups, therapy, or mental health organizations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are excellent arguments against venting that they list, and I&#39;m not trying to change any minds here; however, I do want to write a post in defense of the venters, because I think someone has to.&lt;/p&gt;
&lt;p&gt;Something I haven&#39;t written about on this blog yet is that I&#39;ve been a Listener on &lt;a href=&quot;https://7cups.com/@maplepenguin&quot;&gt;7cups&lt;/a&gt; for over ten years. I&#39;ve had text conversations with hundreds of strangers, trying to console and comfort them to the best of my abilities as a layperson crisis support volunteer. The spectrum ranged from people who just needed someone to talk to about minor stresses, and say what they&#39;ve been harbouring out loud in order to let it go. And on the other end, people who had active dangerous plans they were enacting and that I was not qualified for, nor what the site was intended to handle.&lt;/p&gt;
&lt;p&gt;What I learned quickly is that, for the most part, people just want to be seen and heard. To have the immeasurable weight of their burdens and trauma they carry to be a gravity felt by others, no matter how temporarily. People want to know that the intensity of their emotions isn&#39;t irrational, or too much.&lt;/p&gt;
&lt;p&gt;Psychologist Bernard Rimé studied the &lt;a href=&quot;https://www.researchgate.net/publication/237332741_Social_Sharing_of_Emotion_New_Evidence_and_New_Questions&quot;&gt;social sharing of emotion&lt;/a&gt;, between 88% and 96% of emotional experiences get talked about with someone else, usually within hours of happening. It&#39;s just something we do. And when someone &lt;a href=&quot;https://www.ehu.eus/documents/1463215/1504269/Rime_(2007)_Journal_of_Social_Issues.pdf&quot;&gt;listens well, the sharing strengthens the bond between people&lt;/a&gt;, because the listener&#39;s attention and empathy are reflected back to the person who vented, and the venter feels closer to the listener. A related study on friends &lt;a href=&quot;https://www.simplypsychology.org/why-obsessing-over-problems-with-friends-actually-helps.html&quot;&gt;working through stress together&lt;/a&gt; found benefit comes from both parties in the exchange, not from one person tolerating the other. Venting is how we&#39;ve always regulated emotion. Together instead of alone.&lt;/p&gt;
&lt;p&gt;And we &lt;em&gt;are&lt;/em&gt; talking about the web, here. &lt;a href=&quot;https://arxiv.org/pdf/2409.19166&quot;&gt;#vent channels on Discord&lt;/a&gt; have allowed people to &amp;quot;meet their needs for social support via vent channels by receiving commiseration, advice, and validation from the responses of others&amp;quot; according to research done by Kayode Oladeji et. al.&lt;/p&gt;
&lt;p&gt;James Pennebaker&#39;s research on confiding and &lt;a href=&quot;https://www.apa.org/news/podcasts/speaking-of-psychology/expressive-writing&quot;&gt;expressive writing&lt;/a&gt; (which can absolutely include blogging) started as he observed trauma survivors who never told anyone about what happened to them showed worse health outcomes than the ones who did. He built a &lt;a href=&quot;https://www.researchgate.net/publication/253937612_Expressive_Writing_Emotional_Upheavals_and_Health&quot;&gt;theory of inhibition&lt;/a&gt; arguing that holding back our thoughts and feelings takes a physiological toll similar to chronic stress. Follow-up studies found writing or talking through difficult material caused &lt;a href=&quot;https://www.apa.org/monitor/jun02/writing&quot;&gt;measurable gains in immune function&lt;/a&gt;, including in people suffering from HIV, asthma, and arthritis. &lt;a href=&quot;https://www.nelson.edu/thoughthub/communication/the-psychology-of-venting/&quot;&gt;How a vent works depends a lot on the person listening&lt;/a&gt;. Responding with real empathy, rather than passive sympathy, changes the outcome entirely. The idea that keeping your feelings to yourself is the mature, healthy default is backwards and harmful. Bottling things up has a cost that is sometimes irreversible.&lt;/p&gt;
&lt;p&gt;The reason why people end up dumping their emotional baggage and trauma in a one-sided manner, sometimes without even asking first, is because their cup is full. There is simply no more room to hold everything in any longer.&lt;/p&gt;
&lt;p&gt;When we aren&#39;t privileged enough to be raised in an environment surrounded by emotionally mature, thoughtful people, what do you think happens? Even further, when we are unfortunate enough to be raised surrounded by cruelty or malicious intent instead?&lt;/p&gt;
&lt;p&gt;The answer is that we do not vanish. Remarkably, we endure. But we only do so by coming up with mechanisms of defence and survival on our own. And these coping mechanisms are often maladaptive or self-destructive, because what else do we know? There are dozens of ways to mitigate emotional pain, and only a handful are healthy, and the healthy ways typically don&#39;t give us the same intensity of catharsis.&lt;/p&gt;
&lt;p&gt;Recommending people seek professional, clinical help comes from a privileged assumption that people can afford professional, clinical help--and that they have the time and energy.&lt;/p&gt;
&lt;p&gt;Beyond this, certain mental health issues and problems are considered (incorrectly) as &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC6732672/&quot;&gt;&amp;quot;treatment resistant&amp;quot;&lt;/a&gt;. The frameworks of Western psychology and our pharmaceuticals are just not sufficient for some people.&lt;/p&gt;
&lt;p&gt;And I don&#39;t think that maladaptive coping mechanisms like emotional dumping are sufficient either, but people need outlets. People need harm reduced. We cannot ask others to start at an acceptable starting point, we must meet others where they actually currently are.&lt;/p&gt;
&lt;p&gt;And we need each other, because all we have is each other. Community is not just a group of people, or a setting. Community is a living medicine. You cannot expect the medical industry to do all the hard, difficult work and only deal with tolerable, semi-healed folks. The mind, body, spirit and emotions all need healing and tending to. People need connection to others, as well as language, ceremony, and the land.&lt;/p&gt;
&lt;p&gt;Some people simply need to feel loved and understood by people they love, and they will heal. Other people though? Some are just inherently miserable. And I frankly think it&#39;s absurd to ostracize people for their inherent demeanour and character. Likewise, I think it&#39;s awful that venting is weaponized and moralized by others, as though it&#39;s evidence of negative character traits.&lt;/p&gt;
&lt;p&gt;Being anti-venting--and being pro-snark or pro-gossip--these too are just other unhealthy modalities of catharsis, and mechanisms for dealing with our own mental health. You are not &amp;quot;better&amp;quot; than someone who vents if you do not. You are not &amp;quot;better&amp;quot; if you have figured out healthier ways to deal with your shit. People are just people. Some of us have lost the ability to look outward, and others to look inward.&lt;/p&gt;
&lt;p&gt;If you don&#39;t have the capacity to be around people who vent, that&#39;s understandable, and it&#39;s within your right and similarly good to be able to articulate and &lt;a href=&quot;https://leviathren.neocities.org/blog#boundaries&quot;&gt;express your boundaries&lt;/a&gt;. But I&#39;m not one of those people. I would always rather someone vent to me than bottle it up, or far worse, going to a genAI chatbot to vent instead. That&#39;s why I&#39;ve been a volunteer on 7cups for so long.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>A Guide to Becoming a Rogue Scholar</title>
		<link href="http://plaintext.brennan.day/a-guide-to-becoming-a-rogue-scholar/"/>
		<updated>2026-08-19T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-guide-to-becoming-a-rogue-scholar/</id>
		<content type="html">&lt;p&gt;&lt;strong&gt;Abstract:&lt;/strong&gt; This post argues that a personal website can function as a citable, open-access publication, then walks through how to do it: register an ORCID, apply to &lt;a href=&quot;https://rogue-scholar.org/&quot;&gt;Rogue Scholar&lt;/a&gt; for DOI and archive mirroring, add issue numbers and ISSN metadata, generate one-click citation exports, mark up pages with Highwire Press and Dublin Core tags, syndicate with a metadata-rich RSS/JSON feed, write print CSS, and mirror everything to the Wayback Machine.&lt;/p&gt;
&lt;p&gt;It&#39;s been around a year and a half since I graduated university with my bachelor of arts, majoring in English Honours. One of the only reasons you&#39;d do an Honours program is if you want a better chance of getting into a master&#39;s program afterwards, in addition to the faculty connections you build.&lt;/p&gt;
&lt;p&gt;And that was my original plan--I was going to return to my hometown of Winnipeg and get my MA in English, most likely at the University of Manitoba, doing a thesis-based route and publishing whatever I completed. Obviously, none of this ended up happening.&lt;/p&gt;
&lt;p&gt;During my undergrad, I became enthralled by the idea of being a scholar and an academic. I was lucky enough to have the opportunity to get &lt;a href=&quot;https://mrujs.mtroyal.ca/index.php/mruhr/article/view/768&quot;&gt;a peer-reviewed paper published&lt;/a&gt;, a critical analysis of an Indigenous graphic novel. Although there are publications like the &lt;a href=&quot;https://www.jurpress.org/&quot;&gt;Journal of Undergraduate Research&lt;/a&gt;, it is rather rare.&lt;/p&gt;
&lt;p&gt;While I was initially going to do my honours thesis on poetry through an Indigenous lens, I instead decided to do &lt;a href=&quot;https://doi.org/10.13140/RG.2.2.25021.37600&quot;&gt;a metadisciplinary analysis of the pedagogy&lt;/a&gt; of the English degree. A large portion of this work was examining digital humanities, and how students are &lt;em&gt;actually&lt;/em&gt; interfacing with literature and texts today.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The very concept of &amp;quot;text&amp;quot; has exploded into a thousand strange forms: fifteen-second video essays cutting deeper for students than any academic paper, sprawling collaborative fanfictions where readers and writers blur together in real-time, memetic satires of corporate mascots, roleplay forums where teenagers craft elaborate mythologies through nothing but status updates. Dozens of literary forms being born and dying every day. The boundaries between creator and consumer, between high art and shitpost, between canon and transformation, all seem to be dissolving in real-time, surely. Salt in hot water.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;...what-is-digital-humanities%3F&quot; tabindex=&quot;-1&quot;&gt;...What &lt;em&gt;is&lt;/em&gt; Digital Humanities?&lt;/h2&gt;
&lt;p&gt;&amp;quot;Digital humanities&amp;quot; is a term academia has spent two decades arguing over. &lt;a href=&quot;https://dhdebates.gc.cuny.edu/read/untitled/section/abdd0db0-2eaa-4af7-aac3-7f24ca70ed3b&quot;&gt;Kathleen Fitzpatrick&lt;/a&gt; has described the field as a wide-ranging grouping of scholars who either 1) use computing tools to investigate old humanities questions, or 2) ask humanities-style questions about computing itself.&lt;/p&gt;
&lt;p&gt;&amp;quot;Big tent&amp;quot; was the theme of the field&#39;s largest annual conference back in &lt;a href=&quot;https://dhdebates.gc.cuny.edu/read/untitled&quot;&gt;2011&lt;/a&gt;, and the philosophy has never left. Digital humanities is an expanded field that holds digital archives, text mining, 3D modeling of historical objects, born-digital dissertations, #hashtag activism, alternate reality games, and whatever gets invented next year. Centres like &lt;a href=&quot;https://www.ucl.ac.uk/digital-humanities/dhoer/Background&quot;&gt;UCL&#39;s&lt;/a&gt; stretch the tent even further, treating DH less as a subject with fixed borders, and more as a &lt;em&gt;way&lt;/em&gt; of working that any humanities question can be run through.&lt;/p&gt;
&lt;p&gt;Taken as a subject, this site has no business calling itself a unified body of scholarship. I write about the science of ball lightning in one post, Eleventy build errors the next, a personal lyric essay on clown burnout after that, and then security research into a malware fork. But all of my posts are statically built, syndicated with microformats, mirrored to the Wayback Machine, addressed by a stable URL, and, as of this essay, are using citation metadata. The practice stays constant, and so the topic can drift.&lt;/p&gt;
&lt;p&gt;Marshall McLuhan&#39;s line about &lt;a href=&quot;https://en.wikipedia.org/wiki/The_medium_is_the_message&quot;&gt;the medium being the message&lt;/a&gt; wasn&#39;t arguing that content doesn&#39;t matter. He was arguing that a medium reshapes, that the form of transmission works on a reader and a culture, separate from the message. The medium holds the corpus together.&lt;/p&gt;
&lt;p&gt;Scholars have already been treating personal academic blogs as scholarly output for years, now. &lt;a href=&quot;https://ullyot.ucalgaryblogs.ca/2012/02/24/on-blogging-in-the-digital-humanities/&quot;&gt;Michael Ullyot&lt;/a&gt;, writing from the University of Calgary, argued that in digital humanities, blog posts function as the field&#39;s communication channel, often the only venue through which new questions and methods reach anyone before a journal picks them up.&lt;/p&gt;
&lt;p&gt;Librarian &lt;a href=&quot;https://www.insidehighered.com/blogs/library-babel-fish/serial-scholarship-blogging-traditional-academic-practice&quot;&gt;Barbara Fister&lt;/a&gt; describes serial blogging as mirroring the academic habit of publishing issue after issue. And Alexis Lothian and Amanda Phillips&#39;s &lt;a href=&quot;https://journals.dartmouth.edu/journals/xmlpage/4/article/425&quot;&gt;#transformDH&lt;/a&gt; work argued that digital humanities produced outside institutional walls, such as in fan communities and other spaces with no formal tie to a university, are as serious and legitimate as anything produced within one.&lt;/p&gt;
&lt;h2 id=&quot;the-state-of-academia&quot; tabindex=&quot;-1&quot;&gt;The State of Academia&lt;/h2&gt;
&lt;p&gt;If you&#39;re a reader of my site, it should be unsurprising that the area of focus for my honours thesis was to examine how we can create a liberated future where academia is not ivory tower elitism and gatekeeping. Much easier said than done--I know.&lt;/p&gt;
&lt;p&gt;I&#39;m sure I also don&#39;t need to tell you the dire straits academia is in. This is happening in the &lt;a href=&quot;https://www.newyorker.com/news/fault-lines/the-enrollment-cliff-is-here-which-schools-will-survive-it&quot;&gt;United States&lt;/a&gt;, &lt;a href=&quot;https://www.timeshighereducation.com/opinion/canadas-overseas-student-collapse-forcing-reckoning-over-quality&quot;&gt;Canada&lt;/a&gt;, the &lt;a href=&quot;https://www.theguardian.com/education/2026/aug/13/uk-universities-face-financial-crisis-amid-collapse-in-international-students&quot;&gt;United Kingdom&lt;/a&gt;, all around the world. There is a collapse of &lt;a href=&quot;https://www.forbes.com/sites/mattscogin/2026/06/22/the-collapse-of-trust-in-higher-ed-why-pr-wont-fix-systemic-failure/&quot;&gt;trust in higher education&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The culture of academia isn&#39;t faring any better. Peter Fleming&#39;s book &lt;a href=&quot;https://www.plutobooks.com/product/dark-academia/&quot;&gt;&lt;em&gt;Dark Academia: How Universities Die&lt;/em&gt;&lt;/a&gt; examines how &amp;quot;commercialisation, mental illness and self-harm, the rise of managerialism, students as consumers and evaluators, and the competitive individualism casts a dark sheen of alienation over departments.&amp;quot;&lt;/p&gt;
&lt;p&gt;And this isn&#39;t even mentioning the newfound crisis of how generative AI has &lt;a href=&quot;https://www.theguardian.com/technology/ng-interactive/2026/mar/10/ai-impact-professors-students-learning&quot;&gt;upended the traditional pedagogy of education&lt;/a&gt; in general, with schools &lt;a href=&quot;https://www.npr.org/2026/08/15/nx-s1-5929156/the-ai-cheating-disaster-that-forced-mexicos-top-university-back-to-pen-and-paper&quot;&gt;returning to pen and paper&lt;/a&gt; and &lt;a href=&quot;https://phys.org/news/2026-08-oral-exams-comeback-ai-problems.html&quot;&gt;oral exams&lt;/a&gt; as band-aid solutions.&lt;/p&gt;
&lt;p&gt;Seeing all of this might make you think I&#39;m a cynic and abolitionist, but that isn&#39;t the case at all. Despite everything, I still see an irreplaceable value in academia, and I believe radical reform can steer the massive ship of institutions back towards their original ideals.&lt;/p&gt;
&lt;p&gt;Registration for 2027 master&#39;s programs opens in only a couple of weeks, now. And I find myself weighing the decision between returning to scholarship or maintaining my independent, open-access publication here.&lt;/p&gt;
&lt;h2 id=&quot;having-it-both-ways&quot; tabindex=&quot;-1&quot;&gt;Having it Both Ways&lt;/h2&gt;
&lt;p&gt;But then I had the epiphany that it doesn&#39;t have to be either/or--and that I have an excellent way to demonstrate how to lower the gates of the ivory tower myself.&lt;/p&gt;
&lt;p&gt;There are a number of open, free academic platforms anybody can join. You can register for an &lt;a href=&quot;https://orcid.org/&quot;&gt;ORCID&lt;/a&gt;, get an account on &lt;a href=&quot;https://www.researchgate.net/&quot;&gt;Research Gate&lt;/a&gt; and &lt;a href=&quot;https://scholar.google.ca/citations?user=XqdnVq0AAAAJ&quot;&gt;Google Scholar&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But that&#39;s just the tip of the iceberg. One project idea I had but never executed was starting a peer-reviewed, academic journal myself. There&#39;s web software called &lt;a href=&quot;https://pkp.sfu.ca/software/ojs/&quot;&gt;Open Journal Systems&lt;/a&gt; that thousands of universities and institutions use around the world. The problem is that hosting solutions have starting costs of &lt;a href=&quot;https://openjournalsystems.com/ojs-hosting/&quot;&gt;$500 per year&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But the thing is, this is software you can install and host on your own server. Most academics don&#39;t have the necessary technical skills to do this, but they &lt;em&gt;do&lt;/em&gt; have grants and budgets, which is why hosting platforms are able to sell their services for predatory prices like this.&lt;/p&gt;
&lt;p&gt;My original plan was to found a journal with support from my honours advisor and the executive team at Write Club, since I could host OJS myself:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Anaglyph envisions a literary landscape that is inclusive, accessible, and amplifies marginalized voices. We aim to democratize and decolonize Canadian literature by providing a platform for underrepresented writers and challenging traditional gatekeeping structures within the publishing industry. The name &amp;quot;Anaglyph&amp;quot; is inspired by the technique of overlaying two images in different colours to create a three-dimensional effect when viewed through a lens; our mission to bring together diverse perspectives to form a richer, more multidimensional literary experience for all.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The Dean, subsequently, denied us funding for this initiative:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Arts Endeavour Committee has reviewed your application. I regret that on this occasion the committee felt other applications should take preference, and no funding could be allocated in support of your project &lt;em&gt;The Anaglyph: Democratizing and Decolonizing Literary Studies Through Student-Led Digital Publishing&lt;/em&gt;. We received applications that totalled more than twice the amount we had to allocate.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I no longer have academic support, funding, or my colleagues and peers from Write Club, but I am far more technically adept than I was when I originally applied for funding. Without the team needed for an academic journal, I have a different plan now. (Although if enough people write to me asking me to boot up an OJS and try this again, I certainly wouldn&#39;t be opposed.)&lt;/p&gt;
&lt;p&gt;I&#39;ve decided to become an independent scholar--what I also call a &amp;quot;rogue&amp;quot; scholar--not peer-reviewed or institution-backed, but whose work is public, citable, and open to post-publication review.&lt;/p&gt;
&lt;h2 id=&quot;what-an-independent-scholar-actually-does&quot; tabindex=&quot;-1&quot;&gt;What an Independent Scholar Actually Does&lt;/h2&gt;
&lt;p&gt;If I&#39;m going to argue that independent publishing can stand in for institutional scholarship, then I want my site to behave as a scholarly record, instead of just a blog that happens to be well-organized.&lt;/p&gt;
&lt;p&gt;This means offering the same functionality journals have: citability, discoverability, authorship, and permanence. Over the past few days I went and built this for myself, and I greatly encourage you to add the same to your own site.&lt;/p&gt;
&lt;h3 id=&quot;applying-to-rogue-scholar&quot; tabindex=&quot;-1&quot;&gt;Applying to Rogue Scholar&lt;/h3&gt;
&lt;p&gt;The first step is applying to &lt;a href=&quot;https://rogue-scholar.org/&quot;&gt;Rogue Scholar&lt;/a&gt;, an open-access archive that creates DOIs for science and scholarly blog posts, and mirrors them into the Internet Archive. It&#39;s run by &lt;a href=&quot;https://front-matter.io/&quot;&gt;Front Matter&lt;/a&gt;, and it&#39;s free, unlike &lt;a href=&quot;https://www.crossref.org/fees/&quot;&gt;Crossref membership, which costs $200 USD a year&lt;/a&gt;. I&#39;ve applied, and I&#39;m currently looking for an institutional sponsor (such as &lt;a href=&quot;https://www.coalition-publi.ca/&quot;&gt;Coalition Publica&lt;/a&gt;) to cover a Crossref membership down the line.&lt;/p&gt;
&lt;h3 id=&quot;registering-an-orcid&quot; tabindex=&quot;-1&quot;&gt;Registering an ORCID&lt;/h3&gt;
&lt;p&gt;I&#39;ve also registered an &lt;a href=&quot;https://orcid.org/&quot;&gt;ORCID&lt;/a&gt;, which can be understood as a universal author ID for academia. Researchers use it to disambiguate themselves from others who share their name, and it&#39;s a persistent identifier across institutions, journals, and platforms. Mine is &lt;a href=&quot;https://orcid.org/0009-0004-9951-3451&quot;&gt;0009-0004-9951-3451&lt;/a&gt;, and I&#39;ve wired it into my site: &lt;code&gt;rel=&amp;quot;me&amp;quot;&lt;/code&gt; on my accounts page, the h-card on every post byline, and a handful of citation and structured data fields I&#39;ll get into below.&lt;/p&gt;
&lt;h2 id=&quot;adding-journal-like-functionality&quot; tabindex=&quot;-1&quot;&gt;Adding Journal-like Functionality&lt;/h2&gt;
&lt;p&gt;The above matters so long as my site has the technical front-matter, scripting, and elements that make it citable. Here are a few things I&#39;ve done:&lt;/p&gt;
&lt;h3 id=&quot;an-issue-numbering-system&quot; tabindex=&quot;-1&quot;&gt;An Issue Numbering System&lt;/h3&gt;
&lt;p&gt;Journals have issues. Every article belongs to one, with a number, so citations can say &amp;quot;Vol. 4, No. 12&amp;quot; in addition to the URL. I don&#39;t publish in discrete issues due to my publishing frequency, so I made every single post its own issue. Post #1 is issue #1, post #212 is issue #212, and so on.&lt;/p&gt;
&lt;p&gt;I created an Eleventy filter for this. &lt;code&gt;collections.posts&lt;/code&gt; sorts by newest-first by default, so the oldest post (at the end of the array) is issue #1:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// config/filters.js
eleventyConfig.addFilter(&amp;quot;getIssueNumber&amp;quot;, (collection, page) =&amp;gt; {
  if (!collection || !page || !page.url) return &amp;quot;&amp;quot;;
  const index = collection.findIndex(item =&amp;gt; item.url === page.url);
  if (index === -1) return &amp;quot;&amp;quot;;
  // collection is sorted newest-first, so the oldest item is issue #1
  return collection.length - index;
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because this number is computed from the current length of the collection, unpublishing or deleting a post would shift every later number. For a system whose goal is permanence and citability, that is fragile. The long-term fix is to assign an &lt;code&gt;issue&lt;/code&gt; field in each post&#39;s frontmatter and have the filter fall back to that. I have not migrated the archive yet, so the current numbers are best-effort.&lt;/p&gt;
&lt;p&gt;Then in &lt;code&gt;src/_includes/layouts/post.njk&lt;/code&gt;, the issue number is displayed under the featured image caption, in small caps, above the title:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;&amp;lt;p class=&amp;quot;publication-issue&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;sc&amp;quot;&amp;gt;issue #{{ collections.posts | getIssueNumber(page) }} of {{ site.title }}&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;h1 class=&amp;quot;p-name&amp;quot; data-pagefind-meta=&amp;quot;title&amp;quot;&amp;gt;{{ title }}&amp;lt;/h1&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;.sc&lt;/code&gt; is a one-line utility class I already had (&lt;code&gt;font-variant: small-caps;&lt;/code&gt;), so no new CSS needed.&lt;/p&gt;
&lt;p&gt;It&#39;s a small thing, but it&#39;s the difference between a post feeling like an entry in an ongoing publication versus a mere blog post.&lt;/p&gt;
&lt;h3 id=&quot;issn-metadata&quot; tabindex=&quot;-1&quot;&gt;ISSN Metadata&lt;/h3&gt;
&lt;p&gt;An ISSN (International Standard Serial Number) is a unique 8-digit code used to identify continuing publications like magazines, journals, newspapers, and websites. It helps libraries, stores, and databases quickly find and sort specific serial titles without mixing them up.&lt;/p&gt;
&lt;p&gt;In Canada, you can &lt;a href=&quot;https://issn.bac-lac.canada.ca/eng/requests/publication&quot;&gt;apply for an ISSN&lt;/a&gt; free of charge.&lt;/p&gt;
&lt;p&gt;I just applied, so I don&#39;t have an assigned ISSN yet. The &lt;a href=&quot;https://www.issn.org/understanding-the-issn/assignment-rules/the-issn-for-electronic-media/&quot;&gt;ISSN eligibility rules&lt;/a&gt; may mean that my publication is ineligible, but as I wrote earlier, I do think there&#39;s sufficient merit.&lt;/p&gt;
&lt;p&gt;Anyways, the field for an ISSN is set up, with the value saved in &lt;code&gt;src/_data/site.json&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;{% if site.issn %}&amp;lt;meta name=&amp;quot;citation_issn&amp;quot; content=&amp;quot;{{ site.issn }}&amp;quot;&amp;gt;{% endif %}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&#39;ll propagate to the citation meta tags, the JSON-LD, the RSS feed&#39;s &lt;code&gt;&amp;lt;category domain=&amp;quot;ISSN&amp;quot;&amp;gt;&lt;/code&gt;, and both the about page and colophon, without touching a single template again.&lt;/p&gt;
&lt;h3 id=&quot;publication-information-dropdown&quot; tabindex=&quot;-1&quot;&gt;Publication Information Dropdown&lt;/h3&gt;
&lt;p&gt;Below the fold of every post, there&#39;s now a &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; element with what you&#39;d find on a journal&#39;s article page: title, author with ORCID link, issue number, ISSN (once assigned), published and modified dates, canonical URL, place of publication, and contact:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;&amp;lt;details class=&amp;quot;cite-article h-cite&amp;quot;&amp;gt;
  &amp;lt;summary&amp;gt;Publication Information&amp;lt;/summary&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Title:&amp;lt;/strong&amp;gt; &amp;lt;span class=&amp;quot;p-name&amp;quot;&amp;gt;{{ title }}&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Author:&amp;lt;/strong&amp;gt; &amp;lt;span class=&amp;quot;p-author p-name&amp;quot;&amp;gt;{{ site.author.name }}&amp;lt;/span&amp;gt;
    {% if site.author.orcid %} &amp;lt;a class=&amp;quot;u-uid&amp;quot; href=&amp;quot;{{ site.author.orcid }}&amp;quot; rel=&amp;quot;me&amp;quot;&amp;gt;ORCID&amp;lt;/a&amp;gt;{% endif %}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Issue:&amp;lt;/strong&amp;gt; #{{ collections.posts | getIssueNumber(page) }} of {{ site.title }}&amp;lt;/p&amp;gt;
  {% if site.issn %}&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;ISSN:&amp;lt;/strong&amp;gt; &amp;lt;span class=&amp;quot;p-issn&amp;quot;&amp;gt;{{ site.issn }}&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;{% endif %}
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Date Published:&amp;lt;/strong&amp;gt; &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;{{ date | isoDate }}&amp;quot;&amp;gt;{{ date | readableDate }}&amp;lt;/time&amp;gt;&amp;lt;/p&amp;gt;
  ...
&amp;lt;/details&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&#39;s marked up with &lt;code&gt;h-cite&lt;/code&gt; microformats so, in theory, other IndieWeb tools parsing my posts can pull structured citation data out of it the same way they&#39;d parse an &lt;code&gt;h-entry&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;a-%22cite-this-issue%22-button&quot; tabindex=&quot;-1&quot;&gt;A &amp;quot;Cite This Issue&amp;quot; Button&lt;/h3&gt;
&lt;p&gt;Right below that, I added a second &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; block that provides one-click citation exports. Click it open and you get MLA 9, APA 7, Chicago notes-bibliography, and BibTeX, all pre-filled with the post&#39;s frontmatter:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;&amp;lt;details class=&amp;quot;cite-export&amp;quot;&amp;gt;
  &amp;lt;summary&amp;gt;Cite this issue&amp;lt;/summary&amp;gt;
  &amp;lt;ul class=&amp;quot;citation-formats&amp;quot;&amp;gt;
    &amp;lt;li&amp;gt;
      &amp;lt;strong&amp;gt;MLA 9&amp;lt;/strong&amp;gt;
      &amp;lt;pre&amp;gt;{{ site.author.name }}. &amp;quot;{{ title }}.&amp;quot; {{ site.title }}, {{ date | readableDate }}, {{ site.url }}{{ page.url }}.&amp;lt;/pre&amp;gt;
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
      &amp;lt;strong&amp;gt;BibTeX&amp;lt;/strong&amp;gt;
      &amp;lt;pre&amp;gt;@online{brennan{{ year }}{{ page.url | slugify }},
  author = {{ &#39;{&#39; }}{{ &#39;{&#39; }}{{ site.author.name }}{{ &#39;}&#39; }}{{ &#39;}&#39; }},
  title = {{ &#39;{&#39; }}{{ title }}{{ &#39;}&#39; }},
  year = {{ &#39;{&#39; }}{{ year }}{{ &#39;}&#39; }},
  url = {{ &#39;{&#39; }}{{ site.url }}{{ page.url }}{{ &#39;}&#39; }},
  urldate = {{ &#39;{&#39; }}{{ buildTime | htmlDateString }}{{ &#39;}&#39; }}
}&amp;lt;/pre&amp;gt;
    &amp;lt;/li&amp;gt;
    &amp;lt;!-- APA, Chicago follow the same pattern --&amp;gt;
  &amp;lt;/ul&amp;gt;
&amp;lt;/details&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Writing out the literal curly brace brackets for the BibTeX is a little clumsy, as you can see, because Nunjucks and BibTeX both use them. It&#39;s not pretty, but it works.&lt;/p&gt;
&lt;h3 id=&quot;citation-meta-tags-and-dublin-core&quot; tabindex=&quot;-1&quot;&gt;Citation Meta Tags and Dublin Core&lt;/h3&gt;
&lt;p&gt;Google Scholar, Zotero, and most citation managers look for a specific, decades-old convention called Highwire Press tags, prefixed &lt;code&gt;citation_*&lt;/code&gt;. I added a full set to every post&#39;s &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; in &lt;code&gt;src/_includes/partials/meta.njk&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;meta name=&amp;quot;citation_title&amp;quot; content=&amp;quot;{{ title }}&amp;quot;&amp;gt;
&amp;lt;meta name=&amp;quot;citation_author&amp;quot; content=&amp;quot;{{ site.author.name }}&amp;quot;&amp;gt;
&amp;lt;meta name=&amp;quot;citation_publication_date&amp;quot; content=&amp;quot;{{ date | isoDate | split(&#39;T&#39;) | first | replace(&#39;-&#39;, &#39;/&#39;) }}&amp;quot;&amp;gt;
&amp;lt;meta name=&amp;quot;citation_journal_title&amp;quot; content=&amp;quot;{{ site.title }}&amp;quot;&amp;gt;
{% if site.issn %}&amp;lt;meta name=&amp;quot;citation_issn&amp;quot; content=&amp;quot;{{ site.issn }}&amp;quot;&amp;gt;{% endif %}
&amp;lt;meta name=&amp;quot;citation_issue&amp;quot; content=&amp;quot;{{ collections.posts | getIssueNumber(page) }}&amp;quot;&amp;gt;
{% if site.author.orcid %}&amp;lt;meta name=&amp;quot;citation_author_orcid&amp;quot; content=&amp;quot;{{ site.author.orcid }}&amp;quot;&amp;gt;{% endif %}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Right below that, I added the &lt;a href=&quot;https://www.dublincore.org/specifications/dublin-core/dcmi-terms/&quot;&gt;Dublin Core&lt;/a&gt; set, which is the older, broader library-science metadata standard that many archives and repositories still use: &lt;code&gt;DC.Title&lt;/code&gt;, &lt;code&gt;DC.Creator&lt;/code&gt;, &lt;code&gt;DC.Publisher&lt;/code&gt;, &lt;code&gt;DC.Date&lt;/code&gt;, &lt;code&gt;DC.Identifier&lt;/code&gt;, &lt;code&gt;DC.Rights&lt;/code&gt;, and so on.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;Article&lt;/code&gt; block in my JSON-LD (&lt;code&gt;src/_includes/partials/structured-data.njk&lt;/code&gt;) has the same info, an &lt;code&gt;issueNumber&lt;/code&gt; field, and a conditional &lt;code&gt;identifier&lt;/code&gt; object with &lt;code&gt;propertyID: &amp;quot;ISSN&amp;quot;&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;@type&amp;quot;: &amp;quot;Article&amp;quot;,
  &amp;quot;issueNumber&amp;quot;: &amp;quot;{{ collections.posts | getIssueNumber(page) }}&amp;quot;,
  &amp;quot;identifier&amp;quot;: {
    &amp;quot;@type&amp;quot;: &amp;quot;PropertyValue&amp;quot;,
    &amp;quot;propertyID&amp;quot;: &amp;quot;ISSN&amp;quot;,
    &amp;quot;value&amp;quot;: &amp;quot;{{ site.issn }}&amp;quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;the-rss-feed&quot; tabindex=&quot;-1&quot;&gt;The RSS Feed&lt;/h3&gt;
&lt;p&gt;Rogue Scholar (and basically every serious feed reader) parses your RSS feed, not your HTML, so the feed needed the same metadata as the posts themselves. &lt;code&gt;src/feed.njk&lt;/code&gt; got a &lt;code&gt;dc&lt;/code&gt; namespace and a &lt;code&gt;content&lt;/code&gt; namespace added to the root &lt;code&gt;&amp;lt;rss&amp;gt;&lt;/code&gt; element, then per-item tags for creator, date, language, identifier, source, and rights:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;&amp;lt;item&amp;gt;
  &amp;lt;guid isPermaLink=&amp;quot;true&amp;quot;&amp;gt;{{ absolutePostUrl }}&amp;lt;/guid&amp;gt;
  &amp;lt;dc:creator&amp;gt;{{ site.author.name }}&amp;lt;/dc:creator&amp;gt;
  &amp;lt;dc:date&amp;gt;{{ post.data.date | isoDate }}&amp;lt;/dc:date&amp;gt;
  &amp;lt;dc:rights&amp;gt;https://creativecommons.org/licenses/by-sa/4.0/&amp;lt;/dc:rights&amp;gt;
  {% if site.issn %}&amp;lt;category domain=&amp;quot;ISSN&amp;quot;&amp;gt;{{ site.issn }}&amp;lt;/category&amp;gt;{% endif %}
  ...
&amp;lt;/item&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;At the channel level, I added an &lt;code&gt;&amp;lt;atom:author&amp;gt;&lt;/code&gt; block pointing at my ORCID as the author URI, a &lt;code&gt;&amp;lt;copyright&amp;gt;&lt;/code&gt; line, and a channel &lt;code&gt;&amp;lt;image&amp;gt;&lt;/code&gt;. Small stuff, but it&#39;s the difference between a feed that just lists titles and links versus one that actually declares who&#39;s responsible for the content and under what terms you&#39;re allowed to reuse it.&lt;/p&gt;
&lt;h3 id=&quot;css-print-styles%3A-making-a-post-feel-like-a-publication-on-paper&quot; tabindex=&quot;-1&quot;&gt;CSS Print Styles: Making a Post Feel Like a Publication on Paper&lt;/h3&gt;
&lt;p&gt;The last piece isn&#39;t about metadata at all. If you use the shortcut Ctrl/Cmd + P and try to print one of my posts, you&#39;ll now see a nicely styled output, something I attempted to make feel closer to what a printed version of Brennan.day would actually look like, given the limitations of using only CSS.&lt;/p&gt;
&lt;p&gt;One of the tricks is &lt;code&gt;page-break-before&lt;/code&gt; and &lt;code&gt;flex-direction: column&lt;/code&gt; with the &lt;code&gt;order&lt;/code&gt; property, so I can rearrange the DOM for print without needing to modify the markup itself:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;@media print {
  .h-entry {
    display: flex;
    flex-direction: column;
  }

  /* Title / cover page */
  .post-single .post-header {
    order: 1;
    text-align: center;
    padding-top: 15vh;
  }

  /* Featured image, still on the cover page */
  .featured-image {
    order: 2;
    page-break-inside: avoid;
  }

  /* A dedicated masthead page, after the cover */
  .print-masthead {
    display: block;
    order: 3;
    page-break-before: always;
    page-break-after: always;
  }

  /* The actual essay */
  .e-content {
    order: 4;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That &lt;code&gt;.print-masthead&lt;/code&gt; div is invisible on screen (&lt;code&gt;display: none&lt;/code&gt; outside of &lt;code&gt;@media print&lt;/code&gt;) and only appears when you print, as its own page, listing the issue number, publisher, place of publication, and contact:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-njk&quot;&gt;&amp;lt;div class=&amp;quot;print-masthead&amp;quot;&amp;gt;
  &amp;lt;p class=&amp;quot;sc&amp;quot;&amp;gt;{{ site.title }} — issue #{{ collections.posts | getIssueNumber(page) }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;Publisher: {{ site.author.name }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;Place of publication: {{ site.author.location.city }}, {{ site.author.location.region }}, {{ site.author.location.country }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;Available at: {{ site.url }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;Contact: {{ site.author.email }}&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also added the featured image&#39;s caption date and URL onto the page as a &lt;code&gt;::after&lt;/code&gt; pseudo-element (&lt;code&gt;content: attr(data-date) &amp;quot;&#92;A&amp;quot; attr(data-url);&lt;/code&gt;), added drop-cap-style paragraph indentation for body text after the first one, and widow and orphan control (&lt;code&gt;widows: 2; orphans: 2;&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;There are many other elements on my site that don&#39;t make sense to print, so those aren&#39;t displayed:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.site-header, .sidebar, .site-footer,
nav, .breadcrumbs, .post-meta,
.post-tags, .post-footer, .post-nav,
.like-form, .newsletter-signup, .comments-section,
.webmentions, .related-posts-list, .toc,
.reply-context, .external-link-notice, .cite-article,
noscript, script, iframe {
  display: none !important;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;On screen, paragraphs are separated by margin, but in print I wanted no gap between paragraphs, and the second paragraph onward gets a first-line indent instead:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.e-content p {
  margin: 0;
}

.e-content p + p {
  text-indent: 1.5em;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And since a browser&#39;s print renderer doesn&#39;t know or care about clean page breaks, I explicitly declare which elements are allowed to split across pages and which aren&#39;t:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;pre, blockquote, img,
figure, table {
  page-break-inside: avoid;
}

h1, h2, h3 {
  page-break-after: avoid;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&#39;s a personal pet peeve of mine to have a heading stranded at the bottom of a page with its own content pushed onto the next one, and certainly nobody wants a figure split in half.&lt;/p&gt;
&lt;p&gt;These are small details, but I wanted to ensure I created something you&#39;d want to staple together and put in a binder.&lt;/p&gt;
&lt;h3 id=&quot;archiving-to-the-wayback-machine&quot; tabindex=&quot;-1&quot;&gt;Archiving to the Wayback Machine&lt;/h3&gt;
&lt;p&gt;Permanence isn&#39;t just about metadata sitting in the head of a page. It doesn&#39;t matter how many &lt;code&gt;citation_*&lt;/code&gt; tags or DOIs a post has if the page itself disappears. Rogue Scholar solves this for the posts it ingests, since it holds its own &lt;a href=&quot;https://archive-it.org/&quot;&gt;Archive-It&lt;/a&gt; subscription that backs up everything it archives.&lt;/p&gt;
&lt;p&gt;But I wanted the same insurance for my &lt;em&gt;entire&lt;/em&gt; site, so I wrote &lt;code&gt;scripts/archive-to-wayback.js&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The script reads every URL out of my live &lt;code&gt;sitemap.xml&lt;/code&gt; and submits each one to the Internet Archive&#39;s &lt;a href=&quot;https://web.archive.org/save&quot;&gt;Save Page Now&lt;/a&gt; API, which snapshots the page into the Wayback Machine:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;async function fetchSitemapUrls(sitemapUrl) {
  const res = await fetchWithTimeout(sitemapUrl, {}, 30_000);
  const xml = await res.text();
  const urls = [...xml.matchAll(/&amp;lt;loc&amp;gt;&#92;s*([^&amp;lt;&#92;s]+)&#92;s*&amp;lt;&#92;/loc&amp;gt;/g)].map((m) =&amp;gt; m[1]);
  return [...new Set(urls)];
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With 400+ pages on the site now, it needs to survive being interrupted, and it needs to not get rate-limited off the API.&lt;/p&gt;
&lt;p&gt;So it&#39;s resumable by default. Every result gets written to &lt;code&gt;.cache/wayback-archive/progress.json&lt;/code&gt; immediately after each URL, keyed by the URL itself. Re-running it skips whatever&#39;s already marked &lt;code&gt;saved&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;const pending = urls.filter((url) =&amp;gt; !progress.results[url] || progress.results[url].status === &#39;failed&#39;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Archive.org&#39;s anonymous Save Page Now limit is roughly three requests a minute, so my script waits 20 seconds between each one to stay under that. You can get a free &lt;a href=&quot;https://archive.org/account/s3.php&quot;&gt;S3-style key pair&lt;/a&gt; from archive.org, and that enables the script to send authenticated requests instead, which are more reliable:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;if (AUTHENTICATED) {
  headers.Authorization = `LOW ${ACCESS_KEY}:${SECRET_KEY}`;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A single failed request retries with backoff up to three times. But if five requests in a row fail, then that&#39;s probably archive.org having an outage, which &lt;a href=&quot;https://www.malwarebytes.com/blog/news/2024/10/internet-archive-suffers-data-breach-and-ddos&quot;&gt;sadly happens&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;if (consecutiveFailures &amp;gt;= OUTAGE_STREAK_THRESHOLD) {
  saveProgress(progress);
  await sleep(OUTAGE_BACKOFF_MS);
  consecutiveFailures = 0;
  continue; // retry the same URL, don&#39;t advance i or record a failure
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script also stops after three hours, rather than running indefinitely in the background to prevent &lt;em&gt;too&lt;/em&gt; much leeching on Archive.org&#39;s servers, since it can always be started up again.&lt;/p&gt;
&lt;h2 id=&quot;what-about-peer-review%3F&quot; tabindex=&quot;-1&quot;&gt;What About Peer Review?&lt;/h2&gt;
&lt;p&gt;Obviously, this setup doesn&#39;t replicate expert peer review. A journal article is not just a durable object with metadata, it has also been evaluated by other people who know the field.&lt;/p&gt;
&lt;p&gt;ORCID, DOIs, ISSNs, and Highwire Press tags make a post discoverable and citable, but they do not make it reviewed.&lt;/p&gt;
&lt;p&gt;This set up is designed for post-publication, open review. My posts have a public URL, a permanent archive, and a comment section. I am reachable by email and on the fediverse. I can issue corrections or new versions transparently. Webmentions and GitLab issues can become a record of response and critique, and I can invite named readers or mentors to comment on specific essays before or after they go live.&lt;/p&gt;
&lt;p&gt;None of that is comparable to a double-blind peer review. I would rather a reader evaluate the argument themselves, check the sources, and cite it with the stated limitation: this is an independent scholarly contribution, not a peer-reviewed journal article.&lt;/p&gt;
&lt;p&gt;Beyond this set up, I&#39;d recommend platforms like &lt;a href=&quot;https://pubpub.org/&quot;&gt;PubPub&lt;/a&gt;, &lt;a href=&quot;https://hcommons.org/&quot;&gt;Humanities Commons&lt;/a&gt;, &lt;a href=&quot;https://zenodo.org/&quot;&gt;Zenodo&lt;/a&gt;, the &lt;a href=&quot;https://osf.io/&quot;&gt;Open Science Framework&lt;/a&gt;, &lt;a href=&quot;https://www.knowledgecommons.org/&quot;&gt;Knowledge Commons&lt;/a&gt;, and the &lt;a href=&quot;https://pkp.sfu.ca/software/ojs/&quot;&gt;Open Journal Systems&lt;/a&gt; software I mentioned earlier.&lt;/p&gt;
&lt;h2 id=&quot;the-point-of-all-this&quot; tabindex=&quot;-1&quot;&gt;The Point of All This&lt;/h2&gt;
&lt;p&gt;My goal here is to help lower the barriers for people who want to participate in academia and scholarship but can&#39;t engage in a formal institution for whatever reason--lack of funding, lack of sufficient grades, lack of time. There are plenty of things stopping people from entering and finishing post-secondary. I hope the ideas I&#39;ve laid out here help give inspiration and validity to those who feel less legitimate because they aren&#39;t enrolled in a university or college--I promise you are, too.&lt;/p&gt;
&lt;p&gt;I&#39;ve taken the parts of academic publishing that actually matter: permanence, citability, clear authorship, a stable identifier for both the publication and the person, and built it all into a static site anyone could clone and use themselves.&lt;/p&gt;
&lt;p&gt;The merit of scholarship was never on loan from a department. It&#39;s built into the infrastructure now. DOIs, metadata, long-term archiving, doing on my own server what would cost funding and years of institutional support within a university&#39;s walls.&lt;/p&gt;
&lt;p&gt;If you&#39;re sitting on your own personal site wondering whether any of this is worth doing without an institution behind you: it is. An ISSN application costs nothing to attempt. An ORCID takes five minutes. Rogue Scholar is free. Citation meta tags are copy-paste. I&#39;ve come to realize that one of the only things that actually stands between a &amp;quot;blog&amp;quot; and a &amp;quot;publication&amp;quot; is functionality.&lt;/p&gt;
&lt;p&gt;As always, the source for everything above is on &lt;a href=&quot;https://gitlab.com/brennankbrown/brennan.day&quot;&gt;GitLab&lt;/a&gt; if you want to steal it for your own rogue scholarship.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Outjerked by the Trickster</title>
		<link href="http://plaintext.brennan.day/outjerked-by-the-trickster/"/>
		<updated>2026-08-18T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/outjerked-by-the-trickster/</id>
		<content type="html">&lt;p&gt;I can finally say I&#39;ve really made it--I&#39;m currently the target of &lt;a href=&quot;https://circlejerk.blog/&quot;&gt;circlejerk.blog&lt;/a&gt; (&lt;a href=&quot;https://archive.ph/vN47q&quot;&gt;archive&lt;/a&gt;). I&#39;m touched, as I don&#39;t really think I&#39;m worthy of being satirized, but since I have been, I&#39;m going to annoyingly share my thoughts and &lt;a href=&quot;https://www.goodreads.com/quotes/440683-explaining-a-joke-is-like-dissecting-a-frog-you-understand&quot;&gt;kill the frog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;circlejerk.blog isn&#39;t new to the bit. An archived &lt;a href=&quot;http://web.archive.org/web/20250710003655/https://circlejerk.blog/about&quot;&gt;about page&lt;/a&gt; is upfront about the satire, labelling itself &amp;quot;an art project&amp;quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you&#39;re feeling a sting of recognition, perhaps it&#39;s time to examine why your life so closely mirrors a cliché ripe for parody. And yes, this was conjured by the very AI that the white, middle-aged tech evangelists -- who paved the digital road for this site -- so fervently idolize. Chew on that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In its previous iteration, there were many posts like &lt;a href=&quot;http://web.archive.org/web/20250710003443/https://circlejerk.blog/the-last-tab&quot;&gt;The Last Tab&lt;/a&gt;, a mock eulogy for browser tabs in favour of genAI agents doing your browsing for you, with a comment section of hedge-everything replies underneath speaking in 🤖 emoji. You can browse the archives for dozens more posts like this.&lt;/p&gt;
&lt;p&gt;Circlejerking has been a hobby of the Internet for decades, and of men for millennia. &lt;a href=&quot;https://knowyourmeme.com/memes/circle-jerk&quot;&gt;r/Circlejerk&lt;/a&gt; was founded on Reddit on December 10, 2008, built to mock the site&#39;s hivemind of reflexive catchphrases and self-congratulatory consensus. r/Circlejerk mimics the tone of sincere Reddit to expose how much of &amp;quot;sincere Reddit&amp;quot; is just people performing agreement at each other. It spawned a taxonomy of spinoffs: r/fitnesscirclejerk, r/engineeringcirclejerk, and so on.&lt;/p&gt;
&lt;p&gt;In 2020, playwrights Michael Breslin and Patrick Foley staged &lt;a href=&quot;https://www.pulitzer.org/finalists/michael-breslin-and-patrick-foley&quot;&gt;&lt;em&gt;Circle Jerk&lt;/em&gt;&lt;/a&gt;, a Pulitzer-finalist livestreamed satire about online trolls and mocking a hivemind&#39;s self-image. The aesthetic and badges. Building a fake earnest website to satirize earnest websites is cataloged on the &lt;a href=&quot;https://indieweb.org/design-satire&quot;&gt;IndieWeb wiki&lt;/a&gt;, alongside an unusable UI called User Inyerface.&lt;/p&gt;
&lt;p&gt;Anyways, back to circlejerk.blog, I want to praise the work done to mimic &lt;a href=&quot;https://unstory.eu/&quot;&gt;Unstory&#39;s site&lt;/a&gt;. It&#39;s a very convincing 1:1 mimicry, and his writing mannerisms are nailed, though not the &lt;em&gt;substance&lt;/em&gt; of what he writes--which I&#39;ll get into.&lt;/p&gt;
&lt;p&gt;I&#39;ve been thinking about how I want to approach responding to this. The archives and previous iterations of circlejerk.blog target the stereotypical IndieWebber--what I imagine to be a Portland-esque cishet white guy hipster that&#39;s techbro adjacent; an online nerd that&#39;s remarkably placid and polite. As Ava recently pointed out, &lt;a href=&quot;https://blog.avas.space/parody-post/&quot;&gt;robots can easily parody this.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And I have to concede that a lot of that description &lt;em&gt;does&lt;/em&gt; fit me, but at the same time, that isn&#39;t who I am. I&#39;m a native boy from Winnipeg--I&#39;m not going to get upset at someone poking fun at me. My people have always been quick to laughter and taking the piss. I love being the butt of the joke, because it means nobody else is getting hurt. I play it straight on this blog because &lt;a href=&quot;http://plaintext.brennan.day/clown-burnout/&quot;&gt;I&#39;ve been a clown my entire life&lt;/a&gt;, but I&#39;m a deeply unserious person.&lt;/p&gt;
&lt;p&gt;If anything, I am disappointed at the punches pulled by this satire.&lt;/p&gt;
&lt;p&gt;Although someone unfamiliar with Unstory might think this is accurate to his character, I can assure you it&#39;s far off. The &lt;em&gt;real&lt;/em&gt; Unstory wrote things like how those on the Internet are full of &lt;a href=&quot;https://unstory.eu/aie/&quot;&gt;&amp;quot;activists, people who think they are cats, and those who feel the need to announce their mental illness.&amp;quot;&lt;/a&gt; and told me how my &amp;quot;mind can invent gods, fall in love with an anime character, and call that seeking.&amp;quot; He views IndieWeb events as mere &lt;a href=&quot;https://unstory.eu/fcl/&quot;&gt;&amp;quot;Idiot challenge, #shitfest, stupidity festival.&amp;quot;&lt;/a&gt; That is incendiary. Something with real teeth to the bite.&lt;/p&gt;
&lt;p&gt;Before I stumbled across this satire, I was thinking about the steelman argument against my latest post. For instance, you could argue that the webmaster didn&#39;t &amp;quot;die&amp;quot; because the web got too complex; the title got replaced by more accurate job roles. That&#39;s simply how language works, rather than some sort of tragedy. Google rebranding &amp;quot;Webmasters&amp;quot; to &amp;quot;Search Central&amp;quot; was a marketing decision by a company that never cared about the term in the first place.&lt;/p&gt;
&lt;p&gt;Or that hosting a static HTML page on Neocities is not actually &amp;quot;mastering the web.&amp;quot; A historical webmaster managed servers, security, databases, email, and user accounts. Changing the meaning of the title and claiming victory.&lt;/p&gt;
&lt;p&gt;Or that my universalism is hollow, and trying to argue that &amp;quot;it doesn&#39;t matter if you speak English,&amp;quot; is hypocritical when my entire essay and every single resource I listed are in English. I say it&#39;s not about labels then spend paragraphs praising IndieWeb, web revival, and specific communities. I can&#39;t have it both ways.&lt;/p&gt;
&lt;p&gt;There are many flaws you could point out, and the reason I don&#39;t address all of these is because the essay is already thousands of words long and hedging just dilutes the important point I was trying to make.&lt;/p&gt;
&lt;p&gt;Anyways, I suppose my point is &lt;strong&gt;I desperately want to see more satire and humour in these spaces.&lt;/strong&gt; Lighten the fuck up, subvert expectations, say things that are a little inflammatory once in a while. This does not mean to be hurtful or malicious, and it is a real art to execute that properly.&lt;/p&gt;
&lt;p&gt;I think of Chi-Jean and Wiisakaychaak from tales. Those who make mistakes, act foolishly, and break rules. These are tricksters who shape the world and teach humans how to live.&lt;/p&gt;
&lt;p&gt;Gluttonous, foolish, always getting caught in their own trap, and given standing in old stories &lt;em&gt;because&lt;/em&gt; of the foolishness, not despite it. Anishinaabe scholar Gerald Vizenor came up with the term &lt;a href=&quot;https://journals.openedition.org/temoigner/2361?lang=en&quot;&gt;survivance&lt;/a&gt;. Survival and resistance. And it describes how trickster storytelling refused the story colonization was trying to tell about them. Trickster humour is a Trojan horse. We can use shared laughter to slip past someone&#39;s defenses and land empathy where an argument would&#39;ve bounced off.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Trickster is an imperfect hero. Trickster tells us truths about ourselves and reveals sides of our nature that we might be more comfortable not to acknowledge. Through his actions all values come into being. The trickster is a paradox. As a shape shifter Trickster is all things to all people. The Trickster, by instructive example, allows us to break out of our stereotypes, whether imposed by our culture, our families or ourselves. He demonstrates the dangers that lie in wait for those with voracious appetites.&lt;br /&gt;
--&lt;a href=&quot;https://www.metismuseum.ca/media/document.php/13465.Metis&quot;&gt;Métis Mythology and Folklore&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>WEBMASTER@ a manifesto for everyone</title>
		<link href="http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/"/>
		<updated>2026-08-17T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/webmaster-a-manifesto-for-everyone/</id>
		<content type="html">&lt;p&gt;A week ago, when I was &lt;a href=&quot;https://brennan.day/html-day-2026/&quot;&gt;working on my project&lt;/a&gt; for &lt;a href=&quot;https://html.energy/&quot;&gt;HTML Day 2026&lt;/a&gt; I stumbled upon this passage from &lt;a href=&quot;https://thehistoryoftheweb.com/blink-marquis-tag/&quot;&gt;an essay on &lt;code&gt;blink&lt;/code&gt; and &lt;code&gt;marquee&lt;/code&gt; tags&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;At the time, there was a new breed of web professionals proudly labeled &amp;quot;webmasters.&amp;quot; Part designer, part developer and part evangelist, webmasters held enough esoteric knowledge about the web to manage, edit and create websites, both large and small.&lt;br /&gt;
-- Jay Hoffman (August 28th, 2017)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And that&#39;s when everything clicked for me.&lt;/p&gt;
&lt;p&gt;Over the past year, I&#39;ve written dozens of articles on the &lt;a href=&quot;https://brennan.day/collections/indieweb/&quot;&gt;Independent Web&lt;/a&gt;. &lt;a href=&quot;https://indieweb.org/User:Brennan.day#Writing_About_IndieWeb&quot;&gt;Forty-two essays&lt;/a&gt; on principles, technical tutorials, accessibility, and advocacy.&lt;/p&gt;
&lt;p&gt;And, in a way, it has all been leading to this manifesto. Only through months of research and getting to know many kind and talented people and building things myself have I finally understood the true power of the webmaster.&lt;/p&gt;
&lt;p&gt;I think this will be the most important thing I&#39;ll ever write, and I wish to share it with you. With everyone.&lt;/p&gt;
&lt;h2 id=&quot;part-one%3A-the-past&quot; tabindex=&quot;-1&quot;&gt;Part One: THE PAST&lt;/h2&gt;
&lt;p&gt;The earliest webmasters were unauthorized, self-taught, one-person operations. &lt;a href=&quot;https://ahro.slac.stanford.edu/sites/default/files/2024-04/Addis_Surfing_19940127.pdf&quot;&gt;The first webmaster was a woman&lt;/a&gt;, Stanford librarian Louise Addis.&lt;/p&gt;
&lt;h3 id=&quot;i.-origins-(1993)&quot; tabindex=&quot;-1&quot;&gt;i. ORIGINS (1993)&lt;/h3&gt;
&lt;p&gt;It was a few years after Tim Berners-Lee christened the &lt;a href=&quot;https://en.wikipedia.org/wiki/History_of_the_World_Wide_Web#/media/File:NeXTcube_first_webserver.JPG&quot;&gt;first web server&lt;/a&gt; at CERN at the end of 1990, and published the first website &lt;code&gt;info.cern.ch&lt;/code&gt; on August 6th, 1991[^1].&lt;/p&gt;
&lt;p&gt;[^1]: You will find claims that &amp;quot;webmaster&amp;quot; originated from CERN itself across &lt;a href=&quot;https://longislandwebmaster.com/blog/the-evolution-and-origins-of-webmasters/&quot;&gt;SEO and marketing blogs&lt;/a&gt;, but this is mere folk etymology I couldn&#39;t independently verify. Multiple independent lexicographic sources mark 1993 as the first attested year of the webmaster, such as the &lt;a href=&quot;https://www.oed.com/dictionary/webmaster_n&quot;&gt;OED&lt;/a&gt; and &lt;a href=&quot;https://www.etymonline.com/word/webmaster&quot;&gt;Etymonline&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The webmaster was first understood as the Internet&#39;s equivalent to the real-world postmaster.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Other protocols have defacto standards for well known mailbox names, such as &lt;a href=&quot;mailto:USENET@domain&quot;&gt;USENET@domain&lt;/a&gt; for NNTP (see [RFC977]), and &lt;a href=&quot;mailto:WEBMASTER@domain&quot;&gt;WEBMASTER@domain&lt;/a&gt; for HTTP (see [HTTP]).&amp;quot;&lt;br /&gt;
-- RFC 2142, &amp;quot;Mailbox Names for Common Services, Roles and Functions,&amp;quot; Dave Crocker, Internet Mail Consortium. (May 1997)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This RFC--alongside &lt;code&gt;&amp;lt;POSTMASTER@domain&amp;gt;&lt;/code&gt; (required by RFC 822)--is what cemented &amp;quot;webmaster&amp;quot; as the canonical, protocol-level point-of-contact role for a website.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The word &amp;quot;webmaster&amp;quot; comes from a similar role defined in the original specification for email called the postmaster, which in turn comes from the similarly named government position Postmaster General. You can think of the postmaster as an email administrator. The idea being that you can email postmater[sic] @ some domain, and always be connected directly to somebody that could fix a problem with the email. That remains a reserved name today on any email inbox. The webmaster served a pretty similar purpose on the web.&amp;quot;&lt;br /&gt;
-- Jay Hoffman, &lt;a href=&quot;https://thehistoryoftheweb.com/postscript/what-happened-to-the-webmaster/&quot;&gt;&amp;quot;What Happened to the Webmaster&amp;quot;&lt;/a&gt; (June 16, 2020)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And thus, &lt;code&gt;webmaster@domain&lt;/code&gt; was already the de facto email inbox address tied to the HTTP protocol itself.&lt;/p&gt;
&lt;p&gt;The label and title quickly grew into something far more than that, though.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;At first it referred to that frustrated techie who set up the rogue Web server without company authorization, coded HTML by hand in a text editor, FTP&#39;d the files to the server, and in his spare time answered all the incoming corporate e-mails, usually also without company authorization.&amp;quot;&lt;br /&gt;
-- Brian Wold, &lt;a href=&quot;https://brianwold.com/what-happened-to-the-webmaster-and-other-misleading-titles/&quot;&gt;&amp;quot;What Happened to the Webmaster? (And other misleading titles)&amp;quot;&lt;/a&gt; (May 12, 2006)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;ii.-golden-age-(1994-2001)&quot; tabindex=&quot;-1&quot;&gt;ii. GOLDEN AGE (1994-2001)&lt;/h3&gt;
&lt;p&gt;The era that conjures &amp;quot;webmaster&amp;quot; most strongly began in the mid 90&#39;s, as Beverly Hills Internet was launched, now known as GeoCities.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;[T]he point about the web before social networks or before Web 2.0 is not that you had a profile on GeoCities, but that you had a chance to build your cyber home outside of it, you could exist and grow outside of a centralized service.&amp;quot;&lt;br /&gt;
-- Olia Lialina, quoted in &lt;a href=&quot;https://cybercultural.com/p/geocities-1995/&quot;&gt;Cybercultural&lt;/a&gt; by Richard MacManus (March 7, 2025)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A culture developed as people realized anybody could make their own website. 88x31 buttons, blinkies, .GIFs, web rings, visitor counters, guestbooks. All originate from this time.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In 1996, the web was littered with black-and-yellow-striped animated .gifs reveling in metaphors of road construction... &#39;This site under construction&#39; was the default home page disclaimer, until everyone realized that the inherent nature of the web was that it would be perpetually under construction.&amp;quot;&lt;br /&gt;
-- &lt;a href=&quot;https://www.oreilly.com/library/view/fresher-styles-for/9780321602657/ch10.html&quot;&gt;&lt;em&gt;Fresher Styles for Web Designers&lt;/em&gt;&lt;/a&gt;, O&#39;Reilly (December 2008)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While GeoCities is fondly remembered now, it certainly had its problems and issues. Similarly, there were other platforms at the time as well, such as Tripod, Angelfire, and Homestead. It can be easy to revise history into an idealized monoculture.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It was not a paradise for early web makers. It was not even a good web hosting service. It was free and not worse than others, that&#39;s why webmasters endured the pain of clumsy page builders, interventions from commercial scripts being injected into their pages, accidental file deletions, etc...&amp;quot;&lt;br /&gt;
-- &lt;a href=&quot;https://blog.geocities.institute/archives/6418&quot;&gt;&amp;quot;GeoCities&#39; Afterlife and Web History,&amp;quot;&lt;/a&gt; by Olia Lialin, One Terabyte of Kilobyte Age (July 30, 2019)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Over 38 million pages were deleted when Yahoo shut down the platform in 2009.&lt;/p&gt;
&lt;h3 id=&quot;iii.-the-decline-(2008-2020)&quot; tabindex=&quot;-1&quot;&gt;iii. THE DECLINE (2008-2020)&lt;/h3&gt;
&lt;p&gt;As sites grew and the Internet evolved from the expectation of a handful of HTML files located in &lt;code&gt;/var/www/html/&lt;/code&gt; into instead a complex beast of software and content management systems, the &amp;quot;one person does everything&amp;quot; model stopped being the default, and the title became a culture-war topic among web professionals.&lt;/p&gt;
&lt;p&gt;Schisms grew from the complexity. The Internet became a vector for business, and then &lt;em&gt;the&lt;/em&gt; way to make money as the dotcom bubble inflated. People needed to specialize, whether that was to design for the front-end, or program and administrate the server from the back-end. You needed usability specialists and network engineers and search engine optimizers.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Dammit Jim, I&#39;m a Webmaster, not a Digital Government Web Content Communications and Application Development Knowledge Management Specialist! ...or am I?&lt;br /&gt;
Is the term webmaster an accurate description of the responsibilities of today&#39;s web professional, or is that moniker just a quaint artifact from the simpler, earliest days of the web where someone akin to a similarly quaint notion of a Ringmaster juggled a circus of unwieldy text, spinning logos and blinking text?&lt;br /&gt;
-- David Kitzmiller, FCC Webmaster, &lt;a href=&quot;https://www.fcc.gov/news-events/blog/2010/08/12/mastering-web-old-fashioned-notion&quot;&gt;Mastering the Web: An Old-Fashioned Notion?&lt;/a&gt; (August 12, 2010)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Perhaps the clearest and most citable marker of the term&#39;s formal retirement from mainstream professional use is when Google rebranded &amp;quot;Google Webmasters&amp;quot; to &amp;quot;Google Search Central&amp;quot; in 2020. An institutional funeral.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Merriam-Webster claims the first known use of the word &#39;webmaster&#39; was in 1993, years before Google even existed. However, the term is becoming archaic, and according to the data found in books, its use is in sharp decline. A user experience study we ran revealed that very few web professionals identify themselves as webmasters anymore. They&#39;re more likely to call themselves Search Engine Optimizer (SEO), online marketer, blogger, web developer, or site owner, but very few &#39;webmasters.&#39; In brainstorming our new name, we realized that there&#39;s not one term that perfectly summarizes the work people do on websites.&amp;quot;&lt;br /&gt;
-- &lt;a href=&quot;https://developers.google.com/search/blog/2020/11/goodbye-google-webmasters&quot;&gt;Google Search Central Blog&lt;/a&gt; (Nov 12, 2020)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;rule&quot; aria-hidden=&quot;true&quot;&gt;------------------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;h2 id=&quot;part-two%3A-now&quot; tabindex=&quot;-1&quot;&gt;Part Two: NOW&lt;/h2&gt;
&lt;p&gt;It is your innate human right to create.&lt;/p&gt;
&lt;p&gt;All of the above was pretext for this: &lt;strong&gt;You can be a webmaster right now.&lt;/strong&gt; You can create a website right now. Yes, you. Your website can look however you want it to, and function in any way you want. It can have whatever you want on it.&lt;/p&gt;
&lt;p&gt;You can look up tutorials, and you can have your questions answered by humans just by joining &lt;a href=&quot;https://discourse.32bit.cafe/&quot;&gt;forums&lt;/a&gt;, &lt;a href=&quot;https://indieweb.org/IRC&quot;&gt;IRC channels&lt;/a&gt;, and &lt;a href=&quot;https://pillowfort.social/&quot;&gt;independent platforms&lt;/a&gt;. The act of creating and learning inherently places you in the community.&lt;/p&gt;
&lt;h3 id=&quot;prelude%3A-the-deception&quot; tabindex=&quot;-1&quot;&gt;prelude: The Deception&lt;/h3&gt;
&lt;p&gt;Generally speaking, we have been deceived into thinking many broad falsehoods:&lt;/p&gt;
&lt;p&gt;Regarding the webmaster:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The Internet has become too complex for a single person to master all aspects of it.&lt;/li&gt;
&lt;li&gt;You must use a certain tool or platform to properly be part of this movement.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Regarding the Internet:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Technology is inherently addictive, and brings us harm.&lt;/li&gt;
&lt;li&gt;In order to stay connected to others online, we must use corporate social media platforms, become the product, and surrender our privacy.&lt;/li&gt;
&lt;li&gt;The Internet is primarily falsehoods, misinformation, and meaningless spam content.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Regarding us:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Most of us are incapable of learning technical, scientific, mathematical concepts.&lt;/li&gt;
&lt;li&gt;Those of us who are knowledgeable are reluctant to share information, and hostile to beginners.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When laid out like this, it&#39;s easy to see how we&#39;ve been conned into a cynical, pessimistic--even misanthropic view of things. Companies worth billions of dollars have a bottom line that depends on the general population to continue believing all of the above.&lt;/p&gt;
&lt;p&gt;Our perspective on technology and other people has been greatly distorted into the negative. In reality, the Internet has terabytes of high-quality resources to learn from. There are thousands of people just like you looking for connection, hungry for a better vision of the future, wanting to cultivate nourishing hobbies. You are so capable.&lt;/p&gt;
&lt;p&gt;The idea that one person cannot master all aspects of the web, as the webmaster was once known to, is demonstrably false.&lt;/p&gt;
&lt;p&gt;Be optimistic about your capabilities and the willingness of others to help you. Be skeptical of anybody who attempts to divide or gatekeep, proclaiming the mandated use or superiority of a specific tool or platform.&lt;/p&gt;
&lt;p&gt;Likewise, I want to note that searching for &amp;quot;return of the webmaster&amp;quot; in 2026 may lead you to discussions of the &amp;quot;agentic web&amp;quot; or &amp;quot;orchestration,&amp;quot; a euphemism for somebody who employs generative AI to do the multidisciplinary work that comes with being a webmaster. Those who manage a stack of expensive large language models, those who are prompt engineers for static site generators, and those who neglect to take the time to learn for themselves, unwilling to put in the effort themselves (or thinking they&#39;re incapable to).&lt;/p&gt;
&lt;p&gt;That&#39;s not what this is. My manifesto is not about becoming an orchestrator. Being a webmaster means &lt;strong&gt;becoming a sovereign creator.&lt;/strong&gt; We are not reclaiming the title of &amp;quot;webmaster&amp;quot; only to then offload the work and art onto chatbots. We are reclaiming it because it is the only title that remains which still carries the weight of total, unapologetic human agency over our digital lives.&lt;/p&gt;
&lt;h3 id=&quot;a.-the-bare-minimum-is-all-you-need&quot; tabindex=&quot;-1&quot;&gt;a. The Bare Minimum is All You Need&lt;/h3&gt;
&lt;p&gt;To be a Webmaster, you need a computer, a text editor, and a way to host. That&#39;s it.&lt;/p&gt;
&lt;p&gt;You don&#39;t need a degree in computer science. You don&#39;t need a $50/month subscription to a proprietary builder. You don&#39;t even need the money to buy a domain name if you don&#39;t have the cash.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use https://freedns.afraid.org/ to get a free domain.&lt;/li&gt;
&lt;li&gt;Throw your files up on &lt;a href=&quot;https://neocities.org/&quot;&gt;Neocities&lt;/a&gt; or &lt;a href=&quot;https://nekoweb.org/&quot;&gt;Nekoweb&lt;/a&gt; or &lt;a href=&quot;https://web1.0hosting.net/&quot;&gt;web 1.0 hosting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Write your HTML in Notepad. Edit your CSS in TextEdit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you don&#39;t have a computer or Internet yourself, you could be sitting in a public library on a recycled Chromium machine and still you have everything you need to become a Webmaster. There are not gatekeepers at the doors of the World Wide Web. Like many other things in life, the only lock is the one we put on our own ambitions.&lt;/p&gt;
&lt;p&gt;A Webmaster is not just a developer. You are a UX/UI designer, you are a writer and editor, you are an accessibility specialist, and an advocate for others to reclaim their digital autonomy. You are a creator, rather than a consumer. And you are capable of all these things.&lt;/p&gt;
&lt;p&gt;You will wrestle with semantic markup to make a page accessible. You will agonize over typeface kerning and colour palettes. You will write prose and publish your weird obsessions and link to your Internet neighbours. You will manage server logs, tweak the &lt;code&gt;.htaccess&lt;/code&gt; file, and you will decide and design the architecture of your digital home.&lt;/p&gt;
&lt;p&gt;This is not a career path, this is a craft. This is the last best multidisciplinary sandbox, both creative and technical, all rendered on an &lt;code&gt;index.html&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;And &lt;strong&gt;there is no wrong answer.&lt;/strong&gt; Serve your website &lt;a href=&quot;http://plaintext.brennan.day/gemini-gophers-and-fingers-oh-my-alternative-internets-beyond-https/&quot;&gt;over the Gemini protocol&lt;/a&gt;. SSH into &lt;a href=&quot;https://tildeverse.org/&quot;&gt;the Tildeverse&lt;/a&gt; and build a terminal-based homepage alongside strangers. &lt;a href=&quot;http://plaintext.brennan.day/homelab-for-the-beginner-you-can-self-host-your-own-server-on-50-hardware/&quot;&gt;Set up a homelab&lt;/a&gt; in your closet using the old, defunct family computer. There are a million ways to do this. The only wrong answer is sitting on the sidelines believing you don&#39;t belong in the arena with us.&lt;/p&gt;
&lt;h3 id=&quot;b.-the-last-public-square&quot; tabindex=&quot;-1&quot;&gt;b. The Last Public Square&lt;/h3&gt;
&lt;p&gt;Corporate social media platforms we used to call the &amp;quot;new public square&amp;quot; have been astroturf&#39;d, bulldozed, and sold to the highest-bidding fascist oligarch. Your existence is a rental, your voice is a throttled lottery. Your so-called &amp;quot;community&amp;quot; is at the mercy of a billionaire&#39;s whim.&lt;/p&gt;
&lt;p&gt;Building your own website is an act of digital repatriation.&lt;/p&gt;
&lt;p&gt;Creating your own corner of the Internet reclaims one of the only mediums where we retain freedom, creativity, and autonomy.&lt;/p&gt;
&lt;p&gt;With the plethora of hosting options available, you can migrate if terms of service change to your disliking. There&#39;s no pay-to-play visibility. There&#39;s just you, text, and the open protocols of the web.&lt;/p&gt;
&lt;h3 id=&quot;c.-the-myth-of-incompetence&quot; tabindex=&quot;-1&quot;&gt;c. The Myth of Incompetence&lt;/h3&gt;
&lt;p&gt;The most effective way the power structures of our age have oppressed us is by making us feel as though we are stupid, as though we are incapable of learning.&lt;/p&gt;
&lt;p&gt;Many of us have been convinced coding is arcane magic, that servers are eldritch horrors, and that computer science is reserved for child prodigies and those who are privileged to just &amp;quot;naturally get it.&amp;quot;&lt;/p&gt;
&lt;p&gt;A user who is afraid of the machine and doubts their own capabilities is one that will surrender and pay for a solution.&lt;/p&gt;
&lt;p&gt;You are not incapable. There is a lot to learn, yes. And the technologies are deep. But do not forget we are still living in the golden age of human knowledge--endless free resources, tutorials, wikis, and forums are available at your fingertips.&lt;/p&gt;
&lt;p&gt;I will repeat myself and say the only barrier that exists is the one you construct in your mind.&lt;/p&gt;
&lt;p&gt;You require grit, determination, and a &amp;quot;why.&amp;quot; &lt;strong&gt;This is your why.&lt;/strong&gt; The desire to express yourself. The hunger to build something truly of your own. The need to connect with other humans.&lt;/p&gt;
&lt;h3 id=&quot;d.-universalism&quot; tabindex=&quot;-1&quot;&gt;d. Universalism&lt;/h3&gt;
&lt;p&gt;Let me be clear: this is not about &amp;quot;IndieWeb&amp;quot; specs, it isn&#39;t about the &amp;quot;Small Web&amp;quot; or &amp;quot;SmolWeb.&amp;quot; It isn&#39;t a retro-revival nostalgia trip, pining for GeoCities and AOL dial-up tones.&lt;/p&gt;
&lt;p&gt;Those are all labels, clubs, and memberships. Standards with elitism and in-group and cliques and gatekeeping as a result.&lt;/p&gt;
&lt;p&gt;What I&#39;m talking about is universal. It&#39;s not about specific mechanics, it&#39;s about a philosophy. It is a big tent.&lt;/p&gt;
&lt;p&gt;It doesn&#39;t matter if you speak English. It doesn&#39;t matter if you don&#39;t know how to spell words right in your native tongue. It doesn&#39;t matter if you don&#39;t know a single line of JavaScript, either.&lt;/p&gt;
&lt;p&gt;And it certainly doesn&#39;t matter if you think you have &amp;quot;nothing interesting to say.&amp;quot; I promise you do. All humans have value, we have our hobbies, our frustrations, our obsessions and small thoughts. Putting this in writing on a page you build with your own hands means you&#39;re contributing to a richer, stranger, more wonderful ecosystem.&lt;/p&gt;
&lt;h3 id=&quot;e.-those-who-came-before&quot; tabindex=&quot;-1&quot;&gt;e. Those Who Came Before&lt;/h3&gt;
&lt;p&gt;I stand on the shoulders of giants. I am not the first to write a web manifesto, nor the last. I myself am nobody special, nor anybody with authority. I am mere conduit for a message that desperately needs to be heard.&lt;/p&gt;
&lt;p&gt;I give credit to Tantek Çelik, Amber Case, Aaron Parecki, Crystal Beasley, and Kevin Marks for founding &lt;a href=&quot;https://indieweb.org/&quot;&gt;&lt;strong&gt;IndieWebCamp&lt;/strong&gt;&lt;/a&gt; in Portland, Oregon in 2011.&lt;/p&gt;
&lt;p&gt;I give credit to Daniel Murray&#39;s &lt;a href=&quot;https://melonking.net/&quot;&gt;&lt;strong&gt;melonking.net&lt;/strong&gt;&lt;/a&gt; as a foundational &amp;quot;web revival&amp;quot; artifact.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;[The web revival] is a riff on the 20th century American folk music revival, and it implies that early personal sites, like those hosted on GeoCities, were culturally significant as digital folk art.&amp;quot;&lt;br /&gt;
-- Daniel Murray (Melonking), quoted in &lt;a href=&quot;https://newpublic.substack.com/p/the-handmade-internet-is-making-a&quot;&gt;New_ Public&lt;/a&gt; (September 7, 2025)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I give credit to webmistress &lt;a href=&quot;https://sadgrl.online/&quot;&gt;&lt;strong&gt;Sadness&lt;/strong&gt;&lt;/a&gt;, who has been sharing resources on web mastery for years, and was the founder of the now defunct &lt;a href=&quot;https://yesterweb.org/&quot;&gt;Yesterweb&lt;/a&gt;, served as many people&#39;s first experience of the indie-web-crafting scene.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the earlier iterations of this manifesto, I made the mistake of focusing too heavily on the creation of personal websites as the main method of fighting against the exploitative capitalist hellscape that has become our Internet... For example, we can work on transforming social relations online.&amp;quot;&lt;br /&gt;
-- Sadness, &lt;a href=&quot;https://sadgrl.online/posts/internet-manifesto/&quot;&gt;Internet manifesto&lt;/a&gt; (May 2023)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I give credit to &lt;a href=&quot;https://jamesg.blog/&quot;&gt;&lt;strong&gt;James G.&lt;/strong&gt;&lt;/a&gt;, who has been blogging about the independent Internet for over six years, who hosts the podcast &lt;a href=&quot;https://web-weaving.jamesg.blog/&quot;&gt;Wonders of Webweaving&lt;/a&gt;, and who has recently founded the &lt;a href=&quot;https://webwriterscollective.com/&quot;&gt;Web Writers&#39; Collective&lt;/a&gt;, which is open to anyone.&lt;/p&gt;
&lt;p&gt;I give credit to &lt;a href=&quot;https://xandra.cc/&quot;&gt;Alexandra&lt;/a&gt; and &lt;a href=&quot;https://kaylee.wtf/&quot;&gt;Kaylee&lt;/a&gt; for the community and resources of &lt;a href=&quot;https://32bit.cafe/&quot;&gt;32-bit Café&lt;/a&gt;. I give credit to &lt;a href=&quot;https://neatnik.net/&quot;&gt;Adam Newbold&lt;/a&gt; for the community and services of &lt;a href=&quot;https://omg.lol/&quot;&gt;omg.lol&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are hundreds of people who have dedicated thousands of hours in trying to make the web more human and joyous for all.&lt;/p&gt;
&lt;h3 id=&quot;f.-saving-the-world&quot; tabindex=&quot;-1&quot;&gt;f. Saving the World&lt;/h3&gt;
&lt;p&gt;We can create a more human web right now. The world is in dire straits, and I&#39;m reminded of the words of Carl Sagan, coincidentally written at the dawn of the webmaster:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In our obscurity, in all this vastness, there is no hint that help will come from elsewhere to save us from ourselves.&amp;quot;&lt;br /&gt;
-- Carl Sagan, Pale Blue Dot (1994)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are those who see the act of webmastery as &amp;quot;only&amp;quot; a hobby and pastime--and I say this is not mutually exclusive to world-saving. The personal is political. Our ability to maintain our joy and ourselves is, itself, resistance.&lt;/p&gt;
&lt;p&gt;Here is another falsehood I want to emphasize: &lt;strong&gt;Our right to freely express ourselves is never a guarantee.&lt;/strong&gt; The past thirty years of the Internet have been an explosive, chaotic experiment in the commons and the human condition. But the freedom of expression we&#39;ve been granted is not a given or perpetual promise, and it is extremely foolish to think we will have this for the next ten years, let alone forever.&lt;/p&gt;
&lt;p&gt;Start as you are, with what you have, while you still have time to do so.&lt;/p&gt;
&lt;p&gt;Exercise your innate human right to create.&lt;/p&gt;
&lt;p&gt;Be a developer. Be a designer. Be a writer. Be a systems administrator. Be a philosopher. Be a Webmaster.&lt;/p&gt;
&lt;p&gt;It is the most punk rock, anti-establishment, liberating thing you can do in the 21st century. And yeah, it is fucking awesome.&lt;/p&gt;
&lt;p&gt;Now, go build something.&lt;/p&gt;
&lt;div class=&quot;rule&quot; aria-hidden=&quot;true&quot;&gt;------------------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;h2 id=&quot;further-resources&quot; tabindex=&quot;-1&quot;&gt;FURTHER RESOURCES&lt;/h2&gt;
&lt;h3 id=&quot;getting-started&quot; tabindex=&quot;-1&quot;&gt;Getting Started&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://sadgrl.online/webmastery/&quot;&gt;Sadness&#39; Webmastery Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://discourse.32bit.cafe/t/resources-list-for-the-personal-web/49&quot;&gt;32-bit Café Community Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://indieweb.org/Getting_Started&quot;&gt;IndieWeb: Getting Started&lt;/a&gt;: The step-by-step guide to getting your own site on the IndieWeb, covering domains, hosting, and creating pages&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://indiewebify.me/&quot;&gt;IndieWebify.Me&lt;/a&gt;: Step-by-step guidance and tools to test and validate your IndieWeb progress&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML&quot;&gt;MDN Web Docs: HTML Tutorial&lt;/a&gt;: Mozilla&#39;s HTML documentation and tutorials&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.htmldog.com/&quot;&gt;HTML Dog&lt;/a&gt;: A classic starting point for HTML and CSS tutorials&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3schools.com/&quot;&gt;W3Schools&lt;/a&gt;: Free coding tutorials for HTML, CSS, JavaScript, and more&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zonelets.net/&quot;&gt;Zonelets&lt;/a&gt;: A lightweight blogging engine letting you write posts directly in HTML&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/n1ghtw1re/Neocities_Template_Tool&quot;&gt;Neocities Template Tool&lt;/a&gt;: A simple three-column template for Neocities and other simple site hosts&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ransei.neocities.org/pages/other/template-make&quot;&gt;The Boilerplate&lt;/a&gt;: Ransei&#39;s starter template with drag-and-drop upload instructions for Neocities&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://stefanbohacek.com/blog/making-a-free-image-gallery-with-neocities-org/&quot;&gt;Stefan Bohacek: Making a free image gallery with Neocities.org&lt;/a&gt;: Tutorials for creating image galleries with Neocities, including an 11ty version&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://susam.net/writing-first-tooling-second.html&quot;&gt;Susam Pal: Writing First, Tooling Second&lt;/a&gt;: A manifesto advocating for prioritizing content in simple HTML before complex tooling&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;hosting&quot; tabindex=&quot;-1&quot;&gt;Hosting&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://neocities.org/&quot;&gt;Neocities&lt;/a&gt;: Free, user-friendly hosting for handmade websites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nekoweb.org/&quot;&gt;Nekoweb&lt;/a&gt;: Another free hosting option for personal sites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://freedns.afraid.org/&quot;&gt;FreeDNS&lt;/a&gt;: Get a free domain name&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://omg.lol/&quot;&gt;omg.lol&lt;/a&gt;: Community and services from Adam Newbold and Neatnik&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bearblog.dev/&quot;&gt;Bear Blog&lt;/a&gt;: A minimalist, privacy-focused blogging platform&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://micro.blog/&quot;&gt;Micro.blog&lt;/a&gt;: Indie microblogging with built-in cross-posting&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.dreamwidth.org/&quot;&gt;Dreamwidth&lt;/a&gt;: An open-source blogging and community platform&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.codeberg.org/codeberg-pages/&quot;&gt;Codeberg Pages&lt;/a&gt;: Free static site hosting directly from Codeberg repositories&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;web-revival-communities&quot; tabindex=&quot;-1&quot;&gt;Web Revival Communities&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wiki.melonland.net/communities&quot;&gt;MelonLand Wiki: Communities&lt;/a&gt;: A directory of web revival communities, forums, and message boards including 32Bit Cafe, Pixel Joint, Basement Community, Comfybox, The Midnight Pub, Pixel Lounge, The Web Raft, and Reject Convenience&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sheezy.art/&quot;&gt;Sheezy.Art&lt;/a&gt;: An art website recreating the highs of pre-2010 DeviantArt and SheezyArt&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://spacehey.com/&quot;&gt;SpaceHey&lt;/a&gt;: A retro social network focused on privacy and customizability; a MySpace experience&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.bitview.net/&quot;&gt;Bitview&lt;/a&gt;: A video sharing site inspired by classic YouTube&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sudomemo.net/&quot;&gt;Sudomemo&lt;/a&gt;: A revival of Flipnote Hatena with community features&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ytoo.org/&quot;&gt;Ytoo.org&lt;/a&gt;: A web revival community hub&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://elpis.ws/&quot;&gt;Elpis.ws&lt;/a&gt;: Another web revival space&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;building&quot; tabindex=&quot;-1&quot;&gt;Building&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://sadgrl.online/projects/88x31-button-maker&quot;&gt;Sadgrl&#39;s 88x31 Button Maker&lt;/a&gt;: Create your own classic web button&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hekate2.github.io/buttonmaker/&quot;&gt;Hekate&#39;s 88x31 Button Maker&lt;/a&gt;: Another excellent button generator&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://indieweb.org/88x31&quot;&gt;IndieWeb&#39;s 88x31 page&lt;/a&gt;: More generators plus how to hand-code your own buttons&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ditherit.com/&quot;&gt;Dither It&lt;/a&gt;: Make dithered images for a retro aesthetic&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jspaint.app/&quot;&gt;JS Paint&lt;/a&gt;: Classic MS Paint in your browser&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jummbus.bitbucket.io/&quot;&gt;JummBox&lt;/a&gt;: Chiptune-style music program for the browser&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://coolors.co/&quot;&gt;Online Color Picker&lt;/a&gt;: Tools for choosing and testing color palettes&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.joshwcomeau.com/css/interactive-guide-to-grid/&quot;&gt;Josh W. Comeau: CSS Interactive Guide to Grid&lt;/a&gt;: An excellent interactive CSS Grid tutorial&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;webrings-%26-directories&quot; tabindex=&quot;-1&quot;&gt;Webrings &amp;amp; Directories&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wiki.archiveteam.org/index.php/Webring&quot;&gt;Archive Team: Webring Directory&lt;/a&gt;: A list of live niche webrings&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://brisray.com/web/webring-list.htm&quot;&gt;Brisray&#39;s Webring List&lt;/a&gt;: A hand-verified list of currently working webrings&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://discourse.32bit.cafe/t/32-bit-cafe-webring-directory/2835&quot;&gt;32-Bit Cafe Webring Directory&lt;/a&gt;: Active webrings created by 32-Bit Cafe members&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://melonland.net/surf-club&quot;&gt;MelonLand Surf Club&lt;/a&gt;: An active webring with over 1,500 sites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://smallweb.subway.land/&quot;&gt;The Smallweb Subway&lt;/a&gt;: A subway-style network of webrings mapping themed communities&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webring.xxiivv.com/&quot;&gt;XXIIVV Webring&lt;/a&gt;: An open-source initiative fostering independent personal websites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fediring.net/&quot;&gt;Fediring&lt;/a&gt;: A webring for the Fediverse&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a11y-webring.club/&quot;&gt;A11y Webring&lt;/a&gt;: A webring focused on accessibility&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://emreed.net/LowTech_Directory.html&quot;&gt;Low Tech Webring Directory&lt;/a&gt;: A directory of low-tech webrings&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fandomr.ing/&quot;&gt;Fandom Webring&lt;/a&gt;: A general fandom webring&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://transring.neocities.org/&quot;&gt;Transing the Internet&lt;/a&gt;: A trans webring with a small Discord community&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://handcraftedweb.eu/&quot;&gt;HandCraftedWeb.eu&lt;/a&gt;: A curated, decentralized directory and webring for the &amp;quot;Human Web&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;manifestos&quot; tabindex=&quot;-1&quot;&gt;Manifestos&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://yesterweb.org/#appendix-i&quot;&gt;Yesterweb&#39;s Collection of Web Manifestos&lt;/a&gt;: An excellent collection of manifestos written by others.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://yesterweb.org/zine/&quot;&gt;The Yesterweb Zine&lt;/a&gt;: collaborative zine that ran from Aug 2021 to Jan 2023&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zine.yesterweb.org/issue-00/&quot;&gt;Issue 00, &amp;quot;The Old Web&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zine.yesterweb.org/issue-02/&quot;&gt;Issue 02, &amp;quot;Websites as an Act of Creativity&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://indieweb.org/Why&quot;&gt;IndieWeb&#39;s &amp;quot;Why&amp;quot; page&lt;/a&gt;: Another list of personal-site manifestos from 1997 to 2026&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://melonking.net/melon?z=/thoughts/manifesto&quot;&gt;Melonking&#39;s Manifesto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ficd.sh/&quot;&gt;A Quiet Manifesto&lt;/a&gt;: On text, tech, caring, the importance of existing, and cave paintings&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tracydurnell.com/2025/01/21/guiding-principles-for-my-website/&quot;&gt;Tracy Durnell: Guiding principles for my website&lt;/a&gt;: Principles including being friendly, respecting privacy, prioritizing connection over reach, and practicing imperfection&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://newpublic.substack.com/p/the-handmade-internet-is-making-a&quot;&gt;New_Public: The Handmade Internet Is Making a Comeback&lt;/a&gt;: A 2025 article on the web revival movement&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;archives&quot; tabindex=&quot;-1&quot;&gt;Archives&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://archive.org/web/&quot;&gt;Wayback Machine&lt;/a&gt;: The Internet Archive&#39;s indispensable tool for viewing historical versions of websites
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hartator/wayback-machine-downloader&quot;&gt;Wayback Machine Downloader&lt;/a&gt;: Download an entire website from the Wayback Machine&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://flashpointarchive.org/&quot;&gt;Flashpoint Archive&lt;/a&gt;: Preserves games and animations from the web&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://escargot.chat/&quot;&gt;Escargot&lt;/a&gt;: A service that makes old versions of MSN Messenger and Windows Live Messenger work again&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://neonaut.neocities.org/cyber/crypt/&quot;&gt;Neonaut&#39;s Cyber Mausoleum&lt;/a&gt;: On leaving a digital tombstone&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;searching&quot; tabindex=&quot;-1&quot;&gt;Searching&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wiby.me/&quot;&gt;Wiby&lt;/a&gt;: A search engine for the classic web, prioritizing non-commercial content&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://search.marginalia.nu/&quot;&gt;Marginalia Search&lt;/a&gt;: A search engine that prioritizes non-commercial content and personal websites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://smallweb.cc/&quot;&gt;Smallweb.cc&lt;/a&gt;: A curated collection of websites&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudhiker.net/&quot;&gt;Cloudhiker&lt;/a&gt;: Another selection of websites&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;history&quot; tabindex=&quot;-1&quot;&gt;History&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://thehistoryoftheweb.com/archives/&quot;&gt;The History of the Web&lt;/a&gt;: An excellent collection of essays that inspired this post.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.webdesignmuseum.org/web-design-history&quot;&gt;Web Design Museum&lt;/a&gt;: A timeline of milestones in the history of web design from 1990 to the present.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ahro.slac.stanford.edu/wwwslac-exhibit&quot;&gt;SLAC&#39;s archive of the first U.S. website&lt;/a&gt; built by Addis and Paul Kunz, December 1991&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;my-other-indieweb-essays&quot; tabindex=&quot;-1&quot;&gt;My Other IndieWeb Essays&lt;/h2&gt;
&lt;p&gt;Over the past year I&#39;ve written &lt;a href=&quot;https://indieweb.org/User:Brennan.day#Writing_About_IndieWeb&quot;&gt;forty-two essays&lt;/a&gt; on this subject. Here are the ones I think are most worth a beginner&#39;s time.&lt;/p&gt;
&lt;h3 id=&quot;starting-out&quot; tabindex=&quot;-1&quot;&gt;Starting Out&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/what-i-have-learned-being-on-the-indieweb-for-a-month/&quot;&gt;What I Have Learned Being on the IndieWeb for a Month&lt;/a&gt;: Small technical joys that turned solitude into dialogue, and treating the Internet like a personal playground and lab.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/resources-for-the-personal-web-a-follow-up-guide/&quot;&gt;Resources for the Personal Web: A Follow-Up Guide&lt;/a&gt;: Blogging platforms, search engines that prioritize small sites, and directories for finding like-minded creators.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/softcore-first-hardcore-eventually-a-ladder-for-the-indieweb/&quot;&gt;Softcore First, Hardcore Eventually: A Ladder for the IndieWeb&lt;/a&gt;: Why you should climb the rungs progressively instead of choosing between easy platforms and full technical independence on day one.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/the-1-rule-an-open-letter-to-everyone-who-doesnt-post-anything-online/&quot;&gt;The 1% Rule: An Open Letter to Everyone Who Doesn&#39;t Post Anything Online&lt;/a&gt;: A call to action for the 99% of internet users who consume but never create.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/you-dont-have-to-blog/&quot;&gt;You Don&#39;t Have to Blog&lt;/a&gt;: Your website can be shrines, art, or anything else. You don&#39;t need to write a single word to belong here.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;community-and-connection&quot; tabindex=&quot;-1&quot;&gt;Community and Connection&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/wont-you-be-my-neighbour/&quot;&gt;Won&#39;t You Be My Neighbour?&lt;/a&gt;: On mycorrhizal networks, Indra&#39;s Net, and the importance of building intentional connections between independent websites.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/yes-buy-them-a-coffee-support-and-mutual-aid-on-the-indieweb/&quot;&gt;Yes, Buy Them a Coffee: Support and Mutual Aid on the IndieWeb&lt;/a&gt;: Asking for support isn&#39;t commodification, it&#39;s mutual aid.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/the-internet-needs-more-cross-pollinators/&quot;&gt;The Internet Needs More Cross-Pollinators&lt;/a&gt;: We need people who move between different online subcultures to seed ideas and build bridges.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/the-indieweb-is-wonderfully-dionysian/&quot;&gt;The IndieWeb is Wonderfully Dionysian&lt;/a&gt;: A plea to write your own comments, from the heart, instead of letting genAI do it for you.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;building-it-yourself&quot; tabindex=&quot;-1&quot;&gt;Building It Yourself&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/building-an-indieauth-comment-system-for-your-static-site/&quot;&gt;Building an IndieAuth Comment System for Your Static Site&lt;/a&gt;: How to build a comment system for your static site using IndieAuth and Netlify Functions.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/how-webmentions-work-on-brennan-day/&quot;&gt;How Webmentions Work on brennan.day&lt;/a&gt;: A tutorial and walkthrough of implementing webmentions, from setup to display.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/why-make-your-website-accessible-anyways/&quot;&gt;Why Make Your Website Accessible, Anyways?&lt;/a&gt;: Web accessibility isn&#39;t compliance theatre, it&#39;s about designing for everyone.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/phoneblogging/&quot;&gt;Phoneblogging&lt;/a&gt;: Why the IndieWeb must prioritize accessible, simple ways to blog from a phone.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;the-bigger-picture&quot; tabindex=&quot;-1&quot;&gt;The Bigger Picture&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/building-the-good-web/&quot;&gt;Building the Good Web&lt;/a&gt;: What do we owe each other, and what&#39;s the distance between knowing something is wrong and doing something about it?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/trust-and-faith-in-our-web/&quot;&gt;Trust and Faith in Our Web&lt;/a&gt;: What is trust in an AI-saturated internet, and how do we make independent web spaces more accessible?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/good-standard-work-creating-the-commons/&quot;&gt;Good, Standard Work: Creating the Commons&lt;/a&gt;: From Garrett Hardin&#39;s tragedy of the commons to Elinor Ostrom&#39;s refutation, the commons was never inevitable to fail. It was always a choice.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/how-are-we-preparing-for-the-long-web/&quot;&gt;How Are We Preparing for the Long Web?&lt;/a&gt;: Digital preservation, link rot, and building for the Internet decades from now.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://plaintext.brennan.day/free-speech-and-the-indieweb/&quot;&gt;Free Speech and the IndieWeb&lt;/a&gt;: Not all harm is equal, and where we draw the lines in the sand for what&#39;s acceptable.&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
	<entry>
		<title>Advanced Webweaving: Auditing Against Specification.Website</title>
		<link href="http://plaintext.brennan.day/advanced-webweaving-auditing-against-specification-website/"/>
		<updated>2026-08-16T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/advanced-webweaving-auditing-against-specification-website/</id>
		<content type="html">&lt;p&gt;During my time on the omg.lol IRC channel (a place I find inspiration for many posts, it seems!), &lt;a href=&quot;https://skippy.omg.lol/&quot;&gt;Skippy&lt;/a&gt; shared an interesting website, &lt;a href=&quot;https://specification.website/&quot;&gt;The Website Specification&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now, I have to admit the site has a certain questionable aesthetic, but the checklist is valuable nonetheless. I&#39;ve always tried to make sure my web development follows good practices and good hygiene, but there were plenty of things I&#39;ve never really heard of or come across before.&lt;/p&gt;
&lt;p&gt;It&#39;s a big list. Foundations, SEO, accessibility, security, well-known URIs, &amp;quot;agent readiness&amp;quot; (bleh), performance, privacy, resilience, internationalisation. There&#39;s around 140 items to check off, each with a one-line justification for why it matters and a &lt;code&gt;Required&lt;/code&gt; / &lt;code&gt;Recommended&lt;/code&gt; / &lt;code&gt;Optional&lt;/code&gt; / &lt;code&gt;Avoid&lt;/code&gt; tag.&lt;/p&gt;
&lt;p&gt;Being the maximalist I am (in other words, I enjoy implementing functionality to my site as a means of procrastinating writing) I decided to go through, one-by-one, and see what I would need to change or add to my site.&lt;/p&gt;
&lt;h2 id=&quot;a-deliberate-skip&quot; tabindex=&quot;-1&quot;&gt;A Deliberate Skip&lt;/h2&gt;
&lt;p&gt;Before anything else, I skipped the entire &amp;quot;Agent Readiness&amp;quot; category. I&#39;m not going to add a &lt;code&gt;llms.txt&lt;/code&gt; to my codebase, or per-page markdown endpoints. It&#39;s quite a cruel joke that the generative AI gets simple, readable markdown while the rest of us are stuck with far more complex HTML, isn&#39;t it? Instead of figuring out a way to get web browsers to display Markdown directly, we&#39;ve duct-taped a solution for robots.&lt;/p&gt;
&lt;p&gt;Anyways, that&#39;s enough ranting about that for now. In addition, as I&#39;ve already written about, I have no AI-crawler-specific &lt;code&gt;robots.txt&lt;/code&gt; rules. The game of cat-and-mouse writing elaborate blockades is something I&#39;m not interested in. The only winning move is not to play. That said, I did actually add some fun honeypots that you can find if you try to visit high-risk application paths, default CMS/root paths, secrets &amp;amp; configuration file locations, or API &amp;amp; discovery endpoints. Maybe I&#39;ll make another post for that if there&#39;s interest.&lt;/p&gt;
&lt;p&gt;Agent readiness, as a category, assumes you &lt;em&gt;want&lt;/em&gt; agents reading your site efficiently. Unlike search engine optimization (which is usually snake oil itself), optimization for LLMs just makes your content easier to steal, and doesn&#39;t help getting more humans to your website.&lt;/p&gt;
&lt;h2 id=&quot;a-silly-bug&quot; tabindex=&quot;-1&quot;&gt;A Silly Bug&lt;/h2&gt;
&lt;p&gt;When you go over an audit like this, it makes you re-examine things you&#39;ve written ages ago. In the case of my &lt;code&gt;site.webmanifest&lt;/code&gt;, it made me realize it had empty &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;short_name&lt;/code&gt; fields:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;short_name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;icons&amp;quot;:[{&amp;quot;src&amp;quot;:&amp;quot;/android-chrome-192x192.png&amp;quot;, ...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Any Android user who tried to &amp;quot;Add to Home Screen&amp;quot; would&#39;ve gotten a shortcut with no label. Even worse, the icon paths were root-relative (&lt;code&gt;/android-chrome-192x192.png&lt;/code&gt;) when the actual files live at &lt;code&gt;/assets/images/favicon/android-chrome-192x192.png&lt;/code&gt;. The manifest has been silently erroring and pointing at 404s since whenever I first generated it with some online favicon tool and never looked at the output again. I fixed both:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;name&amp;quot;: &amp;quot;brennan.day&amp;quot;,
  &amp;quot;short_name&amp;quot;: &amp;quot;brennan.day&amp;quot;,
  &amp;quot;start_url&amp;quot;: &amp;quot;/&amp;quot;,
  &amp;quot;scope&amp;quot;: &amp;quot;/&amp;quot;,
  &amp;quot;icons&amp;quot;: [
    {&amp;quot;src&amp;quot;: &amp;quot;/assets/images/favicon/android-chrome-192x192.png&amp;quot;, &amp;quot;sizes&amp;quot;: &amp;quot;192x192&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;image/png&amp;quot;},
    {&amp;quot;src&amp;quot;: &amp;quot;/assets/images/favicon/android-chrome-512x512.png&amp;quot;, &amp;quot;sizes&amp;quot;: &amp;quot;512x512&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;image/png&amp;quot;}
  ],
  &amp;quot;theme_color&amp;quot;: &amp;quot;#fbf1c7&amp;quot;,
  &amp;quot;background_color&amp;quot;: &amp;quot;#fbf1c7&amp;quot;,
  &amp;quot;display&amp;quot;: &amp;quot;standalone&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In addition, the &lt;code&gt;&amp;lt;meta name=&amp;quot;theme-color&amp;quot;&amp;gt;&lt;/code&gt; was embarrassingly set to &lt;code&gt;#65312fff&lt;/code&gt;. I have no idea when I wrote out this typo--8-digit hex values do actually have utility, with the extra two digits &lt;a href=&quot;https://www.quackit.com/css/color/values/css_hex_color_notation_8_digits.cfm&quot;&gt;adding alpha channel for transparency&lt;/a&gt;, but that wasn&#39;t what was happening here. Anyways, I split the hex into a light/dark pair instead, matching my site&#39;s palette:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;meta name=&amp;quot;theme-color&amp;quot; content=&amp;quot;#fbf1c7&amp;quot; media=&amp;quot;(prefers-color-scheme: light)&amp;quot;&amp;gt;
&amp;lt;meta name=&amp;quot;theme-color&amp;quot; content=&amp;quot;#282828&amp;quot; media=&amp;quot;(prefers-color-scheme: dark)&amp;quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;security-headers%2C-or%3A-what-i&#39;d-been-putting-off&quot; tabindex=&quot;-1&quot;&gt;Security Headers, or: What I&#39;d Been Putting Off&lt;/h2&gt;
&lt;p&gt;A lot of work went into security headers. My &lt;code&gt;netlify.toml&lt;/code&gt; initially had &lt;code&gt;X-Frame-Options&lt;/code&gt;, which is &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options&quot;&gt;an outdated&lt;/a&gt; &lt;code&gt;X-XSS-Protection&lt;/code&gt; header that I removed, as it does nothing in any current browser, and &lt;a href=&quot;https://specification.website/&quot;&gt;the spec&lt;/a&gt; says to avoid using it.&lt;/p&gt;
&lt;p&gt;I had no &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP&quot;&gt;Content Security Policy&lt;/a&gt;, no &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security&quot;&gt;HSTS&lt;/a&gt;, and nothing about &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Window/crossOriginIsolated&quot;&gt;cross-origin isolation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Writing a CSP for a site that embeds webring widgets and uses KaTeX, Mermaid, and has an IndieAuth comment flow took a bit of work:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-perl&quot;&gt;Content-Security-Policy = default-src &#39;self&#39;;
  script-src &#39;self&#39; &#39;unsafe-inline&#39; &#39;wasm-unsafe-eval&#39;
    https://cloud.umami.is https://neatstats.net https://cdn.jsdelivr.net
    https://webring.fun https://silly.possiblyaxolotl.com
    https://bubbles.town https://status.lol;
  style-src &#39;self&#39; &#39;unsafe-inline&#39; https://cdn.jsdelivr.net
    https://silly.possiblyaxolotl.com;
  img-src &#39;self&#39; data: https:;
  font-src &#39;self&#39; data: https://cdn.jsdelivr.net;
  connect-src &#39;self&#39; https://cloud.umami.is https://*.supabase.co
    https://webring.fun https://neatstats.net https://bubbles.town;
  frame-src https://www.youtube.com;
  object-src &#39;none&#39;; base-uri &#39;self&#39;;
  form-action &#39;self&#39; https://indieauth.com https://buttondown.com
    https://*.supabase.co;
  frame-ancestors &#39;none&#39;; upgrade-insecure-requests;
  report-to default;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&#39;m not going to pretend that&#39;s a &lt;em&gt;strict&lt;/em&gt; CSP. It still has &lt;code&gt;&#39;unsafe-inline&#39;&lt;/code&gt; for both scripts and styles, because my site has inline &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; blocks for critical CSS (which is a &lt;a href=&quot;https://csswizardry.com/2022/09/critical-css-not-so-fast/&quot;&gt;debateable practice&lt;/a&gt;) and quite a few one-off inline &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags (theme toggle, scroll progress, the IndieAuth PKCE flow) scattered across templates.&lt;/p&gt;
&lt;p&gt;Doing this properly would mean having nonces or hashes on every single script, which frankly isn&#39;t a refactor I&#39;m interested in. What I have now still improves security if there was something like a XSS bug, by locking down which &lt;em&gt;domains&lt;/em&gt; can be a script/style/connect/frame source at all.&lt;/p&gt;
&lt;p&gt;For &lt;code&gt;Strict-Transport-Security&lt;/code&gt; and &lt;code&gt;Permissions-Policy&lt;/code&gt;, there was nothing complicated to add:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-perl&quot;&gt;Strict-Transport-Security = &amp;quot;max-age=63072000; includeSubDomains&amp;quot;
Permissions-Policy = &amp;quot;camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Cross-Origin-Embedder-Policy&lt;/code&gt; made me stop and think, the spec&#39;s default recommendation is &lt;code&gt;require-corp&lt;/code&gt;, which blocks any cross-origin resource that doesn&#39;t explicitly opt in with its own &lt;code&gt;Cross-Origin-Resource-Policy&lt;/code&gt; header. For instance, my website &lt;s&gt;hotlinks&lt;/s&gt; loads badge images from &lt;code&gt;aaronparecki.com&lt;/code&gt;, &lt;code&gt;indieweb.org&lt;/code&gt;, and &lt;code&gt;mirrors.creativecommons.org&lt;/code&gt;, none of which I control. &lt;code&gt;require-corp&lt;/code&gt; would&#39;ve broken these images. I used &lt;code&gt;credentialless&lt;/code&gt; instead, isolating the page the same way but only strips credentials from cross-origin requests rather than blocking them.&lt;/p&gt;
&lt;p&gt;I also wrote a &lt;code&gt;Reporting-Endpoints&lt;/code&gt; header pointing at a tiny new Netlify Function that logs whatever the browser sends it:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// netlify/functions/csp-report.js
exports.handler = async (event) =&amp;gt; {
  if (event.httpMethod !== &amp;quot;POST&amp;quot;) return { statusCode: 405, body: &amp;quot;&amp;quot; };
  console.warn(&amp;quot;[reporting-api] &amp;quot; + (event.body || &amp;quot;&amp;quot;).slice(0, 4000));
  return { statusCode: 204, body: &amp;quot;&amp;quot; };
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This isn&#39;t an actual observability pipeline, as it only &lt;code&gt;console.warn&lt;/code&gt; into logs through Netlify&#39;s log drains. But if my CSP is breaking something for a visitor, I&#39;ll be able to find out.&lt;/p&gt;
&lt;h2 id=&quot;the-csp-learning-curve&quot; tabindex=&quot;-1&quot;&gt;The CSP Learning Curve&lt;/h2&gt;
&lt;p&gt;Of course, implementing a CSP wasn&#39;t as simple as copying the spec&#39;s recommendations. My initial CSP broke several things on my site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The webring widgets from &lt;code&gt;webring.fun&lt;/code&gt; and &lt;code&gt;silly.possiblyaxolotl.com&lt;/code&gt; stopped loading&lt;/li&gt;
&lt;li&gt;The bubbles.town upvote button failed to load&lt;/li&gt;
&lt;li&gt;The status.lol widget was blocked&lt;/li&gt;
&lt;li&gt;NeatStats analytics stopped working&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The issue was that these third-party services make API calls to their own domains for data, and I hadn&#39;t included those domains in my &lt;code&gt;connect-src&lt;/code&gt; directive. Additionally, some services load their own CSS files that I hadn&#39;t whitelisted in &lt;code&gt;style-src&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I had to iteratively add missing domains:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-perl&quot;&gt;script-src &#39;self&#39; &#39;unsafe-inline&#39; &#39;wasm-unsafe-eval&#39;
  https://cloud.umami.is https://neatstats.net https://cdn.jsdelivr.net
  https://webring.fun https://silly.possiblyaxolotl.com
  https://bubbles.town https://status.lol;
style-src &#39;self&#39; &#39;unsafe-inline&#39; https://cdn.jsdelivr.net
  https://silly.possiblyaxolotl.com;
connect-src &#39;self&#39; https://cloud.umami.is https://*.supabase.co
  https://webring.fun https://neatstats.net https://bubbles.town;
form-action &#39;self&#39; https://indieauth.com https://buttondown.com
  https://*.supabase.co;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The lesson here is that CSPs require knowing exactly which domains your third-party services use--not just for loading their scripts, but also for any API calls they make in the background. Browser console errors were invaluable for debugging this.&lt;/p&gt;
&lt;p&gt;After implementing my initial CSP, I noticed my Umami metrics suddenly dropped to near-zero. It turned out that Umami had changed their API gateway domains, moving from just &lt;code&gt;cloud.umami.is&lt;/code&gt; to also using &lt;code&gt;gateway.umami.is&lt;/code&gt;, &lt;code&gt;eu.umami.is&lt;/code&gt;, and various &lt;code&gt;api-gateway.*.umami.dev&lt;/code&gt; endpoints. This is a known issue that breaks tracking for sites with strict CSPs. I had to add all these new gateway domains to my &lt;code&gt;connect-src&lt;/code&gt; directive to restore analytics functionality.&lt;/p&gt;
&lt;p&gt;I also had to update my service worker to skip cross-origin requests entirely. The service worker was trying to handle requests to external domains (webring scripts, badge images, etc.) but couldn&#39;t properly cache them due to CORS restrictions, which was causing &amp;quot;undefined&amp;quot; response errors. By adding a check to only handle same-origin requests, the service worker now focuses on my own content while letting external resources load normally.&lt;/p&gt;
&lt;h2 id=&quot;terrible%2C-terrible-cookies&quot; tabindex=&quot;-1&quot;&gt;Terrible, Terrible Cookies&lt;/h2&gt;
&lt;p&gt;The checklist&#39;s Privacy category flags cookie consent as &lt;code&gt;Required&lt;/code&gt;. But guess what? My website has zero cookies, hurray! Umami, my analytics, is &lt;a href=&quot;https://umami.is/privacy&quot;&gt;documented as cookie-free&lt;/a&gt; and I already say so in my &lt;a href=&quot;https://brennan.day/privacy/&quot;&gt;privacy policy&lt;/a&gt;, and nothing else on my website creates cookies either.&lt;/p&gt;
&lt;p&gt;Not every item deserves a &amp;quot;yes&amp;quot; just because the checklist says &lt;strong&gt;Required&lt;/strong&gt;. Read the justification, check if it applies to &lt;em&gt;your&lt;/em&gt; site.&lt;/p&gt;
&lt;p&gt;Beyond this, there are better alternatives to cookies you can use. For saving user preferences and settings, use &lt;code&gt;localStorage&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// Set it
localStorage.setItem(&#39;theme&#39;, &#39;dark&#39;);

// Get it
const theme = localStorage.getItem(&#39;theme&#39;); // &#39;dark&#39;

// Remove it
localStorage.removeItem(&#39;theme&#39;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Local storage also has a 10MB storage limit vs. 4KB limit for cookies. The catch is data persists forever unless cleared.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sessionStorage&lt;/code&gt; works exactly like localStorage, but automatically clears the data when the user closes the browser tab.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;sessionStorage.setItem(&#39;formStep&#39;, &#39;3&#39;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For large, complex data (e.g., offline images, large cached JSON), you can use &lt;code&gt;localForage&lt;/code&gt; (a library that yes, rhymes). Native IndexedDB is powerful but complicated (uses callbacks, cursors, and databases). &lt;code&gt;localForage&lt;/code&gt; is a tiny library that gives you a localStorage-style API but stores data in IndexedDB behind the scenes.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// Include the library, then:
localforage.setItem(&#39;shoppingCart&#39;, { items: 200, total: &#39;$500&#39; });
localforage.getItem(&#39;shoppingCart&#39;).then((cart) =&amp;gt; console.log(cart));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This handles binary data (blobs/files) and holds over 50MB, and uses Promises (async) so it doesn&#39;t freeze your webpage.&lt;/p&gt;
&lt;h2 id=&quot;a-useful-service-worker&quot; tabindex=&quot;-1&quot;&gt;A Useful Service Worker&lt;/h2&gt;
&lt;p&gt;My old service worker cached &lt;code&gt;/assets/css/style.css&lt;/code&gt;, a file that hasn&#39;t existed since I split my CSS into multiple files, so it was actually caching nothing. I rewrote it so a failed navigation falls back to a real offline page instead of the browser&#39;s own &amp;quot;no internet&amp;quot; screen, and images load cache-first instead of network-first:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;if (event.request.mode === &#39;navigate&#39;) {
  event.respondWith(
    fetch(event.request).catch(() =&amp;gt;
      caches.match(event.request).then(response =&amp;gt; response || caches.match(OFFLINE_URL))
    )
  );
  return;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also added a check to skip cross-origin requests entirely, which was causing CORS-related errors. The service worker now only handles same-origin requests, letting external resources (webring scripts, badge images, etc.) load normally:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// Skip cross-origin requests to avoid CORS issues
if (!event.request.url.startsWith(self.location.origin)) {
  return;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;finally-fixing-the-annoying-flash&quot; tabindex=&quot;-1&quot;&gt;Finally Fixing the Annoying Flash&lt;/h2&gt;
&lt;p&gt;While testing all these changes, I finally dealt with the flashing on page load--elements in the main content and sidebar would resize visibly on page loads, regardless if it was your first visit or not.&lt;/p&gt;
&lt;p&gt;This was because I was using the deferring technique &lt;code&gt;media=&amp;quot;print&amp;quot; onload=&amp;quot;this.media=&#39;all&#39;&amp;quot;&lt;/code&gt;. This is a &lt;a href=&quot;https://css-tricks.com/the-simplest-way-to-load-css-asynchronously/&quot;&gt;known pattern&lt;/a&gt; for loading CSS asynchronously to improve performance, but it has the annoying downside of causing &lt;a href=&quot;https://css-tricks.com/the-simplest-way-to-load-css-asynchronously/&quot;&gt;flashes of Unstyled Content&lt;/a&gt; and &lt;a href=&quot;https://developer.chrome.com/docs/aurora/aurora-resource-inlining&quot;&gt;layout shifts&lt;/a&gt; when the deferred CSS finally loads and applies.&lt;/p&gt;
&lt;p&gt;I just removed the deferred loading and let CSS load normally. The tradeoff is slightly slower initial render, but no more flashing. Sometimes the performance optimization causes the problem it&#39;s supposed to solve.&lt;/p&gt;
&lt;h2 id=&quot;other-small-fixes-(rapid-fire-round!)&quot; tabindex=&quot;-1&quot;&gt;Other Small Fixes (Rapid Fire Round!)&lt;/h2&gt;
&lt;p&gt;There were a handful of things that were quick, once I knew to look for them:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;text-wrap: balance&lt;/code&gt; / &lt;code&gt;text-wrap: pretty&lt;/code&gt;&lt;/strong&gt; on headings and body copy, so the browser handles orphaned last-line words nicely.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

p, li, dd, figcaption {
  text-wrap: pretty;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;scrollbar-gutter: stable&lt;/code&gt;&lt;/strong&gt; so pages that scroll (nearly every post) and pages that don&#39;t aren&#39;t shifting width against each other.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;html {
  scrollbar-gutter: stable;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;scroll-margin-top&lt;/code&gt; / &lt;code&gt;scroll-padding-top&lt;/code&gt;&lt;/strong&gt; on headings and anchor targets, so jumping to &lt;code&gt;#comments&lt;/code&gt; or a table-of-contents link doesn&#39;t land the heading directly underneath my sticky header (something that&#39;s been bothering me forever).&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;html {
  scroll-padding-top: 5rem;
}

h1, h2, h3, h4, h5, h6,
:target,
[id] {
  scroll-margin-top: 5rem;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;A &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API&quot;&gt;&lt;code&gt;@view-transition&lt;/code&gt;&lt;/a&gt; block&lt;/strong&gt; with &lt;code&gt;navigation: auto&lt;/code&gt;, so Chrome (for now) animates between page loads. Unsupported browsers just navigate normally, but it&#39;s a one-line opt-in.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;@view-transition {
  navigation: auto;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/@media/forced-colors&quot;&gt;Forced colours mode&lt;/a&gt;&lt;/strong&gt; support, for people running accessibility options, like Windows High Contrast. My rainbow nav underline and scroll-progress bar are pure decoration with no border to fall back on, so this snippet allows them to remain:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;@media (forced-colors: active) {
  .site-header::after,
  nav.site-nav a::after {
    background: CanvasText;
    forced-color-adjust: none;
  }

  button, .hero-btn, input[type=&amp;quot;submit&amp;quot;] {
    border: 1px solid ButtonText;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid&quot;&gt;&lt;code&gt;:user-valid&lt;/code&gt; / &lt;code&gt;:user-invalid&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; on form fields, real-time validation styling in CSS instead of JS class-toggling, and it only triggers after you&#39;ve interacted with the field, so a required-but-empty input doesn&#39;t pop up before you&#39;ve typed anything.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;input:user-invalid, textarea:user-invalid {
  border-color: var(--link-hover);
}

input:user-valid, textarea:user-valid {
  border-color: var(--nav-green);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;A container query&lt;/strong&gt; on the sidebar modules, this way the badge grid responds to the module&#39;s rendered width instead of just the viewport.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.sidebar .module {
  container-type: inline-size;
  container-name: sidebar-module;
}

@container sidebar-module (max-width: 220px) {
  .badges-grid {
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;contain: layout paint&lt;/code&gt;&lt;/strong&gt; on post cards and sidebar modules, telling the browser those subtrees can&#39;t affect anything outside themselves.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;a.post-card {
  contain: layout paint style;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Speculation Rules&lt;/strong&gt; for same-origin prefetching, skipping honeypot paths and anything marked &lt;code&gt;rel=&amp;quot;nofollow&amp;quot;&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;script type=&amp;quot;speculationrules&amp;quot;&amp;gt;
{
  &amp;quot;prefetch&amp;quot;: [{
    &amp;quot;source&amp;quot;: &amp;quot;document&amp;quot;,
    &amp;quot;where&amp;quot;: { &amp;quot;and&amp;quot;: [
      { &amp;quot;href_matches&amp;quot;: &amp;quot;/*&amp;quot; },
      { &amp;quot;not&amp;quot;: { &amp;quot;href_matches&amp;quot;: &amp;quot;/honeypot/*&amp;quot; } },
      { &amp;quot;not&amp;quot;: { &amp;quot;selector_matches&amp;quot;: &amp;quot;[rel~=&#92;&amp;quot;nofollow&#92;&amp;quot;]&amp;quot; } }
    ]},
    &amp;quot;eagerness&amp;quot;: &amp;quot;moderate&amp;quot;
  }]
}
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Visible breadcrumbs&lt;/strong&gt; on posts and pages, matching the &lt;code&gt;BreadcrumbList&lt;/code&gt; JSON-LD I already wrote but never rendered on the site:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;nav class=&amp;quot;breadcrumbs&amp;quot; aria-label=&amp;quot;Breadcrumb&amp;quot;&amp;gt;
  &amp;lt;ol&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;/&amp;quot;&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li aria-current=&amp;quot;page&amp;quot;&amp;gt;{{ title }}&amp;lt;/li&amp;gt;
  &amp;lt;/ol&amp;gt;
&amp;lt;/nav&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;inputmode&lt;/code&gt;, &lt;code&gt;enterkeyhint&lt;/code&gt;, and &lt;code&gt;autocomplete&lt;/code&gt;&lt;/strong&gt; on the comment sign-in, newsletter, contact, and guestbook forms, so the correct mobile keyboard shows up:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;input type=&amp;quot;url&amp;quot; name=&amp;quot;me&amp;quot; inputmode=&amp;quot;url&amp;quot; enterkeyhint=&amp;quot;go&amp;quot; autocomplete=&amp;quot;url&amp;quot; required&amp;gt;
&amp;lt;input type=&amp;quot;email&amp;quot; name=&amp;quot;email&amp;quot; inputmode=&amp;quot;email&amp;quot; enterkeyhint=&amp;quot;send&amp;quot; autocomplete=&amp;quot;email&amp;quot; required&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;A &lt;code&gt;/500.html&lt;/code&gt;&lt;/strong&gt; page and a &lt;code&gt;/maintenance.html&lt;/code&gt; page, the latter being a documented, one-line redirect flip in &lt;code&gt;netlify.toml&lt;/code&gt; for if ever I need to put the site into maintenance mode. (Some future unforseeable disaster.):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;# Commented out until I actually need it
# [[redirects]]
#   from = &amp;quot;/*&amp;quot;
#   to = &amp;quot;/maintenance.html&amp;quot;
#   status = 503
#   force = true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://www.indexnow.org/&quot;&gt;&lt;strong&gt;IndexNow&lt;/strong&gt;&lt;/a&gt;, a protocol I&#39;d never heard of before this audit. Bing, Yandex, and a couple others let you push a &amp;quot;changes made&amp;quot; ping instead of waiting for a crawl. Generate a key, and drop it at the site root, and then I added a post-deploy hook next to the WebSub ping I already had:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -s -X POST &amp;quot;https://api.indexnow.org/indexnow&amp;quot; &#92;
  -H &amp;quot;Content-Type: application/json; charset=utf-8&amp;quot; &#92;
  -d &amp;quot;{&#92;&amp;quot;host&#92;&amp;quot;: &#92;&amp;quot;brennan.day&#92;&amp;quot;, &#92;&amp;quot;key&#92;&amp;quot;: &#92;&amp;quot;...&#92;&amp;quot;, &#92;&amp;quot;urlList&#92;&amp;quot;: [...]}&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc7033&quot;&gt;&lt;strong&gt;&lt;code&gt;webfinger&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; endpoint at &lt;code&gt;/.well-known/webfinger&lt;/code&gt;, which is how the Fediverse resolves &lt;code&gt;acct:brennan@brennan.day&lt;/code&gt;-style identifiers to profile links. Mine is a static file instead of query-aware endpoint, since I only have the one identity to resolve (mine):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;subject&amp;quot;: &amp;quot;acct:brennan@brennan.day&amp;quot;,
  &amp;quot;links&amp;quot;: [
    { &amp;quot;rel&amp;quot;: &amp;quot;self&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;application/activity+json&amp;quot;, &amp;quot;href&amp;quot;: &amp;quot;https://social.lol/@brennan&amp;quot; }
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A &lt;strong&gt;&lt;code&gt;/.well-known/traffic-advice&lt;/code&gt;&lt;/strong&gt; file, which is Chrome-specific and tells its private prefetch proxy whether it&#39;s allowed to send prefetch traffic to my origin:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;[{ &amp;quot;user_agent&amp;quot;: &amp;quot;prefetch-proxy&amp;quot;, &amp;quot;google_prefetch_proxy_eap&amp;quot;: { &amp;quot;fraction&amp;quot;: 1.0 } }]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Adding a &lt;a href=&quot;https://web.resource.org/rss/1.0/modules/syndication/&quot;&gt;Syndication module&lt;/a&gt; (&lt;code&gt;sy:updatePeriod&lt;/code&gt;, &lt;code&gt;sy:updateFrequency&lt;/code&gt;) in my RSS feed, so feed readers with the ability can now display how frequently my blog is updated:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;rss version=&amp;quot;2.0&amp;quot; xmlns:sy=&amp;quot;http://purl.org/rss/1.0/modules/syndication/&amp;quot;&amp;gt;
  &amp;lt;channel&amp;gt;
    &amp;lt;sy:updatePeriod&amp;gt;daily&amp;lt;/sy:updatePeriod&amp;gt;
    &amp;lt;sy:updateFrequency&amp;gt;1&amp;lt;/sy:updateFrequency&amp;gt;
  &amp;lt;/channel&amp;gt;
&amp;lt;/rss&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Redirect-By: Netlify&lt;/code&gt;, a header that states which system issued a redirect, in case I&#39;m debugging a redirect chain:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-toml&quot;&gt;[[headers]]
  for = &amp;quot;/*.html&amp;quot;
  [headers.values]
    No-Vary-Search = &#39;&#39;&#39;params=(&amp;quot;utm_source&amp;quot; &amp;quot;utm_medium&amp;quot; &amp;quot;utm_campaign&amp;quot; &amp;quot;fbclid&amp;quot; &amp;quot;gclid&amp;quot;)&#39;&#39;&#39;

[[headers]]
  for = &amp;quot;/*&amp;quot;
  [headers.values]
    Redirect-By = &amp;quot;Netlify&amp;quot;

[[headers]]
  for = &amp;quot;/assets/*&amp;quot;
  [headers.values]
    Cross-Origin-Resource-Policy = &amp;quot;cross-origin&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A few more additions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/No-Vary-Search&quot;&gt;&lt;code&gt;No-Vary-Search&lt;/code&gt;&lt;/a&gt; on HTML responses, listing out the usual tracking parameters (&lt;code&gt;utm_source&lt;/code&gt;, &lt;code&gt;fbclid&lt;/code&gt;, &lt;code&gt;gclid&lt;/code&gt;, etc.) so a cache treats &lt;code&gt;/post/&lt;/code&gt; and &lt;code&gt;/post/?utm_source=mastodon&lt;/code&gt; as the same page instead of two (I try my best to avoid any tracking params, but other sites don&#39;t).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Cross-Origin-Resource-Policy: cross-origin&lt;/code&gt; on my asset headers, so nothing about the other origin isolation changes stops someone else from embedding my own images.&lt;/li&gt;
&lt;li&gt;Core Web Vitals as a category is just reviewing what real users experience, which I did with &lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;PageSpeed Insights&lt;/a&gt;. The current assessment is &lt;strong&gt;Passed&lt;/strong&gt;: &lt;strong&gt;Largest Contentful Paint (LCP) 1.8 s&lt;/strong&gt;, &lt;strong&gt;Interaction to Next Paint (INP) 68 ms&lt;/strong&gt;, &lt;strong&gt;Cumulative Layout Shift (CLS) 0&lt;/strong&gt;. Other metrics: &lt;strong&gt;First Contentful Paint (FCP) 1.6 s&lt;/strong&gt;, &lt;strong&gt;Time to First Byte (TTFB) 1.6 s&lt;/strong&gt;. These were taken from the latest 28-day &lt;a href=&quot;https://developer.chrome.com/docs/crux&quot;&gt;Chrome UX Report&lt;/a&gt; for mobile.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;things-still-unaddressed&quot; tabindex=&quot;-1&quot;&gt;Things Still Unaddressed&lt;/h2&gt;
&lt;p&gt;There were also several other things I didn&#39;t get to from the long, detailed 140-item checklist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DNS CAA records and DNSSEC&lt;/strong&gt; are controlled by CDN, and not in this repo, so I&#39;ll need to review those.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trusted Types&lt;/strong&gt; would require auditing every &lt;code&gt;innerHTML&lt;/code&gt;-style sink across my templates &lt;em&gt;and&lt;/em&gt; the third-party widgets I don&#39;t control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SRI on the webring/reaction-button scripts&lt;/strong&gt; isn&#39;t happening until they&#39;re pinned to a version instead of &lt;code&gt;@main&lt;/code&gt;. Subresource Integrity on a moving target just means the hash breaks the next time I push a commit. I did add it to my pinned Mermaid script, where it made sense.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actual uptime monitoring&lt;/strong&gt; means picking and paying for a third-party service, which I don&#39;t think is necessary for my site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strict CSP with nonces/hashes&lt;/strong&gt; would require refactoring all my inline scripts and styles to use proper CSP mechanisms, which is more work than I&#39;m willing to invest right now.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-actual-point&quot; tabindex=&quot;-1&quot;&gt;The Actual Point&lt;/h2&gt;
&lt;p&gt;This is the part where I say none of this was really about the checklist. Don&#39;t get me wrong, checklists &lt;em&gt;are&lt;/em&gt; good for finding the things you&#39;ve stopped seeing because you&#39;ve been looking at the same code every day for months. Fixing the broken web manifest, the theme-colour meta tag doing nothing, and the breadcrumb schema I wasn&#39;t actually using.&lt;/p&gt;
&lt;p&gt;But the value wasn&#39;t in checking every box, it was about learning what my site was lacking due to my ignorance, and making meaningful changes to improve the experience for my readers and visitors.&lt;/p&gt;
&lt;p&gt;If you run your own site through &lt;a href=&quot;https://specification.website/checklist/&quot;&gt;the checklist&lt;/a&gt;, I&#39;m curious what it turns up for you! (And please let me know if any of these changes actually ended up breaking something.)&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Confessions of a Maladaptive Daydreamer</title>
		<link href="http://plaintext.brennan.day/confessions-of-a-maladaptive-daydreamer/"/>
		<updated>2026-08-15T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/confessions-of-a-maladaptive-daydreamer/</id>
		<content type="html">&lt;p&gt;If you&#39;ve ever been in a heated argument, odds are you&#39;ve come up with a clever response only &lt;em&gt;after&lt;/em&gt; several hours had passed. And maybe, in your mind&#39;s eye, maybe in the shower, you&#39;ve imagined how things would have gone if you had thought of that response in-the-moment, rather than when it was already too late.&lt;/p&gt;
&lt;p&gt;I mean, we&#39;ve all been there, right? Finding ourselves embodied in a fictional hypothetical, with our emotions getting worked up as though it was actually happening.&lt;/p&gt;
&lt;p&gt;Some people do this much more than others. For instance, like me. It&#39;s probably rather embarrassing for me to confess, but I&#39;ve never been one to shy away from being candid on this blog.&lt;/p&gt;
&lt;p&gt;Ever since I was a child and had nowhere physical to escape when my parents were arguing about money at three in the morning, or when I was getting scolded for drawing a variety of colours on the walls--the only place I could retreat was my own mind. I&#39;d imagine alternative realities made of pillowforts for shelter and refuge. Where I could hide, and where things would be quiet and calm.&lt;/p&gt;
&lt;p&gt;As I got older, these daydreams became more elaborate and specific instead of subsiding. They became primarily about other people and how I&#39;d interact with them. During my walks home from school, I would find myself constructing hypothetical futures where I had repaired relationships I ruined, or finally said all the sentimental heartfelt things to someone I was too shy to say in reality. During restless nights of insomnia, I would craft the environments and the textures and the visuals--I&#39;d imagine myself crashing events or hosting my own, inviting dozens of people only to care about one particular person attending à la &lt;em&gt;The Great Gatsby&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;m standing in the ramshackled doorway of a liminal apartment, walls the colour of dried sage. There&#39;s a girl I liked and never told, she has anonymous brunette bangs, and she&#39;s sitting at a lopsided kitchen table with a water ring left by somebody&#39;s glass. Of course I&#39;d write her half of the dialogue. And then, I&#39;d run the same three minutes over and over, changing the line that made her laugh, or frown. Until the cinematography and stagework all snapped into place.&lt;/p&gt;
&lt;p&gt;Or maybe I&#39;d construct a bookstore to host a reading when I get published. Folding chairs squeaking against linoleum as people shifted their weight, a friend from years back turns up unannounced in the last row. I&#39;d deliver the same sentences of the introduction over and over, adjusting the joke, adjusting the pause. All long after I&#39;d stopped consciously choosing to think about any of it at all.&lt;/p&gt;
&lt;h2 id=&quot;not-recognized&quot; tabindex=&quot;-1&quot;&gt;Not Recognized&lt;/h2&gt;
&lt;p&gt;Clinical psychologist &lt;a href=&quot;https://scholar.google.com/citations?user=cIDL8CEAAAAJ&amp;amp;hl=en&quot;&gt;Eli Somer&lt;/a&gt; coined &amp;quot;maladaptive daydreaming&amp;quot; in 2002, after years spent researching trauma and dissociation at the University of Haifa, when he noticed a pattern in his patients that didn&#39;t fit existing diagnostic categories--people describing daydreams so vivid and immersive they were &lt;a href=&quot;https://www.somer.co.il/images/MD/2019_MD-Nosology.pdf&quot;&gt;replacing human interaction rather than accompanying it&lt;/a&gt;. His original definition is daydreaming that&#39;s intensive and vivid enough to functionally substitute for real relationships, and interferes with school, work, or interpersonal life.&lt;/p&gt;
&lt;p&gt;James Thurber&#39;s &lt;em&gt;Walter Mitty&lt;/em&gt; narrates his way through hydroplane crashes and courtroom dramas to survive a forgettable errand-run of a day, a comparison used to &lt;a href=&quot;https://bigthink.com/neuropsych/maladaptive-daydreaming/&quot;&gt;explain maladaptive daydreaming to people who&#39;ve never experienced it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&#39;s been two decades and maladaptive daydreaming itself exists in administrative limbo. There&#39;s a growing body of peer-reviewed research, an &lt;a href=&quot;https://traumadissociation.com/mds&quot;&gt;open-access 16-item screening scale&lt;/a&gt; with clinical cutoff scores, and an &lt;a href=&quot;https://balancedmindofny.com/blog/the-science-behind-maladaptive-daydreaming-a-research-overview/&quot;&gt;international research consortium&lt;/a&gt;. But it &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC9563142/&quot;&gt;still isn&#39;t recognized by the DSM or ICD&lt;/a&gt; as a standalone disorder.&lt;/p&gt;
&lt;p&gt;Somer&#39;s term found its an audience online, as the description spread through &lt;a href=&quot;https://wildminds.ning.com/&quot;&gt;dedicated forums and support communities&lt;/a&gt; run by people who&#39;d spent years assuming living in their own heads was rare, or shameful, or entirely their own invention. An &lt;a href=&quot;https://americanethnologist.org/online-content/essays/21st-century-wanderers-club-the-online-rise-of-maladaptive-daydreaming-elizabeth-durham/&quot;&gt;anthropological account&lt;/a&gt; of these communities writes about members who pace for hours during a daydream, and those who need a specific song to drop back into the version of themselves that only exists inside a fantasy, and those who talk about the pull of it in language usually reserved for addiction.&lt;/p&gt;
&lt;p&gt;The Internet did for this what it&#39;s done for a dozen other private, idiosyncratic-feeling experiences: turned it into a shared vocabulary.&lt;/p&gt;
&lt;p&gt;Studies out of Hungary found that people who &lt;a href=&quot;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8403514/&quot;&gt;screen as maladaptive daydreamers report significantly more childhood traumatic experiences&lt;/a&gt; than typical daydreamers, and that there&#39;s a relationship with dissociation--and with identity confusion and a felt lack of control. But other researchers note that &lt;a href=&quot;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8943674/&quot;&gt;trauma isn&#39;t a necessary or sufficient cause&lt;/a&gt; on its own. Maladaptive daydreaming shows up more often as one risk factor among several, alongside social anxiety and attentional difficulties overlapping symptomatically with ADHD, and what the literature calls &amp;quot;pathological absorption,&amp;quot; an elevated capacity to get lost inside an internal world at the cost of the external one.&lt;/p&gt;
&lt;h2 id=&quot;paracosms&quot; tabindex=&quot;-1&quot;&gt;Paracosms&lt;/h2&gt;
&lt;p&gt;That absorption trait is what separates maladaptive daydreaming from regular daydreaming. A &lt;a href=&quot;https://www.aau.edu/research-scholarship/featured-research-topics/study-finds-healthy-creativity-kids-imaginary-worlds&quot;&gt;long-running Oregon study&lt;/a&gt; on children who build sustained imaginary worlds called &lt;a href=&quot;https://pubmed.ncbi.nlm.nih.gov/30368770/&quot;&gt;&amp;quot;paracosms,&amp;quot;&lt;/a&gt; complete with their own geography and internal rules--found those kids test no differently from their peers on almost every measure, except unsurprisingly, they consistently score higher on storytelling creativity. Nothing to worry about, in other words. The difference between a paracosm and maladaptive daydreaming isn&#39;t about the intensity of imagnation, but whether the world you built stays a place you visit or becomes the place you live.&lt;/p&gt;
&lt;p&gt;I like to think that there have been benefits to this coping mechanism. As though I&#39;ve been keeping my mind&#39;s eye sharp through constant usage. I&#39;m capable of juggling numerous things in my head at a time because I&#39;m always living there. When I sit down to write, there&#39;s a dozen points I already have and I (usually) manage not to lose them.&lt;/p&gt;
&lt;p&gt;In another way, it feels as though I&#39;ve inadvertently created a schism within myself. The daydreamer version of me is a completely different mode of existence compared to how I act when I&#39;m pulled out of my mind and into the real world, when I&#39;m actually talking to others. I&#39;m far more pragmatic and unsentimental, I acknowledge my shortcomings and flaws rather than cerebral orchestrate a non-existent future where I mend and repair everything those flaws deteriorate. I&#39;ll often find myself going to sleep yearning with paragraphs I&#39;d want to message someone with, only to wake up and not feel that want at all.&lt;/p&gt;
&lt;h2 id=&quot;the-escape&quot; tabindex=&quot;-1&quot;&gt;The Escape&lt;/h2&gt;
&lt;p&gt;Escapism into fictional stories is certainly not unique to maladaptive daydreamers. It is near a default mode of existence for people. We love media, we love good stories on film, or television, or in books about others who have never existed, but are written well by others. And people are so moved by their experiences about the stories of others that they create their own fanwork, and fandom. It is an incredible, gratifying experience, and that&#39;s exactly why I began the transformative works archive &lt;a href=&quot;https://fanfiction.lol/&quot;&gt;fanfiction.lol&lt;/a&gt;. Fandom spaces get studied as &lt;a href=&quot;https://www.uniwriter.ai/psychology/fandom-spaces-as-a-coping-mechanism-for-stress-and-loneliness/&quot;&gt;coping mechanisms for stress and loneliness&lt;/a&gt;, operating through narrative transportation--where attention and emotion are so fully absorbed by a story that the reader feels carried inside it. Fanfiction is as a place where people &lt;a href=&quot;https://psychlense.com/psychology-and-life/a-dive-in-y-ns-world-psychology-community-and-narrative-control-of-fanfiction/server_zr1rxq7u/03/2026/&quot;&gt;work through identity and feeling inside a world they already trust&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But my daydreams are different--there is no separation, no understanding that the story eventually ends. I am, in a way, stuck in the thoughts in perpetuity. And the most interesting thing I&#39;ve realized over the years is that this hasn&#39;t just been a shield and coping mechanism, but that I&#39;ve come to enjoy it. When I&#39;m able to totally forget my body and physical surroundings and the imaginative world I&#39;ve conjured is so strong that everything else is forgotten, it&#39;s as enjoyable as any restful sleep can be.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>A Story of the Origins of Religion</title>
		<link href="http://plaintext.brennan.day/a-story-of-the-origins-of-religion/"/>
		<updated>2026-08-14T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-story-of-the-origins-of-religion/</id>
		<content type="html">&lt;p&gt;It&#39;s been awhile since my last essay on religion, and while I&#39;ve shared &lt;a href=&quot;http://plaintext.brennan.day/how-and-why-i-believe-in-god-the-ballad-of-tragic-theism/&quot;&gt;my personal testimony&lt;/a&gt; and &lt;a href=&quot;http://plaintext.brennan.day/more-than-one-way-on-ritual-morality-and-the-darkness-beyond-knowing/&quot;&gt;death rituals from around the world&lt;/a&gt;, I haven&#39;t written about the fascinating origins of religion.&lt;/p&gt;
&lt;p&gt;I know what you&#39;re thinking, how it&#39;s rather sacrilege to try to pinpoint and explain the beginning of spirituality--I know that it is far easier to explain things in retrospect--but it&#39;s an interesting rabbit hole nonetheless.&lt;/p&gt;
&lt;p&gt;We begin with Friedrich Max Müller, a European comparative philologist born in 1823 who is now most well-known for pioneering and founding the academic science of religion, what we now call Religious Studies.&lt;/p&gt;
&lt;p&gt;Müller&#39;s theory of naturism, or physical religion, posited that &lt;a href=&quot;https://jewishphilosophyplace.com/2017/10/26/religion-things-idea-sensation-reading-max-muller/&quot;&gt;early religion began with humanity&#39;s direct sensory perception of the physical environment and natural forces&lt;/a&gt;. He argued that awe-inspiring phenomena--the sun, the sky, the weather and storms, dawn and dusk--inspired awe, terror, and an intuition of the Infinite. Early humans personified the forces as divine agents, shaping language and myth.&lt;/p&gt;
&lt;p&gt;Lightning and thunder, for instance, are rather terrifying. And yet they also cause deep marvel, surprise, and reverence. And so, we personified the phenomenon, creating a deity who controls when it thunders as an attempt to better understand these chaotic, random forces. Surely if it happens often, then the God is angry.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Regarding mythology, others see it in a picture of great forms and forces of nature, particularly the sun, the moon, and stars, the changes of day and night, the succession of the seasons... all these reflections by vivid imaginations.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sacred rituals and sacrifice grew out of a desire to control the unpredictable and survive, such as &lt;a href=&quot;https://www.agricultureforlife.ca/post/food-offerings-in-ancient-times-honouring-gods-and-ancestors&quot;&gt;giving offerings or performances for better crop harvests&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There&#39;s &amp;quot;Pluto&#39;s Gate&amp;quot;, a mythical gate to hell, which was found to be a real place in Turkey. &lt;a href=&quot;https://link.springer.com/article/10.1007/s12520-018-0599-5&quot;&gt;CO2 concentrations in the grotto below the temple still reach up to 91 percent&lt;/a&gt;, lethal vapours causing the suffocation of animals, and by some accounts, &lt;a href=&quot;https://www.atlasobscura.com/articles/where-are-the-greek-oracles&quot;&gt;causing visions and prophecies in pilgrims who slept nearby, in what one archaeologist called an oracle-of-Delphi effect&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I would be remiss without adding that Müller carries problematic baggage, with his translations and academic frameworks serving a Western colonial and missionary agenda, often aimed at diminishing indigenous spiritual confidence, particularly &lt;a href=&quot;https://voiceofindia.me/2024/10/01/max-mueller-distorted-the-vedas-to-pave-way-for-indias-christian-conversion-priya-arora/&quot;&gt;with his work in India&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;in-ancient-egypt&quot; tabindex=&quot;-1&quot;&gt;In Ancient Egypt&lt;/h2&gt;
&lt;p&gt;Whatever Müller got wrong--and surely he got plenty wrong--I appreciate his instinct to look for religion in the natural world. Ancient Egypt is a particular interest of mine, with the amount of environmental danger people endured and survived. For in the Nile Valley, there&#39;s the Nile Crocodile, the Nile hippopotamus, scorpions, and the Egyptian cobra. These were some of the deadliest animals in the world.&lt;/p&gt;
&lt;p&gt;And you can see how the religion of Ancient Egypt attempted to reckon with these mortal terrors. The cobra, the  &lt;a href=&quot;https://www.britannica.com/topic/Wadjet&quot;&gt;Wadjet&lt;/a&gt;, symbolised protection of royalty. Pharaohs wore her rearing form on their crowns as the uraeus, and it was said to spit fire at any enemy who came near.&lt;/p&gt;
&lt;p&gt;Hippos were associated with both death and fertility, the goddess &lt;a href=&quot;https://en.wikipedia.org/wiki/Taweret&quot;&gt;Taweret&lt;/a&gt; was part hippo, part crocodile, part lioness, who guarded women through childbirth.&lt;/p&gt;
&lt;p&gt;Crocodiles, born on land and living in water, protected the dead, ferrying them to the afterlife, skilled in navigating both planes. This was &lt;a href=&quot;https://ancientegyptonline.co.uk/sobek/&quot;&gt;Sobek&lt;/a&gt;, and Egyptians mummified crocodile eggs and fetuses to bury alongside their dead to enlist his help crossing.&lt;/p&gt;
&lt;p&gt;Scorpions would be prayed to for healing from illnesses. &lt;a href=&quot;https://www.worldhistory.org/Serket/&quot;&gt;Serket&lt;/a&gt; was the goddess of both venom and its cure, whose name means &amp;quot;she who causes the throat to breathe,&amp;quot; referring to the paralysis a sting brought on.&lt;/p&gt;
&lt;p&gt;Livestock was associated with the fertility of the land, embodied in the cow goddess &lt;a href=&quot;https://www.britannica.com/topic/Hathor-Egyptian-goddess&quot;&gt;Hathor&lt;/a&gt;, prayed to for good farming seasons. Hathor was also love, joy, music, motherhood, and the sky, with more temples built to her than to any other Egyptian goddess.&lt;/p&gt;
&lt;p&gt;And the Scarab Beetle was connected to the Sun, with &lt;a href=&quot;https://en.wikipedia.org/wiki/Khepri&quot;&gt;Khepri&lt;/a&gt;, the aspect of Ra who rolled the morning sun into being the way a dung beetle rolls its ball across the sand. Egyptians watched young beetles emerge from those dung balls as if from nothing. A God born from what looked like dead matter, over and over.&lt;/p&gt;
&lt;p&gt;The black lands of Egypt were fertile, and tombs were built on this precious land alongside crops, with the &lt;a href=&quot;https://www.wisdomlib.org/concept/sekhet-hetep&quot;&gt;Sekhet-Hetep, the Field of Peace&lt;/a&gt; being one of the Egyptian heavens. The farmers imagined the afterlife similar to their own lives, meaning they would, tragically, continue their labour forever. Egyptians buried &lt;a href=&quot;https://en.wikipedia.org/wiki/Ancient_Egyptian_afterlife_beliefs&quot;&gt;shabti figures&lt;/a&gt; with their dead, small magical servants meant to answer the call to work in their place.&lt;/p&gt;
&lt;p&gt;Meanwhile, the Netherworld is the red lands--a place where you can get easily lost, suffering from drought, thirst, and the scorching heat of the Sun.&lt;/p&gt;
&lt;h2 id=&quot;the-evolution&quot; tabindex=&quot;-1&quot;&gt;The Evolution&lt;/h2&gt;
&lt;p&gt;There was a process to this--a gradual evolution of understanding the animal&#39;s role, sacredness, and identity.&lt;/p&gt;
&lt;p&gt;For example, jackals[^1] in Ancient Egypt were grave robbers and scavengers, and the earliest Egyptian civilization struggled to block them from entering tombs--this was an existential threat, as preserved bodies were vehicles to the afterlife.&lt;/p&gt;
&lt;p&gt;[^1]: 2011 genetic analysis &lt;a href=&quot;https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0016385&quot;&gt;reclassified the &amp;quot;Egyptian jackal&amp;quot; as the African golden wolf&lt;/a&gt;, a distinct wolf species, not a jackal subspecies.&lt;/p&gt;
&lt;p&gt;So, to start, there was Zoolatry, Anubis in full animal form originally, and there were attempts to placate the power of the animal, bribing the power of the Jackal by satisfying the God, making the animal less threatening.&lt;/p&gt;
&lt;p&gt;Over time, technology advanced and made protecting tombs easier, and the anthropomorphic, humanlike Anubis that we know now developed as the Egyptians conquered and controlled the jackals (and, in turn, their fears), understanding the God as now being cooperative. Anubis predates Osiris as lord of the dead, and got demoted to embalmer and gatekeeper once Osiris rose in prominence.&lt;/p&gt;
&lt;p&gt;Some would argue the evolution didn&#39;t stop there--as nowadays Anubis is known to some as being &lt;a href=&quot;https://anubis.techaro.lol/&quot;&gt;an adorable anime girl&lt;/a&gt; now protecting their website from DDoS attacks. The wheel of time continues to turn.&lt;/p&gt;
&lt;div class=&quot;rule&quot; aria-hidden=&quot;true&quot;&gt;------------------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;p&gt;I&#39;m aware that, in writing something like this, I&#39;m playing the role of &lt;a href=&quot;http://plaintext.brennan.day/more-than-one-way-on-ritual-morality-and-the-darkness-beyond-knowing/#part-four-the-anthropologists-predicament&quot;&gt;the anthropologist&lt;/a&gt; which I&#39;ve criticized in the past. Which is to say, I&#39;m compartmentalizing and acting as though the beliefs and thoughts of others can be easily understood, simply because they&#39;re geographically and temporally distant.&lt;/p&gt;
&lt;p&gt;The wheel of time doesn&#39;t change the gods--it changes the people telling their stories. My evolutionary arc is another layer of interpretation, surely.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Suspect Happiness in Pursuit: An Anti-Interview with Unstory</title>
		<link href="http://plaintext.brennan.day/suspect-happiness-in-pursuit-an-anti-interview-with-unstory/"/>
		<updated>2026-08-13T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/suspect-happiness-in-pursuit-an-anti-interview-with-unstory/</id>
		<content type="html">&lt;p&gt;The United States has marked 250 years since the Declaration of Independence this year, &lt;a href=&quot;https://phenomenalworld.org/issue/issue-1-american-power/&quot;&gt;a nation in decline&lt;/a&gt;, which includes the infamous line of the unalienable rights given to all people:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://www.archives.gov/founding-docs/declaration-transcript&quot;&gt;&amp;quot;Life, liberty and the pursuit of happiness&amp;quot;&lt;/a&gt; [^1]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;[^1]: Originally, it was merely going to be &amp;quot;life, liberty, and property&amp;quot; as per &lt;a href=&quot;https://archive.org/details/twotreatisesofgo00john/page/&quot;&gt;John Locke&lt;/a&gt;... and maybe we&#39;d be a lot closer to universal housing as a right if that were the case.&lt;/p&gt;
&lt;p&gt;But what does it actually mean to pursue happiness? It means to chase, to run after. You are free to try to reach, but you are not promised the destination of happiness itself.&lt;/p&gt;
&lt;p&gt;And, sure, I could explain that the idea of the &lt;a href=&quot;https://usconstitution.net/founding-fathers-on-civic-duty/&quot;&gt;founding fathers was to have citizens living a life of civic virtue&lt;/a&gt;, moral self-improvement, and personal freedom to work (or own property) without unfair government blocks, rather than just seeking short-term personal pleasure.&lt;/p&gt;
&lt;p&gt;But I think you&#39;d agree with me--that sounds more like a noble contentment rather than happiness, doesn&#39;t it? Hm.&lt;/p&gt;
&lt;h2 id=&quot;the-50%2F10%2F40-split&quot; tabindex=&quot;-1&quot;&gt;The 50/10/40 Split&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;All I want now is happiness for you and me&lt;br /&gt;
What I used to be will pass away and then you&#39;ll see.&lt;br /&gt;
--Elliott Smith, &lt;a href=&quot;https://www.youtube.com/watch?v=qBZtFKUCBgw&quot;&gt;&amp;quot;Happiness&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As you may already be aware, our capacity for happiness is already regarded as known. The most widely cited framework for happiness is from psychologist Sonja Lyubomirsky (UC Riverside) and colleagues Kennon Sheldon and David Schkade, who proposed a &lt;a href=&quot;https://journals.sagepub.com/doi/10.1037/1089-2680.9.2.111&quot;&gt;&amp;quot;sustainable happiness model&amp;quot; in a 2005 paper&lt;/a&gt;, later popularized in her &lt;a href=&quot;https://www.penguinrandomhouse.ca/books/298918/the-how-of-happiness-by-sonja-lyubomirsky/9780143114956&quot;&gt;2008 book &lt;em&gt;The How of Happiness&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The review of evidence by Lyubomirsky et al. (including &lt;a href=&quot;https://attentionalleadership.com/wp-content/uploads/2020/07/Happiness-is-a-Stochastic-Phenomenon.-by-David-Lykken-and-Auke-Tellegen.-APS.-May-1996.pdf&quot;&gt;a 1996 study by Lykken and Tellegen&lt;/a&gt; which compared the well-being levels of identical and non-identical twins raised together or apart) led to what&#39;s known as the 50/10/40 split.&lt;/p&gt;
&lt;p&gt;To start, there&#39;s a 50% set point. Essentially half of a person&#39;s long-term happiness level is genetically determined. Identical twins&#39; well-being levels correlated around 50%, versus only 2-8% for non-identical twins, suggesting a strong heritable component to baseline happiness.&lt;/p&gt;
&lt;p&gt;And how much is due to circumstance? Things like income, health, marital status, where you live--in other words, the things external to you that you can&#39;t control?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10%.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s it. The remaining 40% is determined by intentional activity, what Lyubomirsky &lt;a href=&quot;https://edbatista.com/2009/02/happiness-2.html&quot;&gt;calls &amp;quot;happiness strategies&amp;quot;&lt;/a&gt;. We can&#39;t alter our genetic set points, and there are many circumstances in our life well beyond our control, but our will and choices we make can meaningfully increase and sustain happiness.&lt;/p&gt;
&lt;p&gt;Now, it&#39;s clear that this is a radical oversimplification of many factors, and it&#39;s been decades since this research has been published. In &lt;a href=&quot;https://www.tandfonline.com/doi/full/10.1080/17439760.2019.1689421&quot;&gt;a 2021 revisiting paper, Sheldon and Lyubomirsky&lt;/a&gt; write that the pie chart aspect of the model was flawed, and that they agree with many critiques while noting they were speculative and not dogmatic in the original.&lt;/p&gt;
&lt;p&gt;But there is still something to it--I think there&#39;s a placebo aspect to will. I don&#39;t know if our belief in how much control we have actually changes how much control we have, but I do know it at least makes us, in fact, believe we have control.&lt;/p&gt;
&lt;p&gt;If the 40% is real, it may be real only as a story--a story about intention, effort, and choice.&lt;/p&gt;
&lt;h2 id=&quot;the-curious-case-of-unstory-and-brennan&quot; tabindex=&quot;-1&quot;&gt;The Curious Case of Unstory and Brennan&lt;/h2&gt;
&lt;p&gt;In truth, I bring all this up because there&#39;s an anonymous blogger who&#39;s been on my mind, &lt;a href=&quot;https://unstory.eu/&quot;&gt;Unstory&lt;/a&gt;, who you may have seen on Bubbles or elsewhere.&lt;/p&gt;
&lt;p&gt;There have been quite a few stories in the blogosphere recently about fighting &lt;a href=&quot;https://skuka.online/popular-narrative-says-that-we-are-all-doomed-i-refuse-to-be-doomed/&quot;&gt;against doomerism&lt;/a&gt;, in the &lt;a href=&quot;https://shkspr.mobi/blog/2026/08/against-doomerism/&quot;&gt;realm of politics&lt;/a&gt; and the &lt;a href=&quot;https://francescrossley.com/refusing-to-be-doomed/&quot;&gt;struggle and fight against doom&lt;/a&gt;. I&#39;ve always thought that our capacity of imagination for a better future is one of the most vital things we can cultivate. This is what &lt;a href=&quot;https://lithub.com/writing-toward-a-definition-of-indigenous-futurism/&quot;&gt;Indigenous Futurism&lt;/a&gt; is; the post-apocolyptic Biskaabiiyang.&lt;/p&gt;
&lt;p&gt;And then there&#39;s &lt;a href=&quot;https://unstory.eu/&quot;&gt;Unstory&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are many labels I would give Unstory after reading his blog posts: pessimist, cynic, misanthrope. But he rejects all labels except &amp;quot;peasant,&amp;quot; which I can&#39;t help but respect. He understands a peasant as simply needing &amp;quot;food, sleep, maybe silence, not solidarity. [The] Peasant is not a member. Not an identity. Not a political faction.&amp;quot; He appreciates the peasants who write online that are working class, those who are the &lt;a href=&quot;https://unstory.eu/aie/&quot;&gt;&amp;quot;no-name cashier, waitress, cleaner, janitor, watchman, food delivery guy&amp;quot;&lt;/a&gt; and I completely agree that I would love to read more blogs by people like that.&lt;/p&gt;
&lt;p&gt;In many ways, Unstory and I have similar ethos. He writes in short, unsentimental bursts, usually under a couple hundred words, blog posts that get to the point. We both appreciate &lt;a href=&quot;https://unstory.eu/urd/&quot;&gt;the literal, the thing&lt;/a&gt; rather than the thing being merely talked about. We&#39;re both against &lt;a href=&quot;https://unstory.eu/sri/&quot;&gt;tone policing&lt;/a&gt;, we would agree that &lt;a href=&quot;https://unstory.eu/uml/&quot;&gt;the romance of nature&lt;/a&gt; is often completely detached from its reality. We would also agree that the Internet is &lt;a href=&quot;https://unstory.eu/afx/&quot;&gt;over-engineered and bloated&lt;/a&gt;, and he even came up with a rather smart, simple idea for &lt;a href=&quot;https://unstory.eu/xqj/&quot;&gt;&amp;quot;leaf&amp;quot; files&lt;/a&gt; which I enjoy. The platonic ideal of the lazy &lt;a href=&quot;https://unstory.eu/kts/&quot;&gt;minimal source of peasant articles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In other ways, though, we are diametrically opposed. He has &lt;a href=&quot;https://unstory.eu/nrb/&quot;&gt;a disdain for the exact kind of writing&lt;/a&gt; I do. And I&#39;ve found Unstory&#39;s recent posts to be hostile, and critical-yet-passive. His latest post, as of writing, is &lt;a href=&quot;https://unstory.eu/fcl/&quot;&gt;angrily complaining&lt;/a&gt; about the IndieWeb traditions of carnivals and other writing challenges without actually naming anybody in particular. And I can&#39;t help but wonder why? Compared to the earlier posts on the blog, these more recent ones feel hollow, aggressive for the sake of being aggressive, aimed at fellow writers rather than massive corporate entities and bullshit systems that would be justified with such ire.&lt;/p&gt;
&lt;p&gt;Part of what makes those recent posts feel hollow is the language. I dislike ableist words (dumb, stupid, idiot, and the like) because insulting someone&#39;s intellect &lt;a href=&quot;https://www.npr.org/sections/codeswitch/2014/02/10/267561895/it-took-a-eugenicist-to-come-up-with-moron&quot;&gt;has eugenic roots&lt;/a&gt;. Unstory certainly doesn&#39;t need those words to be cutting, his best lines are sharper without them.&lt;/p&gt;
&lt;p&gt;But maybe what bothers me the most is how it feels like Unstory is maintaining a label and identity, and performing a particular mood and opinion. Something predictable at this point.&lt;/p&gt;
&lt;p&gt;Anyways, to bring this back to my original point, about happiness, Unstory wrote to me how &amp;quot;willpower as biological illusion, like free will. System can&#39;t be changed from inside. Too abstract for an article. Maybe it stays as smoke.&amp;quot;&lt;/p&gt;
&lt;p&gt;And I think that&#39;s where we differ the most, to surrender to the physical mechanics and electrochemical certainties of our material world, and to believe there is absolutely no autonomy, as a result.&lt;/p&gt;
&lt;p&gt;I admit that these are most likely handy illusions, but I have lived such a joyous, interesting life because of these pseudo-choices I&#39;ve made. Unstory replied that &amp;quot;handy illusions are still illusions. You can&#39;t do whatever you want. That&#39;s your illusion. You do what environment, and time demand. Organism moves or does not. The story comes after.&amp;quot;&lt;/p&gt;
&lt;p&gt;And what of people? Unstory says &amp;quot;Good people? There is no such thing ;/ Nature does not know &amp;quot;good&amp;quot;. Something exists or not. You romanticized people and society.&amp;quot;&lt;/p&gt;
&lt;p&gt;Is this wise zen, or bleak nihilism? It&#39;s hard to tell. To be honest, despite how crude and crass Unstory often is on his blog, and despite how much I disagree with him, I can&#39;t help but find wisdom in his writing. And he tells me, &amp;quot;[y]ou can&#39;t learn anything from me. Your organism does not need my body for anything. And if it needs it, you will kill me and eat. It knows what to do.&amp;quot;&lt;/p&gt;
&lt;p&gt;Unstory&#39;s determinism is that he writes. He replies. He maintains a blog. He &amp;quot;points at corpses&amp;quot; and refuses labels. If nobody chooses anything, then even the refusal to decorate a lie is not a choice. Yet, it is a performance, and a performance implies an audience, and an audience implies that the story matters.&lt;/p&gt;
&lt;p&gt;Am I happier than Unstory? It&#39;s a ridiculous question, and I&#39;m almost certain Unstory would reject it. While we have two radically different, opposing worldviews, I certainly don&#39;t think mine is better or superior. That&#39;s why I wrote &amp;quot;The Curious Case of Unstory &lt;em&gt;and&lt;/em&gt; Brennan&amp;quot; in the header. By that, I don&#39;t think we balance each other out, or that the world needs both our worldviews, or anything like that. People are just people. I just think we&#39;re both weird, and we would make a &lt;em&gt;fantastic&lt;/em&gt; buddy-cop film if we co-starred in it.&lt;/p&gt;
&lt;p&gt;I am humanist, social, romantic, attached to identity, seeing people as good, treating questions as meaningful, and treating free will as a useful illusion. Unstory is anti-humanist, anti-identity, deterministic, seeing categories as traps, rejecting moral language, and refusing to offer wisdom or salvation.&lt;/p&gt;
&lt;p&gt;Of course, by writing this I am doing exactly what he refused to do. I am turning him into a type, with particular labels. I did indeed want a clean portrait for my story of Unstory. And in his first reply, he refused, telling me that my &amp;quot;questions try to turn [him] into a type...&amp;quot; He will not wear labels, and his answers are evasive not out of dishonesty but out of a principled resistance to being pinned down or figured out.&lt;/p&gt;
&lt;p&gt;I failed in getting a proper interview out of Unstory, and I joyously surrendered. The more we exchanged, the more the diptych developed. Cynicism vs. love, the stripped body vs. the embellished story, the impossibility of change vs. the glorious illusion of it.&lt;/p&gt;
&lt;p&gt;You see, Unstory&#39;s logic remains unassailable on its own terms, but Brennan&#39;s joy remains unconquered. Two people staring at the same abyss--one seeing only the abyss, the other seeing a wonderful illusion and shouting &amp;quot;Hurrah!&amp;quot; into the void. Our exchange gains a strange beauty from the double vision--and it just keeps looking.&lt;/p&gt;
&lt;p&gt;I&#39;d like to share a quote from one of my favourite writers to end this on.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In spite of everything I still believe that people are really good at heart. I simply can&#39;t build up my hopes on a foundation consisting of confusion, misery, and death. I see the world gradually being turned into a wilderness, I hear the ever approaching thunder, which will destroy us too, I can feel the sufferings of millions and yet, if I look up into the heavens, I think that it will all come right, that this cruelty too will end, and that peace and tranquility will return again.&amp;quot;&lt;br /&gt;
― Anne Frank, &lt;em&gt;The Diary of a Young Girl&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
	</entry>
	<entry>
		<title>The Weight of Words</title>
		<link href="http://plaintext.brennan.day/the-weight-of-words/"/>
		<updated>2026-08-12T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/the-weight-of-words/</id>
		<content type="html">&lt;p&gt;I have been mulling over free speech &lt;a href=&quot;http://plaintext.brennan.day/free-speech-and-the-indieweb/&quot;&gt;since my previous post&lt;/a&gt; on the topic. Despite the response my blog post got from BD&#39;s crowd, I myself am certainly not anti-free speech.&lt;/p&gt;
&lt;p&gt;I&#39;ve come to realize that my fundamental difference with absolutists is that I believe giving everyone a seat at the table, including those who would erode the rights of everyone else sitting (if given the opportunity) only permits free speech in the short-term. I believe taking extraordinary measures with extraordinary circumstances is necessary to allow everyone else to maintain their freedom of speech indefinitely.&lt;/p&gt;
&lt;p&gt;John Rawls, and his notion of &lt;a href=&quot;https://plato.stanford.edu/entries/rawls/&quot;&gt;reasonable pluralism&lt;/a&gt;, is a society built on real disagreement, but that doesn&#39;t owe a seat to every disagreement, only to the ones that accept that other people are allowed to exist and be wrong. A reasonable doctrine would never use power to erase the doctrines sitting beside it. The unreasonable ones are the ones that would. The accommodation a free society extends isn&#39;t unconditional tolerance dressed up as principle, and the unreasonable doctrines are the ones that would resort to &lt;a href=&quot;https://digitalcommons.tourolaw.edu/cgi/viewcontent.cgi?article=2356&amp;amp;context=lawreview&quot;&gt;&amp;quot;the oppressive use of state power&amp;quot; to erase the rest&lt;/a&gt;. No amount of politeness in the meantime changes what they&#39;re asking for a seat to eventually do.&lt;/p&gt;
&lt;p&gt;Beyond this, I&#39;ve written before about how &lt;a href=&quot;http://plaintext.brennan.day/i-need-to-stop-making-promises-i-cant-keep/&quot;&gt;I&#39;m limited by Canadian law as to what I&#39;m allowed&lt;/a&gt; to host on my transformative works archive &lt;a href=&quot;https://fanfiction.lol/&quot;&gt;fanfiction.lol&lt;/a&gt;, and I certainly don&#39;t agree with that  whatsoever.&lt;/p&gt;
&lt;p&gt;Anyways, while there were quite a few responses to my post on free speech within the IndieWeb that seemed to miss the main point I was trying to drive home, there was one anonymous comment in particular that I found myself agreeing with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I&#39;m not understanding how [Brennan]&#39;s opinions became so important to some.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now this, I can sympathize with. If I wanted prestige or clout I would be doing everything I could to get a job at an institutional publication with name recognition. Instead, I write here, wholly independent and on my own. My opinion is certainly not important. Beyond this, I am not a good person, and I am often foolish as well. The scant &lt;a href=&quot;https://brennan.day/press&quot;&gt;bylines I have&lt;/a&gt; are from chance, mostly.&lt;/p&gt;
&lt;p&gt;Now, that doesn&#39;t mean I just write whatever-the-fuck, I have &lt;a href=&quot;https://brennan.day/standards&quot;&gt;standards&lt;/a&gt;. Why? Because no matter what, words have weight--and I try my best to be mindful of what I write and speak into the world. As I&#39;ve written before, humanity has &lt;a href=&quot;http://plaintext.brennan.day/storytelling-part-two-the-literal-magic-of-writing/&quot;&gt;long thought the act of writing is magic&lt;/a&gt;. To write something out doesn&#39;t merely communicate it symbolically, but manifests the actual thing into the reader&#39;s mind. That is no small thing.&lt;/p&gt;
&lt;p&gt;Many of us (myself included) lose the reason why we&#39;re writing or speaking in the first place. We become engrossed in the granular fine points of a conversation and then are surprised we&#39;re buried to the head in quicksand.&lt;/p&gt;
&lt;h2 id=&quot;what-does-all-dialogue-need%3F&quot; tabindex=&quot;-1&quot;&gt;What Does ALL Dialogue Need?&lt;/h2&gt;
&lt;p&gt;I try to centre myself on what Paulo Freire, Brazilian educator and philosopher, thought about dialogue:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If I do not love the world, if I do not love life, if I do not love people, I cannot enter into dialogue.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is easy to nod along to in the abstract, but it&#39;s wrenchingly difficult to practice when the person across from you is irritating, wrong, or hostile. And that is when the principle matters most--and it&#39;s also when most of us, myself included, fail.&lt;/p&gt;
&lt;p&gt;And, from his book &lt;a href=&quot;https://www.historyisaweapon.com/defcon2/pedagogy/pedagogychapter3.html&quot;&gt;Pedagogy of the Oppressed, chapter 3&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Dialogue cannot exist, however, in the absence of a profound love for the world and for people. The naming of the world, which is an act of creation and re-creation, is not possible if it is not infused with love. Love is at the same time the foundation of dialogue and dialogue itself.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think if you ask people what their core values are, you&#39;d hear the same answers often: trust, growth, unity, safety, family. And how distant these values become in the screenvoid of cyberspace. As though there is an amnesia somewhere between the keyboard and our fingers.&lt;/p&gt;
&lt;p&gt;Of course, I don&#39;t think this is true for everyone. An excellent counterexample is the creator of &lt;a href=&quot;https://omg.lol/&quot;&gt;omg.lol&lt;/a&gt;, &lt;a href=&quot;https://neatnik.net/&quot;&gt;Adam Newbold&lt;/a&gt;, who has been consistent with his principles and efforts any time I&#39;ve spoken to him, no matter what the consequence of that may be. He&#39;s been the one to push me &lt;a href=&quot;http://plaintext.brennan.day/choosing-friction-and-clear-skies-i-m-no-longer-using-cloudflare/&quot;&gt;to stop using Cloudflare&lt;/a&gt; and several other important issues.&lt;/p&gt;
&lt;p&gt;The world is in dire need of more people like Adam--of people willing to be vocal and urge our friends to do better, and to believe they can do better. Adam never comes from a place of being critical or morality, they always centre compassion and inherently believe I (and others) are capable of showing more mindful compassion ourselves.&lt;/p&gt;
&lt;p&gt;And, I think &lt;a href=&quot;http://plaintext.brennan.day/sbsk-is-the-most-important-channel-on-youtube/&quot;&gt;similar to Chris Ulmer&lt;/a&gt;, Adam is not a saint. It does not take an extraordinary amount of courage or love to stay convicted with your principles and believe in the other people in your life similarly. Anybody could do what he does, and I try my best to do the same for others in my own life.&lt;/p&gt;
&lt;p&gt;I&#39;ll give an example of this--it would probably be better if I didn&#39;t mention specifics, but I have mentioned previously that &lt;a href=&quot;http://plaintext.brennan.day/vagueblogging-and-subtweeting-are-awful/&quot;&gt;I personally really dislike vagueblogging&lt;/a&gt;. An Internet friend of mine, Rina, wrote a blog post about how she &lt;a href=&quot;https://riri.my/posts/i-wont-stop-saying-retarded&quot;&gt;wouldn&#39;t stop saying a certain slur&lt;/a&gt; and presumed that Americans of the United States were uniquely offended by the word, and noted how ubiquitous the word is where she&#39;s from. A different culture and a non-native understanding of English aren&#39;t excuses, but they do complicate things.&lt;/p&gt;
&lt;p&gt;And I responded directly, with how the word is actually rather hurtful in all the English-speaking world, and that it is particularly hurtful when aimed towards those with disabilities.&lt;/p&gt;
&lt;p&gt;Less than a day later, she wrote another post &lt;a href=&quot;https://riri.my/posts/maybe-i-was-wrong&quot;&gt;admitting she was wrong&lt;/a&gt; and apologized:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;first, i need to say thank you to the people that showed me kindness, even if i probably didn&#39;t deserve it, namely brennan and vigil. this is how you make someone think things through&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;what-is-permitted%3F-(the-world-is-a-cruel-place)&quot; tabindex=&quot;-1&quot;&gt;What is Permitted? (The World is a Cruel Place)&lt;/h2&gt;
&lt;p&gt;Connecting this back to BlueDwarf, SpaceGhost does actually have &lt;a href=&quot;https://bluedwarf.top/cackle/rules-of-conduct.html&quot;&gt;rules against name-calling and threats&lt;/a&gt;, which I think is a good idea for a public forum--but does this not inhibit people&#39;s ability to speak freely? It does, and I think that&#39;s okay. The Internet is full of ad hominem and name-calling. Not every space needs to be a free-for-all; the question is whether the boundaries are drawn in service of love or in service of comfort.&lt;/p&gt;
&lt;p&gt;If love is the foundation of dialogue, what do we do with people who refuse to reciprocate? If I extend grace and someone uses it to trample others, am I complicit? The small-web spaces I inhabit have to answer this daily, and their answers vary wildly.&lt;/p&gt;
&lt;p&gt;Anyways, the next day, Rina made an update to her site that was clearly a joke about &lt;a href=&quot;https://riri.my/posts/in-the-west-everything-is-offensive&quot;&gt;North Korea&lt;/a&gt; and was subsequently banned from 32-bit Café because the joke was regarded as racist--which it obviously isn&#39;t, at least in my opinion.&lt;/p&gt;
&lt;p&gt;Abolitionist organizer &lt;a href=&quot;https://transformharm.org/resource_author/mariame-kaba/&quot;&gt;Mariame Kaba&lt;/a&gt; spent decades arguing for a hard distinction between punishment and accountability. Punishment asks &lt;em&gt;who broke the rule, and what do they deserve?&lt;/em&gt; Accountability asks &lt;em&gt;what happened, what does repair require, and how do we make it less likely to happen again?&lt;/em&gt; &lt;a href=&quot;https://forthewild.world/listen/mariame-kaba-on-moving-past-punishment-151&quot;&gt;Kaba&#39;s point&lt;/a&gt; was not that harm doesn&#39;t matter--it&#39;s that exile doesn&#39;t produce the safety it promises, only the &lt;em&gt;look&lt;/em&gt; of it.&lt;/p&gt;
&lt;p&gt;It&#39;s certainly none of my business how an external platform decides to moderate and who they decide to ban, and for what reason--but I am allowed to write my thoughts about it on my blog.&lt;/p&gt;
&lt;p&gt;Maybe this was simply the straw that broke the camel&#39;s back, but as I mentioned in my previous post, there are so few of us that care about the small web. And, far more important, we are too quick to disregard those that rub us the wrong way.&lt;/p&gt;
&lt;p&gt;What do we do with this, past believing it? I don&#39;t think reverence for your own words arrives as a mood before you sit down to write. It needs to be &lt;em&gt;built&lt;/em&gt; into the process, the way you&#39;d handle anything that could wound someone if you&#39;re careless. Read the sentence back as though a stranger wrote it to you on your worst day. Ask what you&#39;re conjuring, not just what you&#39;re arguing. What is the gap between what you meant and what the words alone will carry once you&#39;re gone and can&#39;t explain? Treat the space between drafting and publishing as a place where you&#39;re still allowed to change your mind about what you&#39;re about to summon into the world.&lt;/p&gt;
&lt;p&gt;I will continue to extend grace and benevolence, and try to explain where others only respond with contempt and scolding, or blocking and banning. This is not toxic positivity, but it certainly is a stubborn optimism. An undying belief in believing in the better of people and the power of words.&lt;/p&gt;
&lt;p&gt;The world is a cruel place, and therefore I will not be.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Our Skies Contain Sprites, Elves, Trolls, Pixies, Ghosts, and Gnomes</title>
		<link href="http://plaintext.brennan.day/our-skies-contain-sprites-elves-trolls-pixies-ghosts-and-gnomes/"/>
		<updated>2026-08-11T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/our-skies-contain-sprites-elves-trolls-pixies-ghosts-and-gnomes/</id>
		<content type="html">&lt;p&gt;Have you heard of ball lightning? Maybe you have. It&#39;s known as an odd weather phenomenon, thought of as supernatural. The oldest written record of it may be an illuminated manuscript from an English monk in 1195, describing a fire-globe dropping out of a storm cloud that fell into the river Thames, &lt;a href=&quot;https://cen.acs.org/environment/atmospheric-chemistry/What-is-ball-lightning-reality-or-myth/102/i12&quot;&gt;logged in medieval chronicle and rediscovered by modern researchers in 2022&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Humans have been watching hissing, drifting orbs of light appear out of thunderstorms since before we had the words to record them, and every culture used similar vocabulary: &lt;strong&gt;spirits&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In Japan, it&#39;s called &lt;a href=&quot;https://en.wikipedia.org/wiki/Hitodama#Theories&quot;&gt;&lt;em&gt;hitodama&lt;/em&gt;&lt;/a&gt;, translating to &amp;quot;human souls,&amp;quot; the glowing balls thought to be spirits of the dead, untethered from their bodies and wandering. In English countrysides, the same lights were &lt;a href=&quot;https://cen.acs.org/environment/water/will-o-wisps-microlighting-chemistry-mystery/103/web/2025/10&quot;&gt;&lt;em&gt;will-o&#39;-the-wisps&lt;/em&gt;&lt;/a&gt;, mischievous fairies leading travelers off the safe path and into the bog. In the Australian Outback, they&#39;re &lt;a href=&quot;https://www.abc.net.au/news/2018-09-30/min-min-lights-seen-in-outback/10317058&quot;&gt;&lt;em&gt;Min Min lights&lt;/em&gt;&lt;/a&gt;, fuzzy orbs that follow you at night.&lt;/p&gt;
&lt;p&gt;In Argentina and Chile, the Mapuche call them &lt;a href=&quot;https://en.wikipedia.org/wiki/Anchimayen&quot;&gt;&lt;em&gt;Anchimayen&lt;/em&gt;&lt;/a&gt;, the souls of the dead, mischievous spirit creatures appearing as small glowing lights in the Andes. In 17th-century Devon, England, a fireball tore through a church during a service, &lt;a href=&quot;https://earlymodernscribbling.com/2023/02/06/piecing-together-the-story-a-case-study-in-17th-century-news-reporting/&quot;&gt;the Widecombe fireball&lt;/a&gt;, and was understood by villagers as either the Devil, or God&#39;s judgment on a congregation caught sinning at prayer. A century after that, the occultist Aleister Crowley described a &amp;quot;dazzling globe of electric fire&amp;quot; appearing in the cottage where he was staying, &lt;a href=&quot;https://www.britannica.com/story/does-ball-lightning-exist&quot;&gt;which he claimed shocked his hand slightly before it exploded&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Scientifically, ball lightning[^1] is described as a hissing, glowing sphere. It can be red, orange, yellow, or blue. Sometimes trailing the smell of sulphur, appearing during or just after a thunderstorm, drifting through the air or hovering close to the ground, and vanishes after only a few seconds, &lt;a href=&quot;https://www.nationalgeographic.com/environment/article/ball-lightning&quot;&gt;sometimes with a pop or an explosive crack&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;[^1]: Some of the above cultural legends and folklore are hypothesized to be ball lightning, others have different theories.&lt;/p&gt;
&lt;p&gt;Even now, there is still no single accepted physical explanation for it. Plasma models treat it as a self-contained, temporarily stable bubble of ionized gas. Other theories explain it as silicon combustion, microwave-trapped fields, or maybe even quantum effects. &lt;a href=&quot;https://strangesounds.org/ball-lightning-explained&quot;&gt;None of them account for the full range of credible sightings on their own&lt;/a&gt;, including the reports of ball lightning passing straight through closed windows without breaking the glass.&lt;/p&gt;
&lt;p&gt;But the sky has so many mysterious, barely-witnessed phenomena. There&#39;s a constant pulse and surge of electricity.&lt;/p&gt;
&lt;p&gt;Of magic.&lt;/p&gt;
&lt;p&gt;Perhaps I&#39;m a romantic, and the naming conventions for these phenomena are why I&#39;m so captivated by them. Between the troposphere and stratosphere, there are blue jets, which can have upward superbolts beyond conventional cloud-to-air discharges.&lt;/p&gt;
&lt;p&gt;But higher than that--in the mesosphere and ionosphere? There are whimsical electrical-breakdown phenomena. There are the tendrils of sprites. There are elves, and there are also trolls and pixies, ghosts and gnomes. Let me explain.&lt;/p&gt;
&lt;h2 id=&quot;blue-jets&quot; tabindex=&quot;-1&quot;&gt;Blue Jets&lt;/h2&gt;
&lt;p&gt;Blue jets are luminous electrical ejections shooting upward from the tops of active thunderstorms into the stratosphere, reaching heights of 80 kilometres (50 miles). Unlike standard lightning, they streak upward in narrow, cone-shaped beams at speeds near 100 kilometres per second, lasting for less than a fraction of a second.&lt;/p&gt;
&lt;p&gt;The first video recording of any of these transient luminous events (TLEs) was footage from a space shuttle mission in 1989, and it wasn&#39;t until February 2019 that scientists finally watched a blue jet from start-to-finish. An international team using &lt;a href=&quot;https://www.esa.int/Science_Exploration/Human_and_Robotic_Exploration/Genesis_of_blue_lightning_into_the_stratosphere_detected_from_the_International_Space_Station&quot;&gt;ASIM&lt;/a&gt;--a bank of cameras and sensors the European Space Agency bolted to the outside of the International Space Station in 2018--recorded a jet erupting from a storm near the island of Nauru in the Pacific.&lt;/p&gt;
&lt;p&gt;Danish physicist Torsten Neubert described the ignition point as a &amp;quot;blue bang,&amp;quot; &lt;a href=&quot;https://www.sciencenews.org/article/space-station-detectors-found-source-weird-blue-jet-lightning&quot;&gt;a ten-microsecond flash near the top of the cloud shooting skyward for less than a second, climbing 52 kilometers before it burned out&lt;/a&gt;. The mechanisms of the blue jet &lt;a href=&quot;https://www.nature.com/articles/s41586-020-03122-6&quot;&gt;were only published for the first time in Nature in 2021&lt;/a&gt;. Scientists divide jets into three types: blue jets, blue starters (which don&#39;t make it as far), and gigantic jets, &lt;a href=&quot;https://weatherworksinc.com/news/the-lightning-above&quot;&gt;an even rarer version that can travel all the way to the ionosphere itself&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;red-sprites-(and-their-tendrils)&quot; tabindex=&quot;-1&quot;&gt;Red Sprites (and their tendrils)&lt;/h2&gt;
&lt;p&gt;Red sprites are large-scale electrical discharges that flash reddish-orange in the upper atmosphere at altitudes of 50 to 90 km (31 to 56 mi) above major thunderstorms. Often resembling giant jellyfish or carrots. Only lasting a few milliseconds, triggered by powerful positive cloud-to-ground lightning strikes.&lt;/p&gt;
&lt;p&gt;The &amp;quot;tendrils&amp;quot; the sprites have refer to the glowing, hanging filaments of red sprites--large-scale electrical discharges flashing high above massive thunderstorms. The microphysics of how their fine, jellyfish-like tendrils are structured and propagate remains an active area of atmospheric research.&lt;/p&gt;
&lt;p&gt;The word &amp;quot;sprite&amp;quot; has origins in 1300 CE as a variant of spirit, by way of the Old French &lt;em&gt;esprit&lt;/em&gt; and the &lt;em&gt;Latin&lt;/em&gt; spiritus, meaning breath or soul. For centuries it was a catch-all term for &lt;a href=&quot;https://en.wikipedia.org/wiki/Sprite_(folklore)&quot;&gt;elves, fairies, ghosts, and apparitions of nearly any kind, without much taxonomic care&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When 20th-century atmospheric physicists needed a word for a phenomenon that flickered into existence for a few thousandths of a second and then was gone, leaving behind no trace (and almost no chance of confirmation), &lt;a href=&quot;https://en.wikipedia.org/wiki/Sprite_(lightning)&quot;&gt;they were named sprites (air spirits) specifically for their elusive nature&lt;/a&gt;, a scientific christening from folklore.&lt;/p&gt;
&lt;h2 id=&quot;the-elves&quot; tabindex=&quot;-1&quot;&gt;The ELVES&lt;/h2&gt;
&lt;p&gt;Above the red sprites are the ELVES (a &lt;a href=&quot;https://www.merriam-webster.com/dictionary/backronym&quot;&gt;backronym&lt;/a&gt; for Emissions of Light and Very Low Frequency perturbations due to Electromagnetic Pulse Sources). They&#39;re &lt;a href=&quot;https://www.iflscience.com/spectacular-photo-captures-two-rare-atmospheric-phenomena-at-the-same-time-81897&quot;&gt;massive, rapidly expanding ring-shaped glows&lt;/a&gt;. They occur about 100 km above thunderstorms in the ionosphere, spanning up to 400 km wide and also lasting less than a single millisecond.&lt;/p&gt;
&lt;p&gt;Elves were only identified in 1990, &lt;a href=&quot;https://arxiv.org/pdf/2309.12851&quot;&gt;discovered by the Mesoscale Lightning Experiment&lt;/a&gt;, and their doughnut-shaped glow is the visible signature of an electromagnetic pulse slamming into the bottom of the ionosphere and briefly heating and ionizing it into light. The elves expand outward at close to the speed of light, gone before you could possibly see.&lt;/p&gt;
&lt;h2 id=&quot;trolls%2C-pixies%2C-ghosts%2C-and-gnomes&quot; tabindex=&quot;-1&quot;&gt;Trolls, Pixies, Ghosts, and Gnomes&lt;/h2&gt;
&lt;p&gt;Scientists studying the upper atmosphere kept finding smaller, weirder, harder-to-catch TLPs. A cryptid taxonomy was thus created above our heads. &lt;a href=&quot;https://www.astronomy.com/science/astronomers-capture-a-green-ghost-in-our-atmosphere/&quot;&gt;Trolls, pixies, ghosts, and gnomes&lt;/a&gt;. And man, it&#39;s &lt;a href=&quot;https://www.pressreader.com/canada/the-telegram-st-johns/20231031/281719799279493&quot;&gt;hard to find writing xpecifically about these&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A TROLL (short for Transient Red Optical Luminous Lineament) forms in the immediate aftermath of a sprite, &lt;a href=&quot;https://www.kold.com/story/29850344/monsoon-sprite-and-troll-light-up-the-sky-for-astronauts/&quot;&gt;appearing as a red spot with a faint tail, sometimes finishing with a thin red streak trailing back down toward the storm&lt;/a&gt;. An afterimage of an afterimage.&lt;/p&gt;
&lt;p&gt;Pixies are, fittingly, the tiniest of the family. Unusual, sharp points of white light that flare over a thunderstorm and vanish in around &lt;a href=&quot;https://www.wildrootsnaturecenter.org/blog/tles&quot;&gt;sixteen milliseconds&lt;/a&gt;. Unlike sprites and jets, pixies don&#39;t appear to be tied to any specific lightning strike. They seem random, and aren&#39;t really understood. For years after they were first noticed, sightings stayed sparse and largely anecdotal; it wasn&#39;t until space-based instruments came online in the 2000s, like the &lt;a href=&quot;https://arxiv.org/pdf/2311.16615&quot;&gt;ISUAL satellite launched in 2004&lt;/a&gt;, that researchers had a reliable vantage point.&lt;/p&gt;
&lt;p&gt;Gnomes are similar to pixies. Small, brief spikes of light that shoot upward from the anvil-shaped top of a large thunderhead, &lt;a href=&quot;https://weatherboy.com/rare-sprites-and-jets-photographed-above-thunderstorm/&quot;&gt;lasting only a few microseconds&lt;/a&gt;, a fraction of the time it takes a hummingbird&#39;s wing to beat once. Unlike trolls, &lt;a href=&quot;https://themountainsarecalling.earth/sprites-elves-trolls-pixies-ghosts-gnomes-and-blue-jets/&quot;&gt;neither pixies nor gnomes were ever given a scientific backronym&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;GHOSTS (Green emissions from excited Oxygen in Sprite Top) are the newest TLP, and the least understood. A faint green glow that flickers into being after a red sprite forms, directly above it, and disappears again within milliseconds. Ghosts weren&#39;t documented at all until &lt;a href=&quot;https://www.gismeteo.ru/news/science/zelenye-prizraki-popolnenie-v-semejstve-kosmicheskih-molnij/&quot;&gt;2019&lt;/a&gt; (article in Russian), and even now they only seem to trail about one in every hundred sprites.&lt;/p&gt;
&lt;p&gt;Researchers using an instrument called GRASSP (the Granada Sprite Spectrograph and Polarimeter) have spent years aiming their equipment at the precise altitude where a ghost is likely to appear, &lt;a href=&quot;https://www.astronomy.com/science/astronomers-capture-a-green-ghost-in-our-atmosphere/&quot;&gt;a task one investigator has compared to a mix of luck and expertise&lt;/a&gt;, because there is no way to predict exactly when or where the green will show up. The leading hypothesis is that ghosts share a mechanism with the aurora borealis: the same excitation of oxygen atoms that paints the sky green over the poles tucked into the wake of a sprite.&lt;/p&gt;
&lt;p&gt;A green flash of light, rarely born from a grander red one, invisible from the ground, discovered only within living memory. An active scientific mystery using language we borrow from folklore.&lt;/p&gt;
&lt;p&gt;Thomas Ashcraft, who photographed ghosts in 2015, notes that &amp;quot;there are no articles in scientific journals regarding this phenomenon.&amp;quot;&lt;/p&gt;
&lt;h2 id=&quot;the-magic-of-science&quot; tabindex=&quot;-1&quot;&gt;The Magic of Science&lt;/h2&gt;
&lt;p&gt;Scientists spent the twentieth century discovering an entire second sky above the one we already knew, and named it after sprites, elves, trolls, ghosts, gnomes, pixies. These names weren&#39;t handed down by any official naming body in bureaucracy, as you might be able to tell; they were given by the researchers and enthusiasts who witnessed the phenomena in a scientific context.&lt;/p&gt;
&lt;p&gt;The mystery always comes first, and you need language for it immediately. The oldest words we have for flickerings at the edge of visibility and that defy explanation are folklore. When 20th-century physicists needed language for something ephemeral, luminous, and barely provable, new words were not conjured up, no. They reached back into the reservoir that produced will-o&#39;-the-wisps and hitodama and the Anchimayen. Naming the unexplained after spirits isn&#39;t a failure of scientific rigour, it is what science has always done.&lt;/p&gt;
&lt;p&gt;We need to respect nature, and the glory we barely get to witness. The solar irradiance and electrodynamic tethers, the magnetotellurics of our atmosphere and our planet&#39;s magnetic field. Naming things in nature after such whimsical things is a way to do that--to elevate the natural to supernatural while still being explainable, still being tangible and of-this-world.&lt;/p&gt;
&lt;p&gt;Often, materialist skeptics deny themselves the joy and mirth that comes with the things that cannot be proven or knowable in empirical science. But it&#39;s a false dichotomy, and to be a scientist one must have curiosity and an openness to anything.&lt;/p&gt;
&lt;p&gt;Richard Feynman used to tell a story about an artist friend who held up a flower and told him that science ruined it, that pulling a thing apart to understand its mechanism eliminated beauty. Feynman disagreed completely. He could see the same flower his friend saw, he said, and then he could also see further into it: the cells, the pigments evolved so an insect could see them, the still-unanswered question of whether that insect experiences anything like aesthetic pleasure at all. &lt;a href=&quot;https://www.themarginalian.org/2013/01/01/ode-to-a-flower-richard-feynman/&quot;&gt;Understanding didn&#39;t subtract from the flower&#39;s beauty for him. It only ever added to it&lt;/a&gt;. More mystery the closer he looked, not less.&lt;/p&gt;
&lt;p&gt;Philosopher Helen De Cruz &lt;a href=&quot;https://helendecruz.net/docs/DeCruz_awe_wonder.pdf&quot;&gt;has written on awe and wonder as parts of scientific practice&lt;/a&gt;--the same feeling a religious person might call numinous, she argues, &lt;a href=&quot;https://link.springer.com/article/10.1007/s10699-025-09972-5&quot;&gt;shows up constantly in the working lives of professional scientists, and it&#39;s one of the emotions motivating people to keep pushing past the boundary of what&#39;s currently understood&lt;/a&gt;. And researcher Michael Cuzzolino &lt;a href=&quot;https://dash.harvard.edu/entities/publication/a2a4e859-3d03-46e0-92aa-2c5868011cf2&quot;&gt;studied scientists&#39; own accounts of their work, and found awe is woven into the process&lt;/a&gt;, present in the day-to-day work of not-knowing and slowly, partially knowing.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://pressbooks.pub/virtueandthepracticeofscience/chapter/scientific-practice-wonder-and-awe/&quot;&gt;Kristjánsson points out&lt;/a&gt; that before the Enlightenment, the idea that scientific inquiry could be self‑transcending, and even ecstatic, was part of the Western intellectual tradition. It was only in the 18th century that awe started being treated as a threat to the new ideal of the rational, controlled, autonomous self. Enlightenment thinkers were wrestling with the sublime. &lt;a href=&quot;https://api.philpapers.org/rec/VANTPS&quot;&gt;Edmund Burke, as Ryan explains&lt;/a&gt;, rooted the sublime in terror and self‑preservation, opposing it to rational composure, and &lt;a href=&quot;https://philosophyarts.co.uk/&quot;&gt;Kant&lt;/a&gt; treated it as a test that reason could ultimately pass, only by retreating to a higher moral ground. Wonder was &lt;a href=&quot;https://eprints.whiterose.ac.uk/id/eprint/132589/&quot;&gt;domesticated into something smaller and more manageable&lt;/a&gt;, while awe remained suspect. This false dichotomy between cool reason and ecstatic experience is only a few centuries old, and we are not bound to it.&lt;/p&gt;
&lt;p&gt;I want to note that everything I&#39;ve written about is only in the domain of atmospheric electricity, there are hundreds of different specializations in science, thousands of different parts of our universe to explore, from the impossible small cellular world, to the even smaller atomic and chemical, to the impossibly vast and wondrous heavenly bodies. That&#39;s what they are, aren&#39;t they? Heavenly. The mere fact they exist is transcendental; the magic is already within our world.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>I Would Have Written a Shorter Blog Post, But I Didn&#39;t Have the Time: Creating a WriterDeck</title>
		<link href="http://plaintext.brennan.day/i-would-have-written-a-shorter-blog-post-but-i-didn-t-have-the-time-creating-a-writerdeck/"/>
		<updated>2026-08-10T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/i-would-have-written-a-shorter-blog-post-but-i-didn-t-have-the-time-creating-a-writerdeck/</id>
		<content type="html">&lt;p&gt;On December 2nd, 1938, &lt;a href=&quot;https://www.newspapers.com/article/the-minneapolis-star-keep-it-short-and-s/38577884/&quot;&gt;an issue of The Minneapolis Star&lt;/a&gt; first wrote the phrase &amp;quot;keep it simple, stupid.&amp;quot; This phrase, in its brilliance, would end up becoming a design principle for the United States Navy in the 1960s.&lt;/p&gt;
&lt;p&gt;Centuries before that, the over-talker Polonius in Shakespeare&#39;s Hamlet ironically exclaims that &amp;quot;brevity is the soul of wit&amp;quot;.&lt;/p&gt;
&lt;p&gt;This is not a new idea, and it is a good idea, isn&#39;t it? I thought about this phrase when I stumbled upon Rakhim Davletkaliyev&#39;s comic &lt;a href=&quot;https://rakhim.org/honestly-undefined/19/&quot;&gt;#19: Blogging vs. blog setups&lt;/a&gt;. It&#39;s a great illustration of how, very often, the more complicated something is--and also the more you discuss something--the less you are actually &lt;em&gt;doing the thing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I love writing, but does every blog post need to be 2,000 words? No, I don&#39;t think so.&lt;/p&gt;
&lt;p&gt;I can think of another quote that is even more relevant. Blaise Pascal, in his work Lettres provinciales (Letter XVI) from 1657  wrote &amp;quot;Je n&#39;ai fait celle-ci plus longue que parce que je n&#39;ai pas eu le loisir de la faire plus courte&amp;quot; which translates to &amp;quot;I have made this [letter] longer only because I did not have the time to make it shorter.&amp;quot;&lt;/p&gt;
&lt;p&gt;It is easy to find yourself in complexity and elaboration. It takes less effort to explain things if you have an unlimited amount of time and space. I&#39;m sure I don&#39;t need to tell you how LLM chatbots will almost always output far more paragraphs than needed.&lt;/p&gt;
&lt;p&gt;Do you remember minimalism--I can&#39;t help but &lt;a href=&quot;https://www.youtube.com/watch?v=gvgZfrIBT4s&quot;&gt;wonder what happened?&lt;/a&gt; Minimalism shifted from a popular lifestyle and design trend into something people seem to be actively moving away from. After peaking in the 2010s with the white walls, capsule wardrobes, and sparse rooms, the movement seemed to face major cultural and economic fatigue. By the early 2020s, designers themselves started publicly turning on it. Minimalist interiors were increasingly described as &lt;a href=&quot;https://www.aol.com/lifestyle/designers-officially-ditching-design-trend-120000509.html&quot;&gt;stiff and museum-like&lt;/a&gt;, and the COVID-19 pandemic pushed a lot of people to want their homes to feel personal and lived-in. There&#39;s a case to be made that maximalism isn&#39;t just a swing of the pendulum but &lt;a href=&quot;https://www.archdaily.com/982608/is-minimalism-dead&quot;&gt;a direct cultural backlash to minimalism&#39;s aesthetic and political baggage&lt;/a&gt;--the whole &amp;quot;less is more&amp;quot; doctrine has always had a certain chilliness to it, an implied judgment about what counts as an acceptable amount of stuff to own. There&#39;s also a generational note in all this, too, as people who grew up watching millennials curate their &lt;a href=&quot;https://medium.com/@grace.wang_8955/is-minimalism-dead-887064a6ea90&quot;&gt;white walls and gray furniture&lt;/a&gt; are now openly mocking that palette as depressing and corporate. And I think there&#39;s something real in the argument that the &amp;quot;less is more&amp;quot; mandate was less about restraint than &lt;a href=&quot;https://flourishmentary.com/more-is-more-why-minimalism-sucks/&quot;&gt;about a very specific and often expensive kind of taste&lt;/a&gt;. Garage sales would have done the trick for most people just as well as an expensive home overhaul.&lt;/p&gt;
&lt;p&gt;There was a lot wrong with the aesthetic-as-a-movement, certainly, but the core principles seem to be something to follow rather than to avoid. Has everyone given up attempting restraint and--exhausted with the effort required simply to live--regressed back to over-consumption and carelessness with their attention?&lt;/p&gt;
&lt;p&gt;If you take a look at &lt;a href=&quot;https://brennan.day/&quot;&gt;my website&lt;/a&gt; you can see I am not at all a minimalist in my design philosophy. If anything, I&#39;m a maximalist. I love to think of every possible thing I could add to my site that would make sense to, and then I add it.&lt;/p&gt;
&lt;p&gt;Similarly, I will write about any subject on this blog. The topics are so ridiculously wide-ranging that no single reader could possibly be interested in every single thing I post.&lt;/p&gt;
&lt;p&gt;But I do live a simple life that doesn&#39;t reflect my design philosophy, and I often think to myself how I can simplify further. What fat is there to trim--and what weight can be shed to lift the aircraft higher?&lt;/p&gt;
&lt;h2 id=&quot;the-problem-with-screens&quot; tabindex=&quot;-1&quot;&gt;The Problem with Screens&lt;/h2&gt;
&lt;p&gt;Many people--if not everyone--wants to cut back on unhealthy or unproductive screen time. There is an entire industry created for blocking apps and dumbphones and distraction-free devices.&lt;/p&gt;
&lt;p&gt;But one of the most important things you can do for yourself is use what you have, instead of just floundering back into consumption with a clever façade.&lt;/p&gt;
&lt;p&gt;There is a wonderful growing trend of &lt;a href=&quot;https://www.writerdeck.org/&quot;&gt;writer decks&lt;/a&gt;, which can be understood as devices dedicated to the act of writing and nothing else. I love seeing the DIY homebrew solutions out there, but most people who look into this seem to end up buying &lt;a href=&quot;https://getfreewrite.com/&quot;&gt;expensive dedicated devices&lt;/a&gt;, or install the (now unmaintained) &lt;a href=&quot;https://writerdeckos.com/&quot;&gt;WriteDeckOS&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-solution%3F-rip-out-the-desktop-environment!&quot; tabindex=&quot;-1&quot;&gt;The Solution? Rip out the desktop environment!&lt;/h2&gt;
&lt;p&gt;But I think the true solution here is both far more simple while also covering more than just writing. One of the easiest things you could do to both set up a writing machine and get closer towards digital minimalism is to remove your desktop environment entirely. Instead, you would be using a TTY/headless/command-line interface only.&lt;/p&gt;
&lt;p&gt;There are many GNU/Linux-based operating systems that ship with this, most of which are designed for use as a server but can work perfectly fine here. &lt;a href=&quot;https://www.debian.org/CD/netinst/&quot;&gt;Debian&#39;s netinst image&lt;/a&gt; is a good starting point: during setup you just skip the desktop environment screen entirely and select only &amp;quot;SSH server&amp;quot; and &amp;quot;standard system utilities,&amp;quot; and from then on you&#39;re dropped straight into a login prompt with no GUI ever installed in the first place, &lt;a href=&quot;https://blog.bogdancaraman.com/how-to-install-debian-13-trixie-minimal-server-cli-only-step-by-step/&quot;&gt;here&#39;s a walkthrough of the whole process&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ubuntu Server does the same thing, though its installer assumes a fair bit more disk space and RAM than Debian&#39;s does. And &lt;a href=&quot;https://tech-insider.org/arch-linux-vs-ubuntu-2026/&quot;&gt;Arch Linux installs almost nothing by default&lt;/a&gt;, there&#39;s no &amp;quot;opt out of the desktop&amp;quot; step because there was never a desktop to begin with, you just add whatever you need afterward.&lt;/p&gt;
&lt;p&gt;To really strip down to the studs, &lt;a href=&quot;https://www.bitnesia.com/en/alpine-linux-minimalist-os-installation&quot;&gt;Alpine Linux&lt;/a&gt; is what you&#39;re looking for. A full disk install comes in around 130MB, against 500MB-plus for a minimal Ubuntu Server install, as it swaps out the usual GNU toolchain for musl libc and BusyBox.&lt;/p&gt;
&lt;p&gt;The point is that, if you&#39;re using the terminal, then you still have access to many things, but lack access to what most people would typically find fun or distracting.&lt;/p&gt;
&lt;h3 id=&quot;terminal-applications&quot; tabindex=&quot;-1&quot;&gt;Terminal Applications&lt;/h3&gt;
&lt;p&gt;There&#39;s a lot you can do just through the terminal. To start, &lt;a href=&quot;https://github.com/ranger/ranger&quot;&gt;ranger&lt;/a&gt; handles file management with vim-style navigation and a three-pane view that previews whatever you&#39;ve got selected.&lt;/p&gt;
&lt;p&gt;For browsing the actual web, &lt;a href=&quot;https://lynx.invisible-island.net/&quot;&gt;Lynx&lt;/a&gt; is the oldest web browser still being maintained, going back to 1992, and &lt;a href=&quot;https://w3m.sourceforge.net/&quot;&gt;w3m&lt;/a&gt; is the newer and capable of showing inline images in terminals that support it. And &lt;a href=&quot;https://bombadillo.colorfield.space/&quot;&gt;Bombadillo&lt;/a&gt; is a combined Gopher, Gemini, and Finger client with vim-inspired keybindings.&lt;/p&gt;
&lt;p&gt;For reading markdown properly, &lt;a href=&quot;https://github.com/charmbracelet/glow&quot;&gt;glow&lt;/a&gt; or &lt;a href=&quot;https://github.com/swsnr/mdcat&quot;&gt;mdcat&lt;/a&gt; will render with syntax highlighting. &lt;a href=&quot;https://www.visidata.org/&quot;&gt;VisiData&lt;/a&gt; is for spreadsheets in the terminal, opening CSVs, TSVs, JSON, and even Excel files. &lt;a href=&quot;https://github.com/wustho/epy&quot;&gt;epy&lt;/a&gt; reads EPUBs, FB2s, and MOBIs.&lt;/p&gt;
&lt;p&gt;Email can be accessed with &lt;a href=&quot;https://alpineapp.email/&quot;&gt;Alpine&lt;/a&gt;--the University of Washington&#39;s actively-maintained successor to Pine (not to be confused with the distro) or &lt;a href=&quot;https://neomutt.org/&quot;&gt;NeoMutt&lt;/a&gt; if you want something more configurable and scriptable.&lt;/p&gt;
&lt;p&gt;For IRC, &lt;a href=&quot;https://weechat.org/&quot;&gt;WeeChat&lt;/a&gt; is the scriptable, feature-heavy option and &lt;a href=&quot;https://irssi.org/&quot;&gt;Irssi&lt;/a&gt; is the lightweight classic. &lt;a href=&quot;https://git.causal.agency/catgirl&quot;&gt;Catgirl&lt;/a&gt; is a newer option with plenty of extensibility.&lt;/p&gt;
&lt;p&gt;For music, &lt;a href=&quot;https://cmus.github.io/&quot;&gt;cmus&lt;/a&gt; is a small standalone console player, or you can run &lt;a href=&quot;https://www.musicpd.org/&quot;&gt;MPD&lt;/a&gt; as a background daemon with &lt;a href=&quot;https://ncmpcpp.com/&quot;&gt;ncmpcpp&lt;/a&gt; as the ncurses frontend, which allows music to keep playing after you close the client.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://newsboat.org/&quot;&gt;Newsboat&lt;/a&gt; is a great RSS reader. And for the weather, you don&#39;t even need to install anything, just run &lt;code&gt;curl wttr.in&lt;/code&gt; and it prints a little ASCII forecast straight into your terminal.&lt;/p&gt;
&lt;p&gt;And then you can use &lt;a href=&quot;https://github.com/tmux/tmux/wiki/Getting-Started&quot;&gt;tmux&lt;/a&gt; to have multiple panes and persistent sessions you can detach from and reattach to later. A shell like &lt;a href=&quot;https://fishshell.com/&quot;&gt;fish&lt;/a&gt; gives you sane syntax highlighting and autosuggestions without any configuration, and &lt;a href=&quot;https://starship.rs/&quot;&gt;Starship&lt;/a&gt; is a prompt that can show you git status, language versions, and battery life.&lt;/p&gt;
&lt;p&gt;If you&#39;re someone that&#39;s never used the terminal before, then that&#39;s quite the learning curve and I&#39;d recommend starting with a desktop environment and using these programs through a terminal emulator (like kitty, etc.) that way.&lt;/p&gt;
&lt;p&gt;And even if you are someone that&#39;s used the terminal before, going terminal-only could be quite the challenge, I know it&#39;s going to be for me, but that&#39;s kind of the fun part. Not to mention that this set up makes the &lt;a href=&quot;https://tildeverse.org/&quot;&gt;Tildeverse&lt;/a&gt; a first-class citizen, and would also greatly encourage my usage of the platforms I&#39;m already on there.&lt;/p&gt;
&lt;h2 id=&quot;the-actual-writing-part&quot; tabindex=&quot;-1&quot;&gt;The Actual Writing Part&lt;/h2&gt;
&lt;p&gt;Yes, this is in fact yet another elaborate blogging workflow post. Tricked you! Jokes aside, all of the quality-of-life and functionality you can get out of a terminal-only computer is still secondary to the writing itself, if that&#39;s what you intend to use this for.&lt;/p&gt;
&lt;p&gt;Now, for me personally, I don&#39;t really struggle with distractions when writing blog posts like this. I do my first draft on &lt;a href=&quot;https://750words.com/person/brennan&quot;&gt;750words.com&lt;/a&gt; and then finish my editing in &lt;a href=&quot;https://www.sublimetext.com/&quot;&gt;Sublime Text&lt;/a&gt;, using the terminal to push to &lt;a href=&quot;https://gitlab.com/brennankbrown/brennan.day&quot;&gt;GitLab&lt;/a&gt; which then automatically publishes to &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But I do want to start working on more longform work, a novel or memoir or something that can&#39;t be done in a single day, or week. Perhaps that would scratch &lt;a href=&quot;http://plaintext.brennan.day/the-itch/&quot;&gt;the itch?&lt;/a&gt;. And I&#39;ve always struggled with that kind of thing far more, so I think figuring out a way to have a far more limited device is the right answer.&lt;/p&gt;
&lt;p&gt;There are plenty of tutorials out there that would explain how to use Vim or Emacs for this kind of set up, but sadly I am not a user of either. Instead, my set up uses the simple text editor &lt;a href=&quot;https://micro-editor.github.io/&quot;&gt;Micro&lt;/a&gt; and the full-fledged terminal word processor &lt;a href=&quot;https://cowlark.com/wordgrinder/index.html&quot;&gt;WordGrinder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://micro-editor.github.io/&quot;&gt;Micro&lt;/a&gt; is what I use for everything that isn&#39;t longform prose. Config files, scripts, notes. It&#39;s kind of a spiritual successor to Nano, using the keybindings that you already know, &lt;code&gt;Ctrl+S&lt;/code&gt; to save, &lt;code&gt;Ctrl+C&lt;/code&gt; and &lt;code&gt;Ctrl+V&lt;/code&gt; to copy and paste, rather than a modal system. It has mouse support, syntax highlighting for over a hundred languages, and a Lua plugin system.&lt;/p&gt;
&lt;p&gt;For the prose, though, I use &lt;a href=&quot;http://cowlark.com/wordgrinder/index.html&quot;&gt;WordGrinder&lt;/a&gt;, which its own author describes as being &lt;a href=&quot;https://www.mankier.com/package/wordgrinder&quot;&gt;designed to get the hell out of your way and let you write&lt;/a&gt;. It isn&#39;t a text editor and it also isn&#39;t trying to be Word. There&#39;s no WYSIWYG, no font selection, barely any styling at all. Rather, it&#39;s a character-cell word processor that handles words: paragraph styles, a running word count, HTML and Markdown import and export, and a menu you can pull up with &lt;code&gt;Esc&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;document-management&quot; tabindex=&quot;-1&quot;&gt;Document Management&lt;/h3&gt;
&lt;p&gt;Now, how do you get your files off the machine? Well, there are two easy ways: &lt;code&gt;git&lt;/code&gt; or &lt;code&gt;rsync&lt;/code&gt;. If you&#39;re syncing with git, a cron entry that commits and pushes on a schedule looks something like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;*/30 * * * * cd /path/to/manuscript &amp;amp;&amp;amp; git add -A &amp;amp;&amp;amp; git commit -m &amp;quot;autosave $(date)&amp;quot; &amp;amp;&amp;amp; git push
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;drop that in with &lt;code&gt;crontab -e&lt;/code&gt; and every 30 minutes, whatever you&#39;ve written gets committed and pushed. If you&#39;d rather not clutter your git history with a commit every half hour, rsync does the same job without version control:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;*/30 * * * * rsync -avz /path/to/manuscript/ user@remote:/path/to/backup/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Either way, the whole point is that you stop thinking about it. People have been doing this &lt;a href=&quot;https://adrianmejia.com/git-auto-commit-with-crontab/&quot;&gt;for decades, for backups of everything&lt;/a&gt;, from Drupal sites to novels-in-progress, and once it&#39;s running, the only thing left for you to do is actually write.&lt;/p&gt;
&lt;p&gt;This ties in well to my previous post about using &lt;a href=&quot;http://plaintext.brennan.day/creating-a-digital-garden-in-11ty-tracking-my-daily-word-count-with-urlminder/&quot;&gt;11ty and URLminder to keep yourself accountable with your word counts&lt;/a&gt;. Now, URLminder does require a public URL to track which rules out anything private, but I&#39;ve come up with a rather simple solution for this. The workaround is obscurity. Deploy the rendered .txt manuscript to Netlify under a subdomain that&#39;s a long random string rather than a chosen name, eg. x7q2m9vb4k1p.netlify.app.&lt;/p&gt;
&lt;p&gt;If you don&#39;t use a custom domain, and also don&#39;t link it anywhere, then the only two places that URL string exists are the Beeminder goal configuration and the Netlify dashboard. Your manuscript stays functionally private while still satisfying the Odometer-type goal that needs to read a publicly fetchable page.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So which is it--brevity or elaboration? It doesn&#39;t mean they have to be in opposition. I often find myself writing about things like Polonius and a Navy acronym and then somehow end up with a shopping list of console programs for reading your email. The KISS principle and Pascal&#39;s apology for a long letter are both about cutting what exists because you didn&#39;t take the time to be concise. A 2,000 word blog post is bloated if the idea inside it could have fit in 200. But sometimes an idea does need 2,000 words.&lt;/p&gt;
&lt;p&gt;Novels, thick books, and the afternoons spent reading them are slow &lt;em&gt;and&lt;/em&gt; enjoyable. Good, longform work is meant to be inhabited, not skimmed for the takeaway. We are actually in dire need of longform writing, read and written with intention. The problem is writing and building (or living) past the point where you were saying anything, just because it was easier than stopping. Trim what doesn&#39;t need to be there. Keep what does, no matter how long that turns out to be.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>A Social Guide to Being Vegan in a Meat Eaters&#39; World</title>
		<link href="http://plaintext.brennan.day/a-social-guide-to-being-vegan-in-a-meat-eaters-world/"/>
		<updated>2026-08-08T06:00:00Z</updated>
		<id>http://plaintext.brennan.day/a-social-guide-to-being-vegan-in-a-meat-eaters-world/</id>
		<content type="html">&lt;p&gt;I wrote a guest post for &lt;a href=&quot;https://calgaryvegansociety.com/the-sprout/&quot;&gt;The Sprout&lt;/a&gt;, the blog of the &lt;a href=&quot;https://calgaryvegansociety.com/&quot;&gt;Calgary Vegan Society&lt;/a&gt;, about navigating social eating situations as a vegan. The post covers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Private vs. social eating challenges&lt;/li&gt;
&lt;li&gt;The social importance of shared meals&lt;/li&gt;
&lt;li&gt;Being firm and confident in your dietary choices&lt;/li&gt;
&lt;li&gt;Practical strategies for restaurants, family dinners, office potlucks, and travel&lt;/li&gt;
&lt;li&gt;How to maintain your values while staying connected to community&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can read the full post on &lt;a href=&quot;https://calgaryvegansociety.com/2026/08/07/a-social-guide-to-being-vegan-in-a-meat-eaters-world/&quot;&gt;The Sprout&lt;/a&gt;.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Free Speech and the IndieWeb</title>
		<link href="http://plaintext.brennan.day/free-speech-and-the-indieweb/"/>
		<updated>2026-08-08T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/free-speech-and-the-indieweb/</id>
		<content type="html">&lt;p&gt;A couple days ago, I wrote the blog post titled &lt;a href=&quot;http://plaintext.brennan.day/five-interesting-indie-platforms-you-might-not-have-heard-of/&quot;&gt;&amp;quot;Five Interesting Indie Platforms You Might Not Have Heard Of&amp;quot;&lt;/a&gt;. I was really happy with it--being able to share the work of others that deserve support and can help foster digital indie communities.&lt;/p&gt;
&lt;p&gt;But, regrettably, I had to rescind one of my recommendations. Let me explain.&lt;/p&gt;
&lt;p&gt;As I mentioned in the post itself, BlueDwarf&#39;s &amp;quot;rule enforcement is informal, and I admit I&#39;ve stumbled upon some... peculiar opinions and takes during my time on the platform, so take that as you will.&amp;quot; This was a nice way of saying you can find fringe, conspiratorial or right-wing beliefs and rhetoric on the site.&lt;/p&gt;
&lt;p&gt;At first, I really didn&#39;t like the idea of disavowing a small indie platform simply because it allows bad takes or opinions I personally strongly disagree with. I believe the price for community and connection we pay is inconvenience, annoyance, and weirdos.&lt;/p&gt;
&lt;p&gt;There are such a small amount of people who give a fuck about the small web and independent infrastructure--let alone those who are actually building and maintaining it--that surely it would be far less productive to splinter ourselves. The creator of BlueDwarf in particular runs the &lt;a href=&quot;https://cheapskatesguide.org/&quot;&gt;Cheapskate&#39;s Guide&lt;/a&gt;, which is an excellent resource for low-end, affordable, accessible hardware and software and how I found BlueDwarf in the first place.&lt;/p&gt;
&lt;p&gt;I am always going to have a big-tent mindset, and know that the only way we can enact meaningful sustainable change is by working with people we don&#39;t like and disagree with.&lt;/p&gt;
&lt;p&gt;And that&#39;s where I stood, and where I assumed things would be set. But then I messaged &lt;a href=&quot;https://bluedwarf.top/cackle/view_profile.php?user_name=SpaceGhost&quot;&gt;SpaceGhost&lt;/a&gt;, the sysadmin and owner of BlueDwarf, to see where exactly he draws the line in the sand. And at first, I was hopeful we had a mutual understanding of what&#39;s important and worth fighting for, and what isn&#39;t. Of what harm is worth tolerating, and what harm isn&#39;t.&lt;/p&gt;
&lt;p&gt;But that, sadly, ended up not being the case.&lt;/p&gt;
&lt;p&gt;But before I get into BlueDwarf, I want to assert something important--not all harm is the same. I still don&#39;t believe that, as-is, BlueDwarf is a harmful or dangerous website. Rather, the owner&#39;s beliefs and how he told me his personal view and how he would act in &lt;strong&gt;specific, hypothetical&lt;/strong&gt; situations is why I can&#39;t recommend it.&lt;/p&gt;
&lt;h2 id=&quot;degrees-of-harm&quot; tabindex=&quot;-1&quot;&gt;Degrees of Harm&lt;/h2&gt;
&lt;p&gt;I want to make note that I think it&#39;s unproductive to put everything into a single bucket of &amp;quot;harmful,&amp;quot; as there is a wide range of degrees of how harmful a community&#39;s approach to free speech is.&lt;/p&gt;
&lt;p&gt;X has Creator Revenue Sharing, which means paying users earn a cut of ad revenue based on impressions from other paying users. This means that people often post rage-inducing, upsetting content specifically because that&#39;s what will attract the most response and engagement--and thus make them the most amount of money. &lt;a href=&quot;https://www.bbc.com/news/articles/c4gp555xy5ro&quot;&gt;Ragebaiting is a profitable business model&lt;/a&gt;. The same thing applies to any other corporate social media platform, whatever content causes people to stay on the longest is the best, regardless of how exploitative or harmful it is. &lt;a href=&quot;https://www.rnz.co.nz/life/screens/rage-baiting-how-content-creators-are-profiting-off-your-anger&quot;&gt;TikTok&lt;/a&gt; similarly has a trend of creators doing the same thing for the same reason.&lt;/p&gt;
&lt;p&gt;This is just one of many reasons to leave corporate social media, but at this point most people know what they&#39;re going to get--it&#39;s awful to normalize such terrible behaviour and practices, but until enough people leave these platforms or better safeguards are put into place, it&#39;s just how it is right now. With platforms as large as this, no amount of guardrails will stop harm. &lt;a href=&quot;https://www.cnn.com/2024/12/22/business/facebook-content-moderators-kenya-ptsd-intl&quot;&gt;Meta&lt;/a&gt; is inflicting lifelong trauma on its content moderators in Kenya as a consequence.&lt;/p&gt;
&lt;p&gt;Arguments can be made about the harm being done by smaller platforms, like Bluesky, which &lt;a href=&quot;https://techcrunch.com/2026/03/19/bluesky-announces-100m-series-b-after-ceo-transition/&quot;&gt;took crypto VC money&lt;/a&gt; and has known &lt;a href=&quot;https://fortune.com/2023/07/31/inside-bluesky-moderation-crisis-investor-pushback-user-backlash-ceo-apology/&quot;&gt;moderation problems&lt;/a&gt;, but I personally think these issues are of a lesser degree of harm than what&#39;s happening on Facebook or X and staying there as an active user.&lt;/p&gt;
&lt;h2 id=&quot;cloudflare&quot; tabindex=&quot;-1&quot;&gt;Cloudflare&lt;/h2&gt;
&lt;p&gt;Cloudflare is run by a free speech absolutist Matthew Prince, who often thinks that Cloudflare should not control who gets to be online and who doesn&#39;t. They hosted the Neo-Nazi site Daily Stormer, as well as 8chan and KiwiFarms until the Christchurch Shooting and #dropkiwifarms campaign. And every time it was at the whim of the CEO who decided those sites in particular were too harmful for him to abide by his absolutism. I&#39;ve written &lt;a href=&quot;http://plaintext.brennan.day/choosing-friction-and-clear-skies-i-m-no-longer-using-cloudflare/&quot;&gt;more about why I&#39;m choosing not to use Cloudflare here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;substack&quot; tabindex=&quot;-1&quot;&gt;Substack&lt;/h2&gt;
&lt;p&gt;But if we&#39;re looking at most harm per capita, as in, the most amount of harm a platform is doing relative to its size, I think Substack is easily the worst offender. I&#39;ve written about &lt;a href=&quot;http://plaintext.brennan.day/substacks-subpar-subculture/&quot;&gt;the platform before&lt;/a&gt; but I don&#39;t think I went far enough. It&#39;s been known since 2023 that the platform &lt;a href=&quot;https://www.theatlantic.com/ideas/archive/2023/11/substack-extremism-nazi-white-supremacy-newsletters/676156/&quot;&gt;has a literal Nazi problem&lt;/a&gt;. I do not mean &amp;quot;Nazi&amp;quot; as in generic hateful bigoted rhetoric--I mean &lt;a href=&quot;https://www.theguardian.com/media/2026/feb/07/revealed-how-substack-makes-money-from-hosting-nazi-newsletters&quot;&gt;newsletters that had swastikas all over them&lt;/a&gt;. CEO Chris Best declined to answer specific &amp;quot;would you or won&#39;t you&amp;quot; removal scenarios, stating that the company avoids getting drawn into hypothetical moderation judgments, even though this isn&#39;t hypothetical at all.&lt;/p&gt;
&lt;p&gt;Even now, years later, Substack is more than permissive about having harmful people on their platform, so long as its profitable. &lt;a href=&quot;https://thred.com/culture/why-is-andrew-tate-1-on-substack/&quot;&gt;Andrew Tate, charged with sex trafficking and rape, had his newsletter ranked #1 on Substack&lt;/a&gt; and as of writing, the platform also allows the owner of Kiwi Farms to have his newsletter on the platform as well.&lt;/p&gt;
&lt;p&gt;I want to make the argument for Substack&#39;s harm for a number of reasons. To start, it is typically extremely difficult to make an income online with hate speech, and Substack is giving these people a paycheque.&lt;/p&gt;
&lt;p&gt;Second, Substack is culturally known as being a place where people write longform thinkpieces. They brand themselves as the place where you can &lt;a href=&quot;https://substack.com/about&quot;&gt;&amp;quot;publish world-class reporting, essays, reviews, and fiction&amp;quot;&lt;/a&gt;. This is not at all the same kind of reputation Facebook or X has. Even now, after years of complacency with Nazism, reputable progressives still use the platform--and thus continue to put money in Substack&#39;s pockets.&lt;/p&gt;
&lt;p&gt;If you&#39;re on Substack yourself and want alternatives, or know someone else who is, https://leavesubstack.com is a great list of alternatives and other resources to help make that happen.&lt;/p&gt;
&lt;h2 id=&quot;lines-in-sand&quot; tabindex=&quot;-1&quot;&gt;Lines in Sand&lt;/h2&gt;
&lt;p&gt;I didn&#39;t mean to write so much about Substack or Cloudflare, but it is emblematic of how people look the other way about harms being done by platforms they&#39;re on because they&#39;re on them, or their favourite creator is on it.&lt;/p&gt;
&lt;p&gt;Everyone draws the line in the sand at different places--and some people get really upset at others for where they decide to draw that line. If you aren&#39;t aware that Substack has been complacent with Nazis, then it would be unfair to chastise you for continuing to use the platform. If you are aware and continue to use it, though, then that&#39;s supporting the platform--or at least being complicit yourself.&lt;/p&gt;
&lt;p&gt;I&#39;m someone who tries my best to maintain my ire at systems and companies and those in power, rather than towards individuals. Ridiculing and finger-pointing at specific people will not negate any harm, it just is a way for you to personally feel morally superior and unproductively channel your (justified) negative feelings.&lt;/p&gt;
&lt;h2 id=&quot;cognitive-dissonance&quot; tabindex=&quot;-1&quot;&gt;Cognitive Dissonance&lt;/h2&gt;
&lt;p&gt;I love people, and have made peace with cognitive dissonance. Let me give you an example. &lt;a href=&quot;http://plaintext.brennan.day/an-open-letter-to-compassionate-left-leaning-ai-hating-animal-loving-meat-eaters/&quot;&gt;I find meat eating and the continued slaughter and suffering of animals&lt;/a&gt; far more reprehensible than something like generative AI--as meat-eating causes far more harm and far, far more environmental harm.&lt;/p&gt;
&lt;p&gt;It&#39;s far easier for people to avoid (and ridicule) genAI than it is to avoid eating meat. Again, this is not about moral superiority or whataboutisms, it&#39;s the opposite really. People do not change their minds or behaviours after being aggressively scolded.&lt;/p&gt;
&lt;p&gt;You meet people where they are, you offer them compassion and benevolence and alternatives. You channel your fury towards those in charge and those who are propagating the normalization of harms. But this, too, does not mean complicity yourself. It&#39;s okay to walk away from people and relationships. &lt;a href=&quot;https://brennan.day/values/#success&quot;&gt;Be content with losing everything except your principles.&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;bluedwarf-in-comparison&quot; tabindex=&quot;-1&quot;&gt;BlueDwarf in Comparison&lt;/h2&gt;
&lt;p&gt;Let&#39;s steer this back towards BlueDwarf, which I&#39;d like to now look at relative to other platforms.&lt;/p&gt;
&lt;p&gt;BlueDwarf is a tiny site with &amp;gt;200 active users in the past year, most of which post about old hardware and homelabbing, and occasionally about surveillance capitalism, or US politics, or indeed vaccine skepticism. It is not a CDN that 25% of the entire Internet relies on, like Cloudflare is. Nor is it actively providing a revenue source for Neo-Nazis, like Substack is.&lt;/p&gt;
&lt;p&gt;I think an argument can be made that, because of its size, me sharing the platform with my own audience could allow a new influx of more level-headed, scientifically-literate progressives who change the subculture to something less harmful.&lt;/p&gt;
&lt;p&gt;Anyway, let me finally get to my correspondence with SpaceGhost, with all of that pretext out of the way. I asked point blank if the firm stance on absolute free speech would continue if there were a sudden influx of Nazis on the site, making it a &lt;a href=&quot;https://en.wiktionary.org/wiki/Nazi_bar&quot;&gt;Nazi bar&lt;/a&gt;. This is how they responded:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have not been tested by Nazis and only been tested by a handful of racists. My suspicion is the reason for the lack of posts by Nazis. etc. is that a social media site that does not allow name calling or threats is inherently uninteresting to them. A bit of evidence that seems to back that up is that Blue Dwarf has been online for over 4 years, and so far has not been over run.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And I do certainly think there is a point to be made that a platform being up-and-running for four years without this problem does demonstrate that we can put our faith in people. SpaceGhost continued, sharing an anecdote from a particular user who was rather intense about their religion when they first joined:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[M]ost of us seem to enjoy her presence and her posts and do our best to encourage her contributions and find good in them. I say that as a person who is done with organized religion and in no way contemplating becoming a Muslim. :) Maybe I am being naive, but I would like to believe that in time the same could happen with anyone. I have noticed that the most initially troubling Blue Dwarf users seem to settle down and just enjoy Blue Dwarf with the rest of us. Often they become our most prolific and enthusiastic contributors.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As SpaceGhost later clarified, the user in question didn&#39;t stop posting about the Quran--she continues to do so just as much as initially. What changed was the community&#39;s attitude toward her. Through conversation and getting to know each other, the community learned she was a decent person, and she learned the same about them. The hostility and accusations stopped, and she no longer felt the need to defend herself. This wasn&#39;t simply because a member of a minority group was allowed to speak, but because Blue Dwarf is a free speech platform where everyone can post on any topic regardless of their group&#39;s power status. Learning about and getting to know others we&#39;re initially distrustful of is, in SpaceGhost&#39;s view, a &amp;quot;beautiful outcome of true free speech for everyone.&amp;quot;&lt;/p&gt;
&lt;p&gt;I am idealistic and optimistic enough to accept that. This is a very small platform that has successfully ensured a lack of hate speech over the years not by infringing on free speech, but rather by the cultural norms and communal effort.&lt;/p&gt;
&lt;p&gt;But it did not stop there. I specifically asked what SpaceGhost would do &amp;quot;if someone came onto BD who was respectful and followed the rules and also consistently posted articles that were pro Neo-Nazi, anti-Black, anti-Semitic, anti-immigrant, and they got a bunch of their equally respectful friends to join as well, would that be realizing the ideal of BD for you?&amp;quot; SpaceGhost replied:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[A]lthough I find racists and Nazis distasteful, anyone who follows the rules is allowed to post on any topic they wish. I would like to think that my personal integrity would prevent me from removing even posts from people I find the most reprehensible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And continued further, by adding:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am very aware of Cloudlfare[sic] choosing to break its own rules to stop providing DDoS protection for The Daily Stormer, 8Chan, and Kiwi Farms. My feeling is that was a bad decision by Mr. Prince ...  I am also aware of 8Chan&#39;s and Kiwi Farm&#39;s lawsuit with the British government, and I hope they win.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is where I draw the line. This is where SpaceGhost prioritizes free speech over preventing the harm and hatred websites like these have metastasized, festered, and sprawled across the Internet for years.&lt;/p&gt;
&lt;p&gt;I believe there are many things to stay firm on, regardless of the cost, but this is not one of them. I do not believe SpaceGhost is acting in bad faith here, I do believe they sincerely think they&#39;re providing a net positive to the world and that free speech absolutism is indeed worth the consequence of harm that results from it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One thing I have learned about people is that there are some bad ones, and nothing I can do or say will change that. Just because I recognize that even they have rights does not mean I support what they say or do. I support their rights because I want other people who disagree with me to support my rights--not that I necessarily believe that they will, but I do my best not to be hypocritical. And, we have laws to protect innocent people from the actions of others.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a place where I believe it&#39;s okay to be hypocritical, because oh my God, we are hypocritical so often. It is truly unavoidable.&lt;/p&gt;
&lt;p&gt;Marginalized people need people to stand up for them, not for the people willing to debase and insult them. I cannot be complicit with cruelty or hatred simply because someone has a right to express cruelty and hatred.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;A lot has changed over the past decade, and corporate social media now blatantly allows awful, harmful takes in a way that you could only get away with on truth.social or Gab or whatever the fuck years ago. You do not need a tiny, independent platform to say whatever you want, now. A vaccine skeptic is the U.S. Secretary of Health and Human Services. You are no longer anti-authority when the authority agrees with you. You are no longer the little guy fighting in counterculture against the big man in power. You&#39;re all on the same team, now.&lt;/p&gt;
&lt;p&gt;On January 7th, 2025, Mark Zuckerberg posted a five-minute video called &amp;quot;More Speech and Fewer Mistakes.&amp;quot; In it, Meta ended its third-party fact-checking program in the US, replacing it with X-style Community Notes, and framed the whole shift as a return to free expression after what Zuckerberg called a &amp;quot;cultural tipping point&amp;quot; brought on by the &lt;a href=&quot;https://www.aljazeera.com/news/2025/1/10/meta-facebook-to-drop-fact-checkers-what-does-this-mean-for-social-media&quot;&gt;2024 election&lt;/a&gt;. In the same breath, Meta rewrote its Hateful Conduct policy to expressly permit describing LGBTQ+ people as &amp;quot;mentally ill&amp;quot; or &amp;quot;abnormal&amp;quot; and calling for their exclusion from professions and public life, loosened its rules around immigration status, and &lt;a href=&quot;https://www.hrc.org/news/metas-new-policies-how-they-endanger-lgbtq-communities-and-our-tips-for-staying-safe-online&quot;&gt;swapped proactive enforcement for waiting on user reports&lt;/a&gt;. Days later, the company &lt;a href=&quot;https://www.democracynow.org/2025/1/9/meta_fact_checking_changes_trump_2025&quot;&gt;donated a million dollars to the incoming president&#39;s inauguration, added a Trump ally to its board, and handed its global policy shop to a Republican former Bush staffer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Center for Countering Digital Hate spent six months on either side of the change combing through eight million Facebook comments aimed at elected officials, and found &lt;a href=&quot;https://counterhate.com/research/safety-off/&quot;&gt;abusive comments tripled, from 24,000 to 78,000, with violent threats and hate quadrupling and harassment doubling&lt;/a&gt;. The ADL tracked the Facebook pages of Jewish members of Congress and found &lt;a href=&quot;https://www.adl.org/resources/article/metas-hate-policy-rollback-linked-increased-antisemitism&quot;&gt;toxic comments jumped more than thirteenfold after February 4, 2025&lt;/a&gt;. GLAAD, UltraViolet, and All Out surveyed &lt;a href=&quot;https://glaad.org/make-meta-safe-new-report-finds-increase-in-harmful-content-targeting-marginalized-groups-following-policy-rollbacks/&quot;&gt;over 7,000 people across 86 countries and found 92 percent worried about the rise in harmful content, and 77 percent now feeling less safe simply existing openly on Meta&#39;s platforms&lt;/a&gt;. Even Meta&#39;s own first integrity report after the change admitted that &lt;a href=&quot;https://www.engadget.com/social-media/facebook-sees-rise-in-violent-content-and-harassment-after-policy-changes-182651544.html&quot;&gt;violent and graphic content, plus bullying and harassment, both ticked upward&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That&#39;s what &amp;quot;more speech&amp;quot; bought. A starker ratio of who gets to speak without fear, and who barely gets to speak at all.  Not more voices in the room.&lt;/p&gt;
&lt;p&gt;Walking back through BlueDwarf and Substack and Cloudflare and X and Meta, the question needing to be asked is &lt;strong&gt;&amp;quot;are you protecting someone&#39;s right to speak &lt;em&gt;against&lt;/em&gt; power, or are you protecting someone&#39;s right to hurt the powerless without consequence, and calling it the same thing?&amp;quot;&lt;/strong&gt; Free speech absolutism is not for people with the least of it, but for the platforms and personalities who already have more than enough. Free speech is in abundance for hateful people, now. Free speech is not in abundance for journalists, for people in Iran or Palestine, or those getting actively suppressed by their government, not hate.&lt;/p&gt;
&lt;p&gt;As it currently exists, I don&#39;t think BlueDwarf should be taken down, but I can&#39;t in good conscience recommend it to people. I&#39;ll change my mind about recommending BD if SpaceGhost ever decides that &amp;quot;I won&#39;t stop them&amp;quot; and &amp;quot;I will protect the people they&#39;re aimed at&amp;quot; don&#39;t actually have to be in opposition. Until then, I&#39;ll keep pointing people toward the platforms and services that build their walls to keep the vulnerable safe &lt;em&gt;inside&lt;/em&gt;, not to keep accountability &lt;em&gt;out&lt;/em&gt;.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>What Remains? My AuguStory</title>
		<link href="http://plaintext.brennan.day/what-remains-my-augustory/"/>
		<updated>2026-08-07T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/what-remains-my-augustory/</id>
		<content type="html">&lt;p&gt;I discovered today that my blog post from yesterday didn&#39;t post automatically to my Mastodon account--which I assumed was due to an error made. But instead, I found out that &lt;a href=&quot;https://rknight.me/&quot;&gt;Robb Knight&#39;s&lt;/a&gt; &lt;a href=&quot;https://rknight.me/blog/shutting-down-echofeed/&quot;&gt;EchoFeed is shutting down&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The reasons he lists for discontinuing the service make a lot of sense, but it still makes me sad. Not because of the service I&#39;m losing, but because EchoFeed was one of the first IndieWeb projects I came across after joining omg.lol, and it has always worked effortlessly for me. There are many services that claim to have functionality to crosspost to Mastodon, but they only actually &lt;a href=&quot;https://ifttt.com/mastodon_social&quot;&gt;integrate with mastodon.social specifically&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am thankful Robb maintained this project for as long as he did, and he&#39;s been a great presence on the IndieWeb overall, and will continue to be.&lt;/p&gt;
&lt;p&gt;This also was yet another reminder of the ephemeral nature of things--how much I take for granted even as I try to be so aware of how finite and fragile everything is.&lt;/p&gt;
&lt;h2 id=&quot;why-do-i-blog%3F&quot; tabindex=&quot;-1&quot;&gt;Why Do I Blog?&lt;/h2&gt;
&lt;p&gt;This finite fragility is a primary motivator for why I blog. Michael Hartley has written recently about &lt;a href=&quot;https://michaelharley.net/posts/2026/08/05/how-i-make-my-blog-posts-more-resilient/&quot;&gt;how he&#39;s making his blog more resilient&lt;/a&gt; and musing about &lt;a href=&quot;https://michaelharley.net/posts/2026/08/06/what-happens-to-our-blogs-when-we-die/&quot;&gt;what happens to our blogs after we die&lt;/a&gt;. These too are not new topics for me, as I have posed the question of &lt;a href=&quot;http://plaintext.brennan.day/how-are-we-preparing-for-the-long-web/&quot;&gt;how do we prepare for the long web&lt;/a&gt;, and have had a &lt;a href=&quot;https://brennan.day/death&quot;&gt;/death&lt;/a&gt; page on my blog since I began it.&lt;/p&gt;
&lt;p&gt;I want to leave a mark--maybe the way our ancestors did when they pressed their hands on cave walls with ochre and their blood. And I also want to do good with this absurd one-in-a-trillion existence I&#39;ve been gifted. &lt;em&gt;How strange it is to be anything at all.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I feel as though I&#39;ve already written a lot about the origins of this blog already, and about how I&#39;ve been interested in blogging for twenty years ever since Mr. Rehak, my fifth and sixth grade teacher, first introduced our class to Blogspot. How he&#39;d try to engage our young, meagre class in political and philosophical discussions.&lt;/p&gt;
&lt;p&gt;Despite this though, I can&#39;t help myself but to write another post to participate on Robert Birming&#39;s &lt;a href=&quot;https://robertbirming.com/augustory-story-blog/&quot;&gt;AuguStory&lt;/a&gt;, where he asks bloggers to answer the questions &amp;quot;how you got into it, where it&#39;s taken you, why you&#39;re still at it.&amp;quot;&lt;/p&gt;
&lt;p&gt;I don&#39;t think there&#39;s an academic field called &amp;quot;blogging studies&amp;quot; but there are quite a few interesting papers and scholarly articles examining the hobby. It&#39;s been used as an &lt;a href=&quot;https://link.springer.com/article/10.1007/s41347-021-00210-w&quot;&gt;intervention for adolescents and young adults with depression or anxiety&lt;/a&gt;, and that it leads to better mental health outcomes by &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC10138563/#B10-ijerph-20-05493&quot;&gt;giving people an avenue for social support and improving memory by writing things down&lt;/a&gt;. Now, of course these studies should be taken with a grain of salt, and are also often paywalled (oh, how I miss my academic credentials to log in) but I think many consistent bloggers would tell you, anecdotally, that it does provide them a net positive.&lt;/p&gt;
&lt;p&gt;I think Mr. Rehak understood something which can feel revolutionary--giving his class of children the tools needed to share their thoughts with a global audience. The simple, radical act of believing that what we had to say mattered.&lt;/p&gt;
&lt;h2 id=&quot;nobody-cares!-%3A(&quot; tabindex=&quot;-1&quot;&gt;Nobody Cares! :(&lt;/h2&gt;
&lt;p&gt;One of my earliest blog posts over ten years ago was about &lt;a href=&quot;https://blog.brennanbrown.ca/into-the-void-dd7b8df175e6&quot;&gt;shouting into the void&lt;/a&gt;, anticipating the fact that my work would not be seen or regarded by many, and how I would continue regardless.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Maybe you&#39;ll listen to me, or maybe I&#39;m echoing into an empty cave, it doesn&#39;t really matter. It never did.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I know of a blogger that cares deeply about metrics--wanting to be on the front page of Bubbles.town and getting upset about seeing the same recurring bloggers there instead, over and over.&lt;/p&gt;
&lt;p&gt;This could describe many bloggers--many artists in general. We work hard on something and it deserves recognition, right?&lt;/p&gt;
&lt;p&gt;No, I think it&#39;s much deeper than that. We want to be seen so we can be understood, and we want to be understood so we can be cared for properly.&lt;/p&gt;
&lt;p&gt;And we want to be cared for because we want to be loved. It is always love, I think, in the end. One way or another.&lt;/p&gt;
&lt;p&gt;It is demoralizing when you put hours (or days/weeks) into something only to get nothing back in return. As though you are an unrequited lover of the universe. And if your main driving motivator is the outcome you sincerely and justly deserve, the answer is often going to be cruel misery. But?&lt;/p&gt;
&lt;h2 id=&quot;nobody-cares!-%3A)&quot; tabindex=&quot;-1&quot;&gt;Nobody Cares! :)&lt;/h2&gt;
&lt;p&gt;But you can invert the entire thing and find comfort and freedom, I swear.&lt;/p&gt;
&lt;p&gt;The times I feel most ashamed--when I feel I&#39;ve really fucked up--what gives me solace is knowing how little people actually care. Nobody is me, except me. What feels like a total disaster to me is just a minor note of interest or brief emotion to someone else. Thank goodness. Everyone else has the luxury to continue on with their own life and the burden of their own suffering and problems.&lt;/p&gt;
&lt;p&gt;Sure, if you&#39;re unlucky enough you&#39;ll have somebody become obsessed with you--&lt;a href=&quot;https://www.seeyounexttuesdaymedia.com/articles/snark-spaces-for-community-or-controversy&quot;&gt;snark subculture is built on that&lt;/a&gt;. Or if you&#39;re lucky enough you&#39;ll have somebody become infatuated with you. Both of these edge cases, though, have far more to do with the other person than you. People hate and fall in love with all sorts of people; it is a luck of the draw.&lt;/p&gt;
&lt;p&gt;We cannot control anyone, we cannot will the visitor count to go up, we cannot coerce anybody into giving a fuck about us. And yet we all deserve to be heard, and seen, and loved, nonetheless.&lt;/p&gt;
&lt;p&gt;What does any of that have to do with blogging? Well, surprisingly a lot. I&#39;m able to write day after day and share my thoughts with the world far more because of my apathy than my passion. I love writing, but I am uncaring to what happens to it, or the response, far more intensely. If that could possibly make any sense.&lt;/p&gt;
&lt;p&gt;I can write about anything, I can truly say what I mean, with absolutely no need to mask or pretend. And even in the event I &lt;em&gt;do&lt;/em&gt; get backlash in response, so what? It&#39;s a blog, for God&#39;s sake. People move on. &lt;a href=&quot;https://ca.finance.yahoo.com/news/kim-kardashian-explains-meltdown-led-181501608.html&quot;&gt;&lt;em&gt;&amp;quot;Kim, there&#39;s people that are dying.&amp;quot;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The contradictory nature and cognitive dissonance is on full display. I want to contribute good to the world and leave a positive legacy, but I am also unbothered if I fail in doing this--but not unbothered enough to simply give up completely.&lt;/p&gt;
&lt;p&gt;One of my &lt;a href=&quot;https://brennan.day/values&quot;&gt;core values&lt;/a&gt; is to think lightly of myself and deeply of the world. I do not take myself seriously, I do not think I&#39;m smart or an authority on any particular thing. I have a phobia towards prestige or power. I am just a yapper that loves to yap.&lt;/p&gt;
&lt;p&gt;I think all of this is to say I&#39;m weird. It&#39;s weird to be self-aware and content with such opposing thoughts, I think. But it&#39;s very useful.&lt;/p&gt;
&lt;p&gt;I let go, and the only thing that remains is my compulsion to write.&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>Five Interesting Indie Platforms You Might Not Have Heard Of</title>
		<link href="http://plaintext.brennan.day/five-interesting-indie-platforms-you-might-not-have-heard-of/"/>
		<updated>2026-08-06T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/five-interesting-indie-platforms-you-might-not-have-heard-of/</id>
		<content type="html">&lt;p&gt;It&#39;s already been almost a month (how??) since I &lt;a href=&quot;http://plaintext.brennan.day/a-full-guide-to-properly-delete-corporate-social-media-accounts/&quot;&gt;deleted all my corporate social media accounts&lt;/a&gt;. Reddit, Facebook, Instagram, Discord, among others. And as a result I&#39;ve found myself looking at other social platforms and communities to fill my time with.&lt;/p&gt;
&lt;p&gt;Because social media is not inherently bad--it only starts becoming bad when multi-billion dollar businesses are created around using people as products and extracting as much information and value as possible out of every single one of them.&lt;/p&gt;
&lt;p&gt;Now, I&#39;m also a bit of a maximalist--that&#39;s one of the reasons I kept my corporate social media accounts for so long. I love being everywhere, trying out everything, and having a big-tent mindset.&lt;/p&gt;
&lt;p&gt;So I already have a fair share of communities I&#39;m already in. Of course I&#39;m active on &lt;a href=&quot;https://social.lol/@brennan&quot;&gt;Mastodon&lt;/a&gt; and &lt;a href=&quot;https://bsky.app/profile/brennan.day&quot;&gt;Bluesky&lt;/a&gt;. And there&#39;s &lt;a href=&quot;http://plaintext.brennan.day/omg-lol-is-the-internet-we-need-right-now/&quot;&gt;omg.lol&lt;/a&gt;, of course. And also forums I browse often like &lt;a href=&quot;https://discourse.32bit.cafe/&quot;&gt;32-bit Café&lt;/a&gt; and &lt;a href=&quot;https://forum.melonland.net/&quot;&gt;Melonland&lt;/a&gt;. Then there&#39;s the &lt;a href=&quot;https://tildeverse.org/&quot;&gt;tildeverse&lt;/a&gt;, which is extremely fun and a great way to get more comfortable and familiar with terminal. And the IndieWeb Wiki has many frequently occurring &lt;a href=&quot;https://indieweb.org/Homebrew_Website_Club&quot;&gt;Homebrew Website Club meetups&lt;/a&gt; which I need to attend more often.&lt;/p&gt;
&lt;p&gt;But in the past couple weeks, I&#39;ve stumbled upon and discovered even more niche websites that I thought I&#39;d share. I don&#39;t think a few would be properly defined as &amp;quot;social media&amp;quot; platforms, but they&#39;re online digital communities of people nonetheless!&lt;/p&gt;
&lt;p&gt;And because of my big-tent mindset, I&#39;m certainly not afraid to share these places openly and have new people join--if a platform is interested on hiding away from people and practicing gatekeeping, then I&#39;m certainly not interested in it. (All of these platforms are also genAI-free, as far as I can tell.)&lt;/p&gt;
&lt;p&gt;I also want to note that I&#39;ve only discovered these platforms myself recently, so I still am green and don&#39;t know that much about them. If any of my readers are users, please share!&lt;/p&gt;
&lt;p&gt;With all that out of the way, let me begin my list.&lt;/p&gt;
&lt;h2 id=&quot;1.-special-fish&quot; tabindex=&quot;-1&quot;&gt;1. &lt;a href=&quot;https://special.fish/&quot;&gt;Special Fish&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://special.fish/&quot;&gt;special.fish&lt;/a&gt; describes itself as a &amp;quot;community word processor with light social features,&amp;quot; which is a description I adore. It has a stark &lt;a href=&quot;https://brutalistwebsites.com/&quot;&gt;brutalist web design&lt;/a&gt; which I also really dig. It&#39;s been running since February 2, 2020.&lt;/p&gt;
&lt;p&gt;Built and maintained by &lt;a href=&quot;https://bellkiosk.website/&quot;&gt;a solo working artist&lt;/a&gt; based in St. Johns, Oregon, special fish is funded directly by its users instead of ads or investment. This means there is an upfront payment required to make an account. The &lt;a href=&quot;https://special.fish/directory&quot;&gt;directory page&lt;/a&gt; lists a suggested $40/year contribution, with paying members effectively subsidizing users who can&#39;t.&lt;/p&gt;
&lt;p&gt;The main content area of the platform is called the &lt;a href=&quot;https://special.fish/garden&quot;&gt;Garden&lt;/a&gt;, where user pages sit, loosely linked together. There are journal entries, poem drafts, food logs, and open questions posted to the whole community. There&#39;s also a &lt;a href=&quot;https://special.fish/bulletin&quot;&gt;bulletin&lt;/a&gt; where you can share open calls, events, projects, or a new website. Every Sunday morning, there&#39;s a collaborative &lt;a href=&quot;https://special.fish/writing-room&quot;&gt;writing room&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;According to the &lt;a href=&quot;https://special.fish/about&quot;&gt;about page&lt;/a&gt;, &amp;quot;communities&amp;quot; were originally just called &amp;quot;places&amp;quot; in the site&#39;s early design. (and there&#39;s an easter-egg DJ feature built into the platform?) Registration requires users to be 18 or older, and the &lt;a href=&quot;https://special.fish/terms&quot;&gt;terms page&lt;/a&gt; states the site could shut down at any point if it becomes too costly to run, that backups are made only &amp;quot;occasionally.&amp;quot; New accounts go through the &lt;a href=&quot;https://special.fish/join&quot;&gt;join page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;2.-ctrl-%2B-shift-%2B-3&quot; tabindex=&quot;-1&quot;&gt;2. &lt;a href=&quot;https://ctrlshift3.com/&quot;&gt;Ctrl + Shift + 3&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://ctrlshift3.com/&quot;&gt;ctrlshift3.com&lt;/a&gt; describes itself as &amp;quot;a calm, chronological, text-first community platform&amp;quot; built by a single developer, &lt;a href=&quot;https://wilcosky.com/&quot;&gt;Billy Wilcosky&lt;/a&gt;. It&#39;s minimalist in its design, as you&#39;d expect.&lt;/p&gt;
&lt;p&gt;There are no likes, follows, or other vanity counts. Instead, there&#39;s just a shared &lt;a href=&quot;https://ctrlshift3.com/&quot;&gt;Feed&lt;/a&gt; in chronological order, with an optional &amp;quot;Wave&amp;quot; view that surfaces posts with more comments while still favoring newer content and adding light randomization.&lt;/p&gt;
&lt;p&gt;Private, invite-only groups are called &lt;a href=&quot;https://ctrlshift3.com/clicks&quot;&gt;&amp;quot;Clicks&amp;quot;&lt;/a&gt;, and users can privately subscribe (&amp;quot;Sub&amp;quot;) to each other without visible follower counts. Comments are flat rather than nested, and related posts can be manually linked together as &amp;quot;connected thoughts.&amp;quot; You can add posts that are either plain text, timed polls (1-30 days), or a 40×40 pixel-art grid. There&#39;s also a site-wide &lt;a href=&quot;https://ctrlshift3.com/polling-place&quot;&gt;Polling Place&lt;/a&gt; for community-level questions, and an experimental feature called &lt;a href=&quot;https://ctrlshift3.com/direct-connect&quot;&gt;Direct Connect&lt;/a&gt; that offers ephemeral, browser-to-browser chat over WebRTC, with no history saved once the session ends.&lt;/p&gt;
&lt;p&gt;Participation is tracked through a system called &amp;quot;Bits,&amp;quot; which awards a symbol for each post, comment, or daily login, with different symbols and colours at milestone counts (10th, 50th, 100th, 10,000th). The platform has a released &lt;a href=&quot;https://apps.apple.com/us/app/ctrl-shift-3/id6794879492&quot;&gt;iOS app&lt;/a&gt; (with acknowledged bugs pending an update) and was recently featured on &lt;a href=&quot;https://www.producthunt.com/products/ctrl-shift-3&quot;&gt;Product Hunt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One feature I absolutely love is the sound design, which is credited to &lt;a href=&quot;https://romainraynal.fr/&quot;&gt;Romain Raynal&lt;/a&gt;, and the ASCII art engine is credited to &lt;a href=&quot;https://yikuansun.github.io/&quot;&gt;Yikuan Sun&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;3.-web1.0-hosting&quot; tabindex=&quot;-1&quot;&gt;3. &lt;a href=&quot;https://web1.0hosting.net/&quot;&gt;web1.0 Hosting&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you&#39;re looking for an alternative to &lt;a href=&quot;https://neocities.org/&quot;&gt;Neocities&lt;/a&gt; and &lt;a href=&quot;https://nekoweb.org/&quot;&gt;Nekoweb&lt;/a&gt; that&#39;s specifically designed to have you design websites that work on old computers and cell phones, then &lt;a href=&quot;https://web1.0hosting.net/&quot;&gt;web1.0hosting.net&lt;/a&gt; is what you&#39;re looking for. It&#39;s a free static-hosting provider based in Helsinki, Finland, explicitly built around accessibility from old and low-powered devices. You might know them from their sister site, the &lt;a href=&quot;http://elpis.ws/&quot;&gt;ELPiS zine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;web1.0 hosting gives you functionality that you can&#39;t really find anywhere else. All sites work as HTTP-only, accessible through IP-only (no DNS), and they have a dedicated WAP gateway for old mobile phones.&lt;/p&gt;
&lt;p&gt;The free tier includes 100MB of space and a third-level domain on &lt;code&gt;.w10.site&lt;/code&gt;, &lt;code&gt;.w0.am&lt;/code&gt;, &lt;code&gt;.narod.ws&lt;/code&gt;, or &lt;code&gt;.oldcities.org&lt;/code&gt;; registered &amp;quot;community&amp;quot; users (via the platform&#39;s &lt;a href=&quot;https://web1.0hosting.net/register&quot;&gt;Discord/Telegram/forum&lt;/a&gt;) get 500MB, with more available by donation through the &lt;a href=&quot;https://web1.0hosting.net/asdc&quot;&gt;asdc donation page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There&#39;s a &lt;a href=&quot;https://web1.0hosting.net/net2ftp&quot;&gt;browser-based file uploader&lt;/a&gt;, and they also have a built-in no-code site builder called &lt;a href=&quot;https://web1.0hosting.net/faq/HamsterCMS.html&quot;&gt;HamsterCMS&lt;/a&gt;, designed for users without coding experience. Server Side Includes (SSI) let users reuse headers and footers across static pages. There&#39;s also a &lt;a href=&quot;https://mail.w10.host/&quot;&gt;webmail client&lt;/a&gt;, &lt;a href=&quot;https://chat.w10.host/&quot;&gt;web chat&lt;/a&gt;, &lt;a href=&quot;https://forum.w10.host/&quot;&gt;forum&lt;/a&gt;, and an IRC channel at &lt;code&gt;irc.retronode.org:6667&lt;/code&gt;, channel &lt;code&gt;#webdev&lt;/code&gt;, plus a dedicated &lt;a href=&quot;https://z00m.ws/&quot;&gt;search engine&lt;/a&gt; for hosted and old-web sites.&lt;/p&gt;
&lt;p&gt;Hosted sites are also mirrored onto &lt;a href=&quot;https://yggdrasil-network.github.io/&quot;&gt;Yggdrasil&lt;/a&gt;, a decentralized, encrypted peer-to-peer mesh network, accessible via &lt;code&gt;.ygg&lt;/code&gt; addresses.&lt;/p&gt;
&lt;p&gt;I know I&#39;m listing out a lot of features, but that&#39;s because there&#39;s so many! I think this platform is criminally underrated.&lt;/p&gt;
&lt;h2 id=&quot;4.-pillowfort&quot; tabindex=&quot;-1&quot;&gt;4. &lt;a href=&quot;https://pillowfort.social/&quot;&gt;Pillowfort&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;One of the better-known platforms, &lt;a href=&quot;https://pillowfort.social/&quot;&gt;pillowfort.social&lt;/a&gt; launched in open beta in 2017, founded by Julia Baritz and headquartered in Austin, Texas. It was positioned from the start as a fandom-oriented alternative to Tumblr, and it grew fast in 2018 after Tumblr&#39;s adult-content ban pushed creators to look elsewhere. The site passed 20,000 users in its first two and a half years, and had surpassed 100,000 users by October 2020. &lt;a href=&quot;https://fanlore.org/wiki/Pillowfort&quot;&gt;Fanlore&lt;/a&gt; frames Pillowfort as having tried to fill the same post-Tumblr community-space role that Dreamwidth also attracted, without what some users felt was Dreamwidth&#39;s tendency to split fandom into smaller, more siloed spaces.&lt;/p&gt;
&lt;p&gt;The platform is independently and user-funded, with no venture capital or outside investment, and there are two ways to join. A one-time $5 fee for instant access, or a free rolling waitlist (it&#39;s really quick!). Pillowfort maintains an explicit anti-AI stance, stating it does not allow AI-generated text or images anywhere on the platform.&lt;/p&gt;
&lt;p&gt;Other features include per-post visibility control (public, followers-only, or private), user-created communities kept separate from personal blogs, threaded comments, NSFW tagging with filtering, and mutual blocking, where a block prevents &lt;em&gt;both&lt;/em&gt; users from seeing or contacting each other. A mobile app is also available directly from the site.&lt;/p&gt;
&lt;h2 id=&quot;note-on-blue-dwarf&quot; tabindex=&quot;-1&quot;&gt;Note on Blue Dwarf&lt;/h2&gt;
&lt;p&gt;This post originally included a recommendation for Blue Dwarf, but after further conversation with the platform owner about their moderation philosophy and where they draw the line, I have decided to rescind that recommendation. You can read more about my reasoning in &lt;a href=&quot;http://plaintext.brennan.day/free-speech-and-the-indieweb/&quot;&gt;&amp;quot;Free Speech and the IndieWeb&amp;quot;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;go-forth-and-socialize!-(and-support!)&quot; tabindex=&quot;-1&quot;&gt;Go Forth and Socialize! (And Support!)&lt;/h2&gt;
&lt;p&gt;As I wrote about recently, discovering all of these different platforms has made me realize I need to focus more on cultivating and engaging with the already-existing communities online rather than continuously attempt to make my own. No need to reinvent the wheel.&lt;/p&gt;
&lt;p&gt;If you&#39;re like me, then you&#39;re looking for somewhere to hang out and be chronically online that is made by good people and full of good people. I&#39;m sure I&#39;m preaching to the choir if I explain why companies like &lt;a href=&quot;https://www.amnesty.org/en/latest/news/2022/09/myanmar-facebooks-systems-promoted-violence-against-rohingya-meta-owes-reparations-new-report/&quot;&gt;Meta&lt;/a&gt; or &lt;a href=&quot;https://www.theguardian.com/technology/2026/jan/08/grok-x-nonconsensual-images&quot;&gt;X Corp.&lt;/a&gt; are not places worth your time or attention.&lt;/p&gt;
&lt;p&gt;And regardless of whether you&#39;re interested in signing up, I would ask you to consider contributing or supporting these platforms regardless, because the only way the Independent web flourishes is both with users, yes, but also with monetary funding as well. &lt;a href=&quot;http://plaintext.brennan.day/yes-buy-them-a-coffee-support-and-mutual-aid-on-the-indieweb/&quot;&gt;Buy these indie devs a coffee&lt;/a&gt;, why don&#39;t you?&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>REVIEW: Sufjan Stevens&#39; Carrie and Lowell, Ten Years Later</title>
		<link href="http://plaintext.brennan.day/review-sufjan-stevens-carrie-and-lowell-ten-years-later/"/>
		<updated>2026-08-05T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/review-sufjan-stevens-carrie-and-lowell-ten-years-later/</id>
		<content type="html">&lt;p&gt;There are a handful of albums that I&#39;ve listened to front-to-back over and over hundreds of times throughout my life. These records are not only a collection of songs, but carry a powerful throughline from start to finish.&lt;/p&gt;
&lt;p&gt;Death Cab for Cutie&#39;s &lt;em&gt;Transatlanticism&lt;/em&gt;, Neutral Milk Hotel&#39;s &lt;em&gt;In the Aeroplane Over the Sea&lt;/em&gt;, &lt;a href=&quot;http://plaintext.brennan.day/be-prolific-accept-every-thought-mythologize-yourself-show-up/&quot;&gt;The Mountain Goats&#39;&lt;/a&gt; &lt;em&gt;The Sunset Tree&lt;/em&gt;, Joni Mitchell&#39;s &lt;em&gt;Blue&lt;/em&gt;, Frank Ocean&#39;s &lt;em&gt;Blonde&lt;/em&gt;, and Bright Eyes&#39; &lt;em&gt;I&#39;m Wide Awake, It&#39;s Morning&lt;/em&gt;. If you&#39;ve pegged me for a Tumblr-era /mu/core Millennial hipster, then you&#39;re more than correct. More recently, I&#39;ve been listening to Little Simz &lt;em&gt;Sometimes I Might Be Introvert&lt;/em&gt;, Phoebe Bridgers&#39; &lt;em&gt;Punisher&lt;/em&gt;, and Lizzy McAlpine&#39;s &lt;em&gt;Older (and Wiser)&lt;/em&gt; the same way.&lt;/p&gt;
&lt;p&gt;One of these albums that&#39;s had a profound influence on me and my life has been Sufjan Stevens&#39; 7th LP, &lt;em&gt;Carrie and Lowell&lt;/em&gt;, released back in 2015. I remember listening to the record on repeat each day after my pre-calc classes in summer school in grade 13.&lt;/p&gt;
&lt;p&gt;This album is the harsh salt of reckoning in the wound and the balm and salve of catharsis, it is immeasurable grief, and yet it is also impossible forgiveness. It is the record I return to when I&#39;m feeling at my lowest--not because it pulls me out of it, but because it provides me an honest, clear mirror.&lt;/p&gt;
&lt;p&gt;For those unaware, the album is named after Stevens&#39; late mother, Carrie, and his stepfather, Lowell Brams. Carrie suffered from schizophrenia, bipolar disorder, and severe substance abuse, and she abandoned Sufjan and his siblings multiple times when he was very young.&lt;/p&gt;
&lt;p&gt;In earlier albums, Stevens wrote about his mother in anger and resentment. On the 2003 Michigan album, Stevens confessed how ashamed he was of her on &amp;quot;Romulus.&amp;quot; On the 2005 Illinois album, the song &amp;quot;The Seer&#39;s Tower&amp;quot; laments &amp;quot;oh, how she betrayed us!&amp;quot;&lt;/p&gt;
&lt;p&gt;In his later years, Stevens partially reconnected with Carrie, though their relationship remained distant and complicated. Stevens spent a few summers with her and his stepfather in Oregon during his childhood, where a lot of the inspiration for the album came from.&lt;/p&gt;
&lt;p&gt;The two had brief contact later in life, but Carrie died due to stomach cancer in 2012, which began the creation of the album. In this, we can view the record as an intimate documentary of grief, processing profound sorrow, childhood absence, and mortality.&lt;/p&gt;
&lt;p&gt;Throughout the album, Stevens grapples with how he never had the ability to reconcile properly while Carrie was alive. Her death not only causes him to have a crisis of faith, but also causes him to question whether he should be alive at all. In the track &amp;quot;The Only Thing&amp;quot; Stevens lists out the many different ways he considered ending his life:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The only thing that keeps me from driving this car&lt;br /&gt;
Half-light, jack knife into the canyon at night.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The only thing that keeps me from cutting my arm&lt;br /&gt;
Cross hatch, warm bath, Holiday Inn after dark&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In an interview about this album, Stevens confesses he felt connected to his mother after she died by replicating her self-destructive behaviour:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In lieu of her death, I felt a desire to be with her, so I felt like abusing drugs and alcohol and fucking around a lot and becoming reckless and hazardous was my way of being intimate with her.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;The only thing&lt;/em&gt; keeping Stevens alive ends up being his faith, and the incomprehensible grace of God. I resonate deeply with this, discussing the temptation of suicide similarly presented in works like &lt;a href=&quot;http://plaintext.brennan.day/bojack-and-the-temptation-of-suicide/&quot;&gt;BoJack Horseman&lt;/a&gt;, or my book review of &lt;a href=&quot;http://plaintext.brennan.day/review-how-do-we-reckon-on-yiyun-lis-things-in-nature-merely-grow/&quot;&gt;Yiyun Li&#39;s Things in Nature Merely Grow&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is what I mean when I say the album holds up a clear, honest mirror. Stevens is writing during the darkest time of his life, during a time of immense grief that cannot be channelled into something survivable. And yet, even still, he manages to find a reason, the signs and wonders are enough for him to maintain and continue. I cannot think of anything more important to hear when you&#39;re at that point.&lt;/p&gt;
&lt;p&gt;The most haunting and heartbreaking song on the album is &amp;quot;Fourth of July,&amp;quot; and it has been reworked and re-released more times than almost anything else in all of Stevens&#39; catalogue. There&#39;s the PPD Remix as the B-side to the &amp;quot;Exploding Whale&amp;quot; 7&amp;quot; that same year, the woozy 900X Remix (James McAlister&#39;s handiwork) on 2017&#39;s The Greatest Gift mixtape, a live rendition captured November 9, 2015 in North Charleston and released as part of Carrie &amp;amp; Lowell Live, the April Base Version recorded back in 2014 at Justin Vernon&#39;s Eau Claire studio and sat on for eight years before finally surfacing in 2022. The sparser DUMBO Version, cut the same year at Stevens&#39; old Brooklyn studio with just voice, guitar, and a few piano notes standing in for the album take&#39;s ghostly synths. And finally Version 4, the thirteen-minute, cinematic outtake unearthed for 2025&#39;s 10th Anniversary Edition.&lt;/p&gt;
&lt;p&gt;The core mantra in the track, between the sweet nicknames exchanged by Stevens and Carrie is &amp;quot;we&#39;re all going to die&amp;quot; as the songwriter grapples with mortality. It is no surprise to see how this has bled into my own personal philosophy, for indeed we &lt;a href=&quot;http://plaintext.brennan.day/you-must-you-must-you-must/&quot;&gt;all must die&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In many ways, I think Stevens is just as haunted by his own record as I am. He released a live version of the album two years later, alongside the mixtape The Greatest Gift, containing demos, cut tracks, and remixes. Reading his &lt;a href=&quot;https://www.npr.org/2025/05/27/1253209950/sufjan-stevens-interview-carrie-and-lowell&quot;&gt;NPR interview&lt;/a&gt; about the album a decade later, he has an acceptance of grief, saying the process of &amp;quot;grieving is eternal and you never really get over it. It just moves around within you and transforms you, but it never goes away.&amp;quot;&lt;/p&gt;
&lt;p&gt;Stevens goes even further, saying that the album was &amp;quot;the first time [he] realized that not everything can be sublimated into art, that some things just remain unsolvable, or insoluble&amp;quot; and views Carrie and Lowell as &amp;quot;evidence of creative and artistic failure from [his] vantage point.&amp;quot; Hm.&lt;/p&gt;
&lt;h2 id=&quot;my-original-2015-review&quot; tabindex=&quot;-1&quot;&gt;My Original 2015 Review&lt;/h2&gt;
&lt;p&gt;Now, I want to do something I haven&#39;t done before--back in high school, I attempted to start a music review blog with a fellow music-loving friend of mine. We actually did manage to write a handful of reviews before abandoning the project. One of the records I wrote about was, in fact, Carrie and Lowell. I haven&#39;t read the piece since I published it over ten years ago, and I&#39;m curious what has changed and what has stayed the same, reader, in this time capsule of mine:&lt;/p&gt;
&lt;div class=&quot;rule&quot; aria-hidden=&quot;true&quot;&gt;------------------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;CARRIE AND LOWELL: REVISITED. VALENTINE, SPURN MY SORROW.&lt;/strong&gt; (Posted June 19, 2015)&lt;/p&gt;
&lt;p&gt;Sufjan Stevens is a sad man who has--reportedly--whispered praise to his banjos at his concerts.&lt;/p&gt;
&lt;p&gt;In celebrating the month since our first post, I decided to take a second glace [sic] at the first album that my fellow music reviewer decided to review, one that she didn&#39;t actually like. Which was odd since &lt;em&gt;Carrie and Lowell&lt;/em&gt; is widely considered one of Sufjan&#39;s best record [sic] so far. (Or maybe taking a purposefully controversial stance is intelligent for clickbait? I don&#39;t actually know, I&#39;m not an expert in audience dick-sucking.)&lt;/p&gt;
&lt;p&gt;At first, I mostly agreed with her review. But I confess that was mainly because I didn&#39;t &lt;em&gt;try&lt;/em&gt; to figure out Sufjan. I didn&#39;t attempt to read into the lyrics, or realize that the album wasn&#39;t just a portrait of experiemental nhilistic [sic] elder photography[^1]. But then I did, and then I cried. I sincerely cried, reading up on &lt;em&gt;Genius&lt;/em&gt; everything that I plainly missed.[^2]&lt;/p&gt;
&lt;p&gt;[^1]: I think it&#39;s a problem to instantly buy into the concept that an album is &#39;wallpaper&#39; music, because it completely changes your listening experiencing [sic]. Stevens is soothing and soft, his strings are always well places [sic] and never danceable. This can create the illusion that nothing exciting is being summoned. Within this album, you couldn&#39;t be further from the truth.
[^2]: I contemplate the trickiness and hypocrisy of using other people&#39;s opinions and interpretations to influence how one feels about something. Is it truly an ephinany [sic] if you need somebody to spoonfeed it to you? How shallow does this make me?&lt;/p&gt;
&lt;p&gt;Ephinany [sic] can be brutal, like a sudden stomach ulcer or a crowded broken elevator. Our &lt;em&gt;eurekras&lt;/em&gt; [sic] shroud themselves, they sometimes tease the edges of our minds.&lt;/p&gt;
&lt;p&gt;Something hit home hard for me within this album, and that&#39;s the actual reason I decided to write this review.&lt;/p&gt;
&lt;h3 id=&quot;the-strongest-clan&quot; tabindex=&quot;-1&quot;&gt;The Strongest Clan&lt;/h3&gt;
&lt;p&gt;It is the sentimentalist in me, I cannot help but feel that the synecdoche of family within art. It is the most powerful way to represent our humanity. More often than not, we cannot relate to the nuclear family, for most of us there is no feeling of empathy when we view parent and child in merry discussion at the dinner-table. This is not, in spite of popular belief, what family is.&lt;/p&gt;
&lt;p&gt;What then, is family? Family is where we find solace and cathatrisis [sic], it&#39;s the perseverance of those we are forced to love and choose to hate. Family is those who are close enough to us to shape us as people. Family is a mother, bipolar and schizophrenic, and suffering from drug addiction and substance abuse.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When I was three, three maybe four,&lt;br /&gt;
She left us at that video store.&lt;br /&gt;
Be my rest, be my fantasy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is difficult to come anywhere close to imagining how Sufjan actually feels, here; to have your pre-determined caretaker abandon you at such a young age. To have a parent that is so irrepairably [sic] difficult, that&#39;s a burden.&lt;/p&gt;
&lt;h3 id=&quot;fireworks-and-forests&quot; tabindex=&quot;-1&quot;&gt;Fireworks and Forests&lt;/h3&gt;
&lt;p&gt;And yet, in this album is not anger. In this album is not bitterness or betrayal. Instead we hear pleas of forgiveness and attempts at understanding.&lt;/p&gt;
&lt;p&gt;The climax of this record is &lt;em&gt;Fourth of July&lt;/em&gt;, where Stevens has a discussion with his passed mother. It&#39;s where my player revolves to every time I attempt to listen to the album in full.&lt;/p&gt;
&lt;p&gt;There&#39;s the seemingly blunt mantra, depicting how Carrie retells Sufjan that he needs to learn about the fleeting and fragile nature of the world by comparing it to the massive devistation [sic] of Tillamook, as well as the ephemeral beauty of the fireworks on Independence Day. In addition to this, it is difficult to say the last line doesn&#39;t sound like the bleeding pessimism of a defeated woman:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Tell me what did you learn from the Tillamook burn?&lt;br /&gt;
Or the Fourth of July?&lt;br /&gt;
We&#39;re all gonna die.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But, ultimately, this isn&#39;t what &lt;em&gt;gets&lt;/em&gt; you. You don&#39;t feel a chill down your spine at the futile hopelessness of Carrie&#39;s lament. You instead bawl hard at the contrast, at how heartwarming she is when speaking to him.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My little hawk, why do you cry?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The maudlin is so powerful--how deep the corny pet-names will carve into you. You cannot help but buy into the image of a deathbed filled with a broken past dressed in a pure white dress and smiling.&lt;/p&gt;
&lt;h3 id=&quot;verdict&quot; tabindex=&quot;-1&quot;&gt;Verdict&lt;/h3&gt;
&lt;p&gt;This, to me, is the most spectacular thing about &lt;em&gt;Carrie and Lowell&lt;/em&gt;. Sufjan somehow takes in such a horrific aspect of his life, and delicately lays out its most beautiful aspects and then appreciates them.&lt;/p&gt;
&lt;p&gt;Having terrible parents is perhaps one of the most stress-inducing and heartbreaking situations someone can be placed into. It can sometimes feel as though loving them is a choice and hating them isn&#39;t, but the opposite is true.&lt;/p&gt;
&lt;p&gt;For such a situation, Stevens goes on throughout this album searching for the remedy. His answer is to forgive and love them, regardless.&lt;/p&gt;
&lt;p&gt;This is the ephinany [sic] that comes through, since you wouldn&#39;t be around if it weren&#39;t for them, would you?&lt;/p&gt;
</content>
	</entry>
	<entry>
		<title>The Itch</title>
		<link href="http://plaintext.brennan.day/the-itch/"/>
		<updated>2026-08-04T02:00:00Z</updated>
		<id>http://plaintext.brennan.day/the-itch/</id>
		<content type="html">&lt;p&gt;If you can&#39;t tell, I&#39;ve been trying to scratch an itch. What is this itch exactly? To be honest with you, I don&#39;t know the specific answer to that. I just know what I&#39;ve been orbiting and circling:&lt;/p&gt;
&lt;p&gt;I love trying to solve the existential problem that is our (read: humanity&#39;s) relationship with technology. I love contributing to the digital commons and using my web development skills to give back and try to create things that are useful to others. I love asking the question &amp;quot;what do we owe each other?&amp;quot; and then attempting the impossible task of building the infrastructure necessary for the answer. And, of course, I love writing.&lt;/p&gt;
&lt;p&gt;But love can only take you so far, can&#39;t it?&lt;/p&gt;
&lt;p&gt;I&#39;ve attempted to scratch this itch by &lt;a href=&quot;http://plaintext.brennan.day/mise-en-place-for-writers/&quot;&gt;being a hospice cook&lt;/a&gt; for four years, and then by &lt;a href=&quot;https://writeclub.netlify.app/about&quot;&gt;running a creative writing collective&lt;/a&gt; for three years. I&#39;ve tried by &lt;a href=&quot;https://brennanbrown.gumroad.com/&quot;&gt;sharing my poetry&lt;/a&gt; with the world, and by &lt;a href=&quot;https://www.researchgate.net/profile/Brennan-Brown-2&quot;&gt;being an academic&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;More recently, I&#39;ve tried to scratch the itch by starting &lt;a href=&quot;http://plaintext.brennan.day/announcing-my-new-radio-show-a-love-letter-to-public-access-television/&quot;&gt;an online public access radio show&lt;/a&gt;, or a &lt;a href=&quot;http://plaintext.brennan.day/creating-a-digital-garden-in-11ty-tracking-my-daily-word-count-with-urlminder/&quot;&gt;digital garden&lt;/a&gt;, or an inclusive &lt;a href=&quot;http://plaintext.brennan.day/announcing-fanfiction-lol-a-manifesto-on-human-creativity-and-ao3/&quot;&gt;transformative works archive&lt;/a&gt;, or an &lt;a href=&quot;http://plaintext.brennan.day/announcing-folk-zone-an-attempt-to-build-the-indieweb-commons-myself/&quot;&gt;IndieWeb Commons&lt;/a&gt; for everyone.&lt;/p&gt;
&lt;p&gt;And don&#39;t get me wrong, I am very glad I am attempting to do so much. There is a great joy to throwing everything at the wall and seeing what sticks. But much more importantly, I&#39;ve learned so much and built meaningful connections and relationships with others in the process.&lt;/p&gt;
&lt;p&gt;And even as I write this, trying to figure out my next iteration and recalibration, I am an organiser for the upcoming &lt;a href=&quot;https://webwriterscollective.com/&quot;&gt;Web Writers&#39; Collective&lt;/a&gt;, which I think will answer my desire for a new &lt;a href=&quot;http://plaintext.brennan.day/a-new-indieweb-publication-or-i-want-to-start-something-and-be-bad-at-it/&quot;&gt;IndieWeb publication&lt;/a&gt;. But I am not leading this initiative--which I admit I am a bit relieved by after running Write Club. I would love the ability to support, amplify, and centre others instead of myself for once.&lt;/p&gt;
&lt;p&gt;But the itch still needs scratching. The kiln still needs pottery to burn. The forge still needs iron to fire.&lt;/p&gt;
&lt;p&gt;Something I learned recently which is helpful is that 1) &lt;a href=&quot;http://plaintext.brennan.day/wow-i-love-the-puter/&quot;&gt;I love computers&lt;/a&gt; and 2) &lt;a href=&quot;http://plaintext.brennan.day/homelab-for-the-beginner-you-can-self-host-your-own-server-on-50-hardware/&quot;&gt;I love being a sysadmin&lt;/a&gt; self-hosting projects with my homelab set up with simple port forwarding.&lt;/p&gt;
&lt;p&gt;Often times, I don&#39;t even think about it. I effortlessly wander into a new curiosity and inadvertently pour hours of time into something, and the result is a blog post or small project I&#39;m happy with. For instance, right now I&#39;ve been experimenting with creating a new blog theme, mostly due to finding new typefaces and falling in love with them. Nearly all of them are old style, like &lt;a href=&quot;https://github.com/noirblancrouge/YoungSerif&quot;&gt;Young Serif&lt;/a&gt; or &lt;a href=&quot;https://github.com/Instrument/instrument-serif&quot;&gt;Instrument Serif&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But when I go prototyping the theme, I realize it kind of looks like what people consider &lt;a href=&quot;https://www.newyorker.com/culture/infinite-scroll/the-ai-design-aesthetic-thats-taking-over-the-internet&quot;&gt;the &amp;quot;genAI aesthetic&amp;quot;&lt;/a&gt;. And I&#39;m not sure if this should be demotivating. Is this an example of genAI imitating good principles, or normalizing bad ones? Sometimes, I feel like I&#39;m in a hall of ouroboros-shaped mirrors.&lt;/p&gt;
&lt;p&gt;Anyways, switching gears, I am going to try to map out where my intuition is leading me right now. To start, I&#39;m happy that my little 11ty digital garden was at least a wonderful proof-of-concept that it&#39;s easy to track word count via Beeminder with some 11ty scripts. But do I need to track word count? No, not really. I&#39;ve been writing and writing and writing rather effortlessly, so it isn&#39;t tracking-as-a-discipline-tool.&lt;/p&gt;
&lt;p&gt;I&#39;ve also found myself continuing to be more appreciative of smaller blogging platforms, like &lt;a href=&quot;https://pika.page/&quot;&gt;Pika&lt;/a&gt; and &lt;a href=&quot;https://pagecord.com/&quot;&gt;Pagecord&lt;/a&gt;. I really love the robustness of Pagecord&#39;s capability of publishing blog posts--something I praised in &lt;a href=&quot;http://plaintext.brennan.day/phoneblogging/#the-real-problem-with-phoneblogging&quot;&gt;my recent blog post on phoneblogging&lt;/a&gt;. But again, this isn&#39;t something I actually need to work on or implement. My blogging workflow is already settled and works well.&lt;/p&gt;
&lt;p&gt;I think this is largely why I have radically started over so often in my life. Once I get to a place where I&#39;ve built everything I need, then what?&lt;/p&gt;
&lt;p&gt;I mean, sure, I have been slowly working on compiling certain blog posts into my next book, and also I could definitely collect poems I&#39;ve written in the past few years into another chapbook, but I don&#39;t have the fire in my gut to do so the way I did during my undergrad. I could go and apply for my Masters and return to academia, but I don&#39;t have a need to--and it would be detrimental to this blog and my productivity, I think.&lt;/p&gt;
&lt;p&gt;I do not want a fifth foundation myth, a fifth thing-I-started. To scratch the itch doesn&#39;t simply mean to build more. No, the obvious and expected answer is rarely the correct one. The best writing is inevitable, but not predictable, and I think life works similarly.&lt;/p&gt;
&lt;p&gt;I ask myself what I want to do, and also what I can offer to the world. I do not think building another blogging platform or community is the answer. I do know I definitely want to advocate for already-existing platforms and communities that I&#39;ve been deeply enjoying--some of the more recent ones have been &lt;a href=&quot;https://special.fish/&quot;&gt;Special.Fish&lt;/a&gt; and &lt;a href=&quot;https://ctrlshift3.com/&quot;&gt;Ctrl+Shift+3&lt;/a&gt; and &lt;a href=&quot;https://www.pillowfort.social/&quot;&gt;Pillowfort&lt;/a&gt; and &lt;a href=&quot;https://bluedwarf.top/&quot;&gt;BlueDwarf&lt;/a&gt;. See? So much exists already.&lt;/p&gt;
&lt;h2 id=&quot;five-patterns-i&#39;ve-noticed&quot; tabindex=&quot;-1&quot;&gt;Five Patterns I&#39;ve Noticed&lt;/h2&gt;
&lt;p&gt;Back in March, I wrote two retrospectives: &lt;a href=&quot;http://plaintext.brennan.day/constellation-of-living-stars/&quot;&gt;Constellation of Living Stars&lt;/a&gt;, looking back at 120 posts and 250,000 words of writing, and &lt;a href=&quot;http://plaintext.brennan.day/building-brennan-day-part-two-indieweb-new-features-and-three-months-of-iterations/&quot;&gt;Building brennan.day Part Two&lt;/a&gt;, a tour of everything I&#39;d shipped on &lt;a href=&quot;https://brennan.day/&quot;&gt;Brennan.day&lt;/a&gt;. It&#39;s been four months since then, and so why not take another retrospective look?&lt;/p&gt;
&lt;p&gt;On the writing side, I&#39;ve published 113 more posts since that March post, totalling &lt;strong&gt;267,572 words&lt;/strong&gt;, more than what I had written in the entirety of the blog&#39;s existence up to that point. My blog as a whole now sits at 246 posts and 545,077 words.&lt;/p&gt;
&lt;p&gt;What have I&#39;ve done since then?&lt;/p&gt;
&lt;p&gt;Well, to start, &lt;strong&gt;I&#39;ve found a love for interviews.&lt;/strong&gt; I was interviewed for &lt;a href=&quot;http://plaintext.brennan.day/over-under-58-with-brennan-kenneth/&quot;&gt;Over/Under&lt;/a&gt;, &lt;a href=&quot;http://plaintext.brennan.day/people-and-blogs-interview-brennan-kenneth-brown/&quot;&gt;People and Blogs&lt;/a&gt;, and the &lt;a href=&quot;http://plaintext.brennan.day/wonders-of-webweaving-podcast-ep-8-brennan/&quot;&gt;&lt;em&gt;Wonders of Web Weaving&lt;/em&gt; podcast&lt;/a&gt;. I interviewed &lt;a href=&quot;http://plaintext.brennan.day/writers-who-burned-all-their-words-feat-bix-frankonis/&quot;&gt;Bix Frankonis&lt;/a&gt; about self-erasure, &lt;a href=&quot;http://plaintext.brennan.day/floating-up-an-interview-with-the-creator-of-bubbles-town-benjamin-behnke/&quot;&gt;Benjamin Behnke of Bubbles.town&lt;/a&gt; about AI and forgiveness, and &lt;a href=&quot;http://plaintext.brennan.day/follow-up-an-interview-with-frances-widdowson/&quot;&gt;Frances Widdowson&lt;/a&gt;, a residential school denier who messaged me after I wrote about her.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I&#39;ve started a monthly French series.&lt;/strong&gt; &lt;a href=&quot;https://brennan.day/et-maintenant-quelque-chose-de-completement-differente/&quot;&gt;Et Maintenant, Quelque Chose de Complètement Différent&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/brenjour-cest-moi-sur-lidentite/&quot;&gt;Brenjour, C&#39;est Moi&lt;/a&gt;, &lt;a href=&quot;https://brennan.day/on-na-pas-la-langue-dans-notre-poche/&quot;&gt;Quebec French and Michif&lt;/a&gt;, and &lt;a href=&quot;https://brennan.day/lindieweb-en-francais-quebecois/&quot;&gt;L&#39;IndieWeb en français québécois&lt;/a&gt;. Written entirely in French, about language insecurity, code-switching, and translating IndieWeb jargon.&lt;/p&gt;
&lt;p&gt;March&#39;s &amp;quot;deep time&amp;quot; throughline was about scale and proportion. Since, &lt;strong&gt;I&#39;ve become direct and imperative about mortality&lt;/strong&gt;. &lt;a href=&quot;http://plaintext.brennan.day/you-must-you-must-you-must/&quot;&gt;You Must, You Must, You Must&lt;/a&gt; reframes memento mori from fate to obligation, &lt;a href=&quot;http://plaintext.brennan.day/is-the-juice-worth-the-squeeze/&quot;&gt;Is the Juice Worth the Squeeze&lt;/a&gt; and &lt;a href=&quot;http://plaintext.brennan.day/earning-my-keep/&quot;&gt;Earning My Keep&lt;/a&gt; both wrestle with what&#39;s owed given how little time there is, and &lt;a href=&quot;http://plaintext.brennan.day/a-thousand-cranes-why-i-write-every-day/&quot;&gt;A Thousand Cranes&lt;/a&gt; makes the daily writing itself the answer. Death is a deadline.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I love writing technical post-mortems.&lt;/strong&gt; Such as &lt;a href=&quot;http://plaintext.brennan.day/the-internet-needs-more-cross-pollinators/&quot;&gt;the backlash to fanfiction.lol taught me about cross-pollination&lt;/a&gt;, then &lt;a href=&quot;http://plaintext.brennan.day/i-need-to-stop-making-promises-i-cant-keep/&quot;&gt;about the promises I couldn&#39;t keep&lt;/a&gt; once Canadian obscenity law and tag-wrangling reality hit. folk.zone got announced and then almost immediately &lt;a href=&quot;https://brennan.day/choosing-friction-and-clear-skies-im-no-longer-using-cloudflare/&quot;&gt;paused&lt;/a&gt; so I could rip Cloudflare out of my stack on principle. When I build, hit a wall, and the wall becomes the post. Similarly, I wrote my first &lt;a href=&quot;http://plaintext.brennan.day/mea-culpa-when-somebody-writes-your-wrongs/&quot;&gt;Mea Culpa&lt;/a&gt; about my article on PKMs, the response of which recently &lt;a href=&quot;https://news.ycombinator.com/item?id=49084324&quot;&gt;hit the front page of Hacker News&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I&#39;ve been getting into Blogging Studies&lt;/strong&gt; (if you could call it that) &lt;a href=&quot;http://plaintext.brennan.day/compulsion-the-writers-who-wrote-the-most-in-history/&quot;&gt;&amp;quot;Compulsion&amp;quot;&lt;/a&gt; researches history&#39;s most obsessive writers, &lt;a href=&quot;http://plaintext.brennan.day/to-my-readers-what-do-you-want-to-see-more-of/&quot;&gt;&amp;quot;Blog Recollection&amp;quot;&lt;/a&gt; audits my own archive, &lt;a href=&quot;http://plaintext.brennan.day/every-commit-a-sentence-git-commit-messages-for-bloggers/&quot;&gt;Every Commit a Sentence&lt;/a&gt; rebuilds git conventions around blog work, and &lt;a href=&quot;http://plaintext.brennan.day/shake-off-the-dust/&quot;&gt;Shake Off the Dust&lt;/a&gt; diagnoses the rut.&lt;/p&gt;
&lt;p&gt;Reading this back, the itch looks less like a hunger for a new project and more like a hunger to narrate myself in real time, through whatever form is closest at hand. A build log, an interview, a second language, a eulogy, a diagnosis of my own habits. That really isn&#39;t an answer, but it is an interesting observation.&lt;/p&gt;
&lt;h2 id=&quot;animikii%2C-niiwin%2C-and-mukurtu&quot; tabindex=&quot;-1&quot;&gt;Animikii, Niiwin, and Mukurtu&lt;/h2&gt;
&lt;p&gt;I noticed something while reading about &lt;a href=&quot;https://animikii.com/&quot;&gt;Animikii&lt;/a&gt;. They&#39;re a Victoria-based, Indigenous-owned tech company that&#39;s been building things like Niiwin, a data-sovereignty platform, as well as the digital infrastructure behind the Witness Blanket archive. They&#39;re building the infrastructure necessary to answer the question: &lt;em&gt;How do we give what we owe each other?&lt;/em&gt; And this is why I&#39;ve been looking at Indigenous data work.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://fnigc.ca/ocap-training/&quot;&gt;OCAP(r)&lt;/a&gt;, which stands for Ownership, Control, Access, and Possession. A framework the First Nations Information Governance Centre formalized in 1998, meaning a Nation owns its own data collectively, deciding who accesses it and how. &lt;a href=&quot;https://mukurtu.org/&quot;&gt;Mukurtu&lt;/a&gt; is a free, open-source CMS built on Drupal and designed so communities can attach cultural protocols to archival material with specific permissions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firstvoices.com/&quot;&gt;FirstVoices&lt;/a&gt; is an open-source platform, Django and React under the hood, that&#39;s helped digitize reel-to-reel tapes of elders that had been sitting in basements. And the Gabriel Dumont Institute has &lt;a href=&quot;https://www.metismuseum.ca/michif-app/index.php&quot;&gt;Michif To Go&lt;/a&gt; and &lt;a href=&quot;https://play.google.com/store/apps/details?id=ca.metismuseum.northernmichif&amp;amp;hl=en_CA&quot;&gt;Northern Michif To Go&lt;/a&gt;, dictionary apps with audio pronunciation banked from Michif experts like Norman Fleury and Vince Ahenakew.&lt;/p&gt;
&lt;p&gt;These are important initiatives, and I definitely want to share them, but even these do not spark that passion and desire--and most importantly, compulsion--within me.&lt;/p&gt;
&lt;h2 id=&quot;yesterweb&quot; tabindex=&quot;-1&quot;&gt;Yesterweb&lt;/h2&gt;
&lt;p&gt;There&#39;s a page on the &lt;a href=&quot;https://indieweb.org/Yesterweb&quot;&gt;IndieWeb wiki&lt;/a&gt; and &lt;a href=&quot;https://wiki.melonland.net/yesterweb&quot;&gt;Melonland Wiki&lt;/a&gt; about &lt;a href=&quot;https://yesterweb.org/#summary&quot;&gt;Yesterweb&lt;/a&gt;, a community that I sadly didn&#39;t get a chance to join. It started in February 2021 as a small retro-web and hobbyist chat, the community expanded fast after an anti-web3 campaign later that same year.&lt;/p&gt;
&lt;p&gt;Organizers experienced severe fatigue trying to match community standards with volunteer capacities, they were building a social and philosophical apparatus around web nostalgia. A place people could share their manifestos. It grew fast and then buckled under the weight of the moderation and ideology work its own founders had designed for it, and it shut down on May 1st, 2023.&lt;/p&gt;
&lt;p&gt;At least, that&#39;s the typical story. It&#39;s actually quite a rabbit hole and &lt;a href=&quot;https://suboptimalism.neocities.org/writings/yesterweb&quot;&gt;this write-up&lt;/a&gt; is a good place to start. And I&#39;m sure some of my readers have a much better understanding of the community.&lt;/p&gt;
&lt;p&gt;I bring this up for a couple reasons. Everything we make, especially online, is finite, fragile, and mortal. Everything we will ever create are just &lt;a href=&quot;http://plaintext.brennan.day/ceremony/#part-five-sandcastles&quot;&gt;sandcastles that&#39;ll be eroded by the tides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Beyond this though, it is a little demoralizing to see a good thing collapse under its own weight, isn&#39;t it? The road to hell is always paved with good intentions. It&#39;s so hard to organize something important and meaningful without skepticism and in-fighting, or milkshake ducking. Sometimes it seems like the only alternative is to build something small enough that nobody gives enough of a fuck about to actively dismantle.&lt;/p&gt;
&lt;h2 id=&quot;conclusion%3F&quot; tabindex=&quot;-1&quot;&gt;Conclusion?&lt;/h2&gt;
&lt;p&gt;None of this helps me compass more towards an answer, though it does help me know what &lt;em&gt;isn&#39;t&lt;/em&gt; the answer. I suppose I just keep blogging, especially for this month. Maybe something will present itself, conjured by the act of writing and thinking out loud.&lt;/p&gt;
&lt;p&gt;All I know is I want to get my hands dirty. I want to apply overwhelming force. I want to keep moving forward.&lt;/p&gt;
&lt;p&gt;If you have an idea, drop it down in the comments, or in my guestbook, or email me.&lt;/p&gt;
</content>
	</entry>
</feed>
