<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>Adam DJ Brett</title>
  <subtitle>Adam DJ Brett, Ph.D. Decoding religion</subtitle>
  <link href="https://www.adamdjbrett.com/feed/feed.xml" rel="self" />
  <link href="https://www.adamdjbrett.com/" />
  <updated>2026-05-21T00:00:00Z</updated>
  <id>https://www.adamdjbrett.com/</id>
  <icon>/assets/img/logo.svg</icon>
  <author>
    <name>Adam DJ Brett</name>
  </author>
  <entry>
    <title>Catastrophic Christianity Is Now Available</title>
    <link href="https://www.adamdjbrett.com/blog/catastrophic-christianity/" />
    <updated>2026-05-21T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/catastrophic-christianity/</id>
    <content type="html">&lt;p&gt;I am pleased to share that my dissertation has now been published as a book: &lt;em&gt;Catastrophic Christianity: An Iconological Study of the Messianic Idea in American Protestant Christianity circa 1900--1940&lt;/em&gt;. The book is available now through DTL Press and can be purchased through &lt;a href=https://dtlcommons.org/product/catastrophic-christianity-brett/&gt;DTL Commons&lt;/a&gt; and &lt;a href=https://www.amazon.com/dp/B0GY8ZJLJG/&gt;Amazon&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href=https://www.adamdjbrett.com/assets/img/979-8-89731-285-6.jpg&gt;&lt;img alt=&quot;Art Deco black and gold style cover for Catastrophic Christianity&quot; src=https://www.adamdjbrett.com/assets/img/979-8-89731-285-6_tn.jpg&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=https://dtlcommons.org/product/catastrophic-christianity-brett/&gt;DTL Commons&lt;/a&gt; &lt;svg class=icon-svg&gt;&lt;use href=#fas-fa-up-right-from-square xlink:href=#fas-fa-up-right-from-square&gt;&lt;/use&gt;&lt;/svg&gt; or &lt;a href=https://www.amazon.com/dp/B0GY8ZJLJG/&gt;Amazon&lt;/a&gt; &lt;svg class=icon-svg&gt;&lt;use href=#fas-fa-up-right-from-square xlink:href=#fas-fa-up-right-from-square&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Catastrophic Christianity&lt;/em&gt; examines the messianic idea in &quot;America&quot; through early twentieth-century U.S. Protestant culture and popular media. The book traces how figures such as &lt;em&gt;The Fundamentals&lt;/em&gt;, Superman comic books, Bruce Barton&#39;s capitalist Christianity, and &lt;em&gt;The Wizard of Oz&lt;/em&gt; reveal two recurring ideological impulses: authoritarian-populism and catastrophic-utopianism. Together, these case studies show how messianism functions not only as a theological category, but as an iconological force shaping American religious, political, and cultural imagination.&lt;/p&gt;&lt;p&gt;This project began as my doctoral dissertation in the Department of Religion at Syracuse University, and I remain deeply grateful to the people who made it possible. Thank you to my spouse, Stephanie Wyatt, for her love, patience, and support throughout the long life of this project. Thank you to my good friend Betty Hill, née Lyons, whose friendship, insight, and work continue to shape how I think about religion, power, and responsibility. I am also grateful to my advisors, Zachary J. Braiterman and Philip P. Arnold, whose guidance at Syracuse University helped bring this project into being. Finally, thank you to Tom Phillips and DTL Press for publishing the book and helping make this work available to a wider public.&lt;/p&gt;&lt;p&gt;I am grateful that this work is now out in the world and available to readers interested in American Christianity, messianism, religion and popular culture, authoritarianism, and the religious imagination of catastrophe.&lt;/p&gt;&lt;p&gt;Purchase the book here: &lt;a href=https://dtlcommons.org/product/catastrophic-christianity-brett/&gt;DTL Commons&lt;/a&gt; &lt;svg class=icon-svg&gt;&lt;use href=#fas-fa-up-right-from-square xlink:href=#fas-fa-up-right-from-square&gt;&lt;/use&gt;&lt;/svg&gt; or &lt;a href=https://www.amazon.com/dp/B0GY8ZJLJG/&gt;Amazon&lt;/a&gt; &lt;svg class=icon-svg&gt;&lt;use href=#fas-fa-up-right-from-square xlink:href=#fas-fa-up-right-from-square&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/p&gt;&lt;h2 id=marc-records tabindex=-1&gt;MARC Records &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/catastrophic-christianity/#marc-records&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=https://www.adamdjbrett.com/assets/docs/catastrophic-christianity.mrc&gt;MARC Record&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.adamdjbrett.com/assets/docs/catastrophic-christianity.csl.json&gt;CSL JSON&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.adamdjbrett.com/assets/docs/catastrophic-christianity.ris&gt;RIS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>A Postscript: Sovereignty is Still the Issue</title>
    <link href="https://www.adamdjbrett.com/blog/postscript/" />
    <updated>2026-05-20T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/postscript/</id>
    <content type="html">&lt;h2 id=new-publication-a-postscript-sovereignty-is-still-the-issue tabindex=-1&gt;&lt;strong&gt;New Publication: &quot;A Postscript: Sovereignty Is Still the Issue&quot;&lt;/strong&gt; &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/postscript/#new-publication-a-postscript-sovereignty-is-still-the-issue&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I am pleased to share the publication of &quot;A Postscript: Sovereignty Is Still the Issue,&quot; co-authored with Betty Hill (Lyons) and Nethanial Belmont, in the &lt;a href=https://jcrt.org/&gt;Journal for Cultural and Religious Theory&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This article appears as part of JCRT 25.1 and reflects on the larger scholarly conversation generated by two special issues on domination, religion, law, Indigenous resistance, and the ongoing work of undoing Christian empire. In the postscript, we argue that sovereignty remains one of the most urgent questions for Indigenous studies, religious studies, and critical theory. Rather than treating sovereignty as a narrow legal category or as something granted through settler colonial recognition, we emphasize Indigenous sovereignty as lived, enacted, and grounded in land, language, traditional governance, and responsibilities to all living beings.&lt;/p&gt;&lt;p&gt;I am grateful to have worked alongside Betty Hill (Lyons) and Nethanial Belmont on this piece, and I am thankful for the many scholars, elders, teachers, and community leaders whose work continues to shape this conversation. The publication represents one part of an ongoing effort to think beyond the Doctrine of Christian Discovery toward healing, restoration, and the renewal of right relationships with one another and with Mother Earth.&lt;/p&gt;&lt;p&gt;Read the article here: &lt;a href=https://jcrt.org/archives/25.1/postscript/&gt;&quot;A Postscript: Sovereignty Is Still the Issue&quot;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Download the PDF here: &lt;a href=https://files.jcrt.org/archives/25.1/postscript.pdf&gt;PDF version&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Zettelkasten as a Mind Garden</title>
    <link href="https://www.adamdjbrett.com/blog/zettelkasten/" />
    <updated>2026-01-11T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/zettelkasten/</id>
    <content type="html">&lt;p&gt;It is not enough to read a text. Reading, by itself, too often leaves ideas inert—underlined passages fading into memory, PDFs piling up in folders never to be reopened. Learning begins when reading turns into thinking, and thinking turns into writing. For me, that transformation has long happened through a practice many of my students now encounter as the &lt;em&gt;Zettelkasten&lt;/em&gt;—what I like to call a &lt;em&gt;mind garden&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Each week in my courses, students are expected to take notes and write short reflections on what they read in textbooks, articles, podcasts, and other course materials. These reading logs are not busywork. They are tools for cultivating critical reading and thinking skills. Active reading requires sustained engagement with a text: asking questions, noticing patterns, identifying tensions, and making connections across ideas. When students participate in this kind of reading, comprehension deepens, learning becomes stickier, and the course itself becomes more intellectually alive. You move from being a passive recipient of information to an active curator of knowledge.&lt;/p&gt;&lt;p&gt;I still use reading logs myself. My own notes usually begin with the name of the piece and a short summary written in my own words. I add hashtags to help me rediscover ideas later, especially across projects and years. I include quotations that strike me as generative—phrases I know I will want to return to in future writing or teaching. Over time, these notes form a dense web of ideas rather than a linear archive. When I sit down to write, I am rarely starting from nothing; I am entering a conversation I have already been having with myself for years.&lt;/p&gt;&lt;p&gt;This practice is inspired by the sociologist Niklas Luhmann, whose &lt;em&gt;Zettelkasten&lt;/em&gt;—literally “slip box”—has become famous for its role in supporting an astonishingly productive scholarly life. Luhmann wrote short, self-contained notes, each focused on a single idea, and linked them together through references and keywords. The power of the system was not in any single note, but in the relationships between them. Ideas collided, cross-pollinated, and produced unexpected insights. Writing, for Luhmann, was not the final step of thinking; it was the continuation of thinking by other means.&lt;/p&gt;&lt;p&gt;That is why I describe the &lt;em&gt;Zettelkasten&lt;/em&gt; as a mind garden. Each note is a seed. Some grow quickly into sturdy trees—arguments, essays, lectures, podcasts. Others remain dormant for years until the right conditions bring them back to life. Connections between notes act as nutrients, helping ideas flourish in unexpected ways. The goal is not perfection or polish, but steady, thoughtful cultivation. Short, simple notes written consistently over time can support excellence in both thinking and writing.&lt;/p&gt;&lt;p&gt;In my classes, I am not expecting students to create public-facing digital gardens or elaborate knowledge management systems. What I &lt;em&gt;am&lt;/em&gt; asking is that they practice the habit of weekly note-making: slowing down, reflecting critically, and learning to trust that small intellectual investments compound over time. A well-kept reading log becomes the backbone of future assignments, especially larger projects like podcasts or research essays. More importantly, it becomes a companion—something students can carry with them beyond a single semester.&lt;/p&gt;&lt;p&gt;The tools and resources below offer excellent entry points into the &lt;em&gt;Zettelkasten&lt;/em&gt; tradition and its contemporary adaptations. Whether you are a student, a scholar, or simply someone trying to think more carefully in a noisy world, the invitation is the same: tend your mind as a garden. Read attentively. Write regularly. Let ideas grow together.&lt;/p&gt;&lt;hr&gt;&lt;h2 id=resources tabindex=-1&gt;Resources &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/zettelkasten/#resources&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mental Nodes&lt;/strong&gt; – &lt;em&gt;A Gardening Guide for Your Mind&lt;/em&gt;&lt;br&gt; https://www.mentalnodes.com/a-gardening-guide-for-your-mind&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Schmidt, J. F. (2018). &lt;em&gt;Niklas Luhmann&#39;s Card Index: The Fabrication of Serendipity.&lt;/em&gt;&lt;br&gt; &lt;em&gt;Sociologica&lt;/em&gt;, 12(1), 53–60. https://doi.org/10.6092/issn.1971-8853/8350&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sönke Ahrens&lt;/strong&gt;, &lt;em&gt;Take Smart Notes&lt;/em&gt;&lt;br&gt; https://www.soenkeahrens.de/en/takesmartnotes#zettelkasten-en&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zettelkasten Method – Overview&lt;/strong&gt;&lt;br&gt; https://zettelkasten.de/overview/&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>Examining the Doctrine of Discovery in Religion and Indigenous Studies</title>
    <link href="https://www.adamdjbrett.com/blog/2025-12-31-examining-doctrine-of-discovery/" />
    <updated>2025-12-30T15:15:34Z</updated>
    <id>https://www.adamdjbrett.com/blog/2025-12-31-examining-doctrine-of-discovery/</id>
    <content type="html">&lt;h2 id=abstract tabindex=-1&gt;Abstract &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-31-examining-doctrine-of-discovery/#abstract&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Since the publication of &lt;em&gt;Pagans in the Promised Land&lt;/em&gt; by Steven T. Newcomb (Shawnee/Lenape), scholarship on the Doctrine of Discovery has expanded significantly as a central issue in Indigenous law and politics. However, its implications remain underexamined in Religious Studies, Indigenous Studies, and legal scholarship. This article analyzes the matrix of enslavement, exploitation, and extraction that Newcomb identifies within settler-colonial systems and examines how scholars in Religious Studies, Legal Studies, and Indigenous Studies have engaged with the Doctrine of Discovery. Situating the Doctrine of Discovery within the broader analytical frameworks of enslavement, systemic violence, and religious imperialism reveals its deep entanglement with historic and legal structures of oppression. Examining its intersections with Religious Studies and postcolonial scholarship uncover how white Christian hegemony maintains its dominion and exposes the fragility of any perceived boundary between church and state.&lt;/p&gt;&lt;h2 id=citation tabindex=-1&gt;Citation &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-31-examining-doctrine-of-discovery/#citation&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Brett, Adam D. J., and Betty Hill. 2026. “ Examining the Doctrine of Discovery in Religion and Indigenous Studies,” &lt;em&gt;Religion Compass&lt;/em&gt;: e70039. &lt;a href=https://doi.org/10.1111/rec3.70039&gt;https://doi.org/10.1111/rec3.70039&lt;/a&gt;.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>How I fixed an 11ty performance error that caused my build time to be seven minutes</title>
    <link href="https://www.adamdjbrett.com/blog/2025-12-16-eleventy-build-times/" />
    <updated>2025-12-16T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/2025-12-16-eleventy-build-times/</id>
    <content type="html">&lt;p&gt;Inspired by the &lt;a href=https://11tymeetup.dev/&gt;11tymeetup&lt;/a&gt;, I decided to add a &lt;a href=https://www.adamdjbrett.com/blogroll&gt;blogroll&lt;/a&gt;. I followed the suggestions in various tutorials; however, I forgot to include &lt;a href=https://www.11ty.dev/docs/plugins/fetch/&gt;11ty fetch&lt;/a&gt;. Satisfied, I ran my build, and I was horrified when my build time was a whopping 7 minutes!!!&lt;/p&gt;&lt;h2 id=what-changed tabindex=-1&gt;What changed &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-16-eleventy-build-times/#what-changed&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Knowing I needed to make immediate changes to make the site leaner and faster, I made the following changes using the fetch plugin and &lt;a href=https://www.11ty.dev/docs/deployment/#using-netlify-plugin-cache-to-persist-cache&gt;Netlify&#39;s persistent cache across deploys&lt;/a&gt;. It wasn&#39;t until halfway through making changes that I started writing down the changes to remember in case I make this mistake again in the future.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Faster blogroll&lt;/strong&gt; – Rewrote the blogroll data loader to use &lt;a href=https://www.11ty.dev/docs/plugins/fetch/&gt;Eleventy Fetch&lt;/a&gt; so RSS/Atom responses are cached to &lt;code&gt;.cache/blogroll&lt;/code&gt;. The fetcher now logs how long it takes to hydrate the list and skips network calls during &lt;code&gt;FAST_BUILD=true&lt;/code&gt; runs.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Cache persistence&lt;/strong&gt; – Enabled &lt;code&gt;netlify-plugin-cache&lt;/code&gt; in &lt;code&gt;netlify.toml&lt;/code&gt; so deploys reuse the &lt;code&gt;.cache&lt;/code&gt; directory. No more re-downloading dozens of feeds on every publish.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Node 22 + File polyfill&lt;/strong&gt; – Bumped the toolchain to Node 22, added an &lt;code&gt;.nvmrc&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.raymondcamden.com/2025/04/30/a-test-of-eleventy-fetch&gt;Thanks to Raymond Camden&#39;s posts on Eleventy Fetch,&lt;/a&gt; I realized my approach to 11ty fetch was far too hacky, and I needed something faster and lightweight, so I followed his recommendations.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Order of Build Operations&lt;/strong&gt; – Tag archive generation now skips the blogroll, minification and purgeCSS now happen before pagefind.app.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;These changes brought my build time down from the horrific high of seven minutes to 1.6 seconds on my machine and 37 seconds on Netlify.&lt;/p&gt;&lt;p&gt;Having made these changes, I realized that I still had one more change to make, and that is to make sure my sitmap, feed, and tag collections exclude /blogroll/ and feed endpoints. I did this by making sure the sitemap template ignores pages whose permalink is &lt;code&gt;false&lt;/code&gt; and this keeps the invalid URLs at bay.&lt;/p&gt;&lt;h2 id=other-changes tabindex=-1&gt;Other changes &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-16-eleventy-build-times/#other-changes&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I also made some tweaks to speed up my local development.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Quicker feedback loops&lt;/strong&gt;: With &lt;code&gt;FAST_BUILD=true&lt;/code&gt;, the dev server spins up without waiting for purgeCSS, pagefind, or the blogroll fetch queue.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;More resilient deploys&lt;/strong&gt;: Netlify&#39;s cache keeps the pre-fetched feed responses and avoids hammering partner sites or rate-limiting APIs.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=next-steps tabindex=-1&gt;Next Steps &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-16-eleventy-build-times/#next-steps&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Node Versions&lt;/strong&gt;: The most recent Node version I can run on Netlify is Node 22, but Node is on versions 24 and 25, so I am making a note to watch Node versions and make sure my sites are on Node 24/25 as soon as they can be to keep future errors to a minimum.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Feed Errors&lt;/strong&gt; Figure out what Apple Podcasts in my blogroll feed have valid XML but are logging parsing errors.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Pagefind.app and purgeCSS&lt;/strong&gt;. I think I am doing something wrong, but everything is working for now, so it&#39;s my problem now. I definitely need to explore running pagefind and purgeCSS in parallel once heavy builds are re-enabled.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you are a newbie to Elveventy like me, I hope this is helpful but mostly this post is for future me.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Announcing a new 11ty Shortlink and QR Code Generator purl.im</title>
    <link href="https://www.adamdjbrett.com/blog/2025-12-15-eleventy-shortlinks-qr-code-purl/" />
    <updated>2025-12-15T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/2025-12-15-eleventy-shortlinks-qr-code-purl/</id>
    <content type="html">&lt;h2 id=announcing-a-new-11ty-shortlink-and-qr-code-generator-purl-im tabindex=-1&gt;Announcing a new 11ty Shortlink and QR Code Generator: &lt;a href=https://purl.im&gt;purl.im&lt;/a&gt; &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-15-eleventy-shortlinks-qr-code-purl/#announcing-a-new-11ty-shortlink-and-qr-code-generator-purl-im&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Ever since the originary essay, I have been firmly committed to the philosophy of &lt;a href=https://indieweb.org/A_Domain_of_One%27s_Own&gt;A Domain of One&#39;s Own (DoOO)&lt;/a&gt; (&lt;a href=https://www.adamdjbrett.com/blog/2024-11-22-why-scholars-should-own-their-online-presence/&gt;see a previous post&lt;/a&gt;). Even before the concept came around, I had too many domain names and was encouraging others to have their own sites as well. One of the central problems with having your own site has been the walled gardens of social media. Getting people to leave the walled gardens of social media, stop scrolling, and read/watch/listen to human-crafted information remains a serious problem. Some ways around this have been &quot;link in bio&quot; and short links. The issues with these tools are that they tend to be yet another big tech walled garden. My friend &lt;a href=https://eileencampbellreed.org/&gt;Eileen Campbell-Reed&lt;/a&gt;, in her book &lt;em&gt;&lt;a href=&quot;https://bookshop.org/p/books/pastoral-imagination-bringing-the-practice-of-ministry-to-life-eileen-r-campbell-reed/9db03535934f6de8?ean=9781506470061&amp;next=t&amp;&quot;&gt;Pastoral Imagination&lt;/a&gt;,&lt;/em&gt; used her own custom link shortener that I helped her set up. This link shortener has worked great for easily typeable URLs for readers of the book and has allowed her to stop link rot in the book by updating the short links whenever links change (big shout-out to the internet&#39;s best friend, archive.org). Link rot is sadly a problem that is not going away soon. As link shorteners like goo.gl are being phased out and authors move between web frameworks and Content management systems, these problems persist.&lt;/p&gt;&lt;h3 id=a-shortlink-qr-code-combo tabindex=-1&gt;A Shortlink/QR code combo &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-15-eleventy-shortlinks-qr-code-purl/#a-shortlink-qr-code-combo&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Working with Eileen helped me to see the ease of using a &lt;a href=https://indieweb.org/A_Domain_of_One%27s_Own&gt;DoOO&lt;/a&gt; for your own shortlink system; likewise, working with activists and organizers has taught me the frustration and limits of services like TinyURL and Bit.ly, where the shortlinks get increasingly convoluted to type. These issues led me to search for a solution. I wanted to find a self-hosted shortlink and QR code solution that was lightweight, easy to use and deploy, and, of course, open source. Netlify provides a super simple way to shorten links; however, I also wanted to be able to automatically generate QR codes for the shortlinks because if I need one, I will need the other. After asking around on Mastodon and Discord, I found two outstanding projects that I combined to make this project.  By the powers of &lt;a href=https://github.com/nhoizey/1y&gt;1y&lt;/a&gt; and &lt;a href=https://github.com/philhawksworth/findthat.at&gt;findth.At&lt;/a&gt;, I give you Frankenstein&#39;s Monster. The goal of this project was two-fold: first, to see if I could combine two of my favorite open-source projects into one, and second, to create a useful link shortener and QR code generator for my colleagues and me to use---my deepest gratitude and apologies to everyone involved. &lt;a href=https://github.com/nhoizey&gt;@Nhoizey&lt;/a&gt; and &lt;a href=https://github.com/philhawksworth&gt;@philhawksworth&lt;/a&gt;, you are both brilliant and incredible web developers. Thank you for shipping such outstanding open-source projects.&lt;/p&gt;&lt;h3 id=the-tech-stack-of-purl-im tabindex=-1&gt;The tech stack of &lt;a href=https://purl.im&gt;purl.im&lt;/a&gt; &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-15-eleventy-shortlinks-qr-code-purl/#the-tech-stack-of-purl-im&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Under the hood, &lt;a href=https://purl.im&gt;purl.im&lt;/a&gt; is:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=https://11ty.dev&gt;&lt;strong&gt;Built with 11ty&lt;/strong&gt;&lt;/a&gt; for a fast, static site workflow&lt;/li&gt;&lt;li&gt;&lt;a href=https://xmit.co&gt;&lt;strong&gt;Hosted on xmit&lt;/strong&gt; (xmit.co)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://pagescms.org&gt;&lt;strong&gt;Managed with Pages CMS&lt;/strong&gt; (pagescms.org)&lt;/a&gt; for easy shortlink creation&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The result is a link shortener and QR code generator that I can confidently share with colleagues, knowing it won&#39;t go anywhere as long as I maintain my domain.&lt;/p&gt;&lt;p&gt;I decided not to use Netlify or Decap at this time because I have concerns about Netlify&#39;s new pricing model and did not want to receive a large surprise bill. On the 11ty Discord and Mastodon, people speak highly of Pages CMS&#39;s ease of use. Using and implementing Pages CMS was relatively easy. It did take me a while to figure out how to prevent pages from automatically appending a date to the markdown files, but after I solved that issue, it has been relatively smooth sailing. My one remaining problem with Pages is that it has been very confusing for non-technical users to log in. My next task is to create a help document outlining the workflow for &lt;a href=https://purl.im&gt;purl.im&lt;/a&gt; and the Pages CMS.&lt;/p&gt;&lt;h3 id=roll-out tabindex=-1&gt;Roll out &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-15-eleventy-shortlinks-qr-code-purl/#roll-out&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Presently, I have implemented &lt;a href=https://purl.im&gt;purl.im&lt;/a&gt; on the following sites:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=https://brett.im&gt;brett.im&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://aila.li&gt;aila.li&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://dofd.fyi&gt;dofd.fyi&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>United Lutheran Seminary to host &#39;A Vision for Liberating Our Democracy&#39; Conference, February 27–28</title>
    <link href="https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/" />
    <updated>2025-12-04T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/</id>
    <content type="html">&lt;h2 id=united-lutheran-seminary-to-host-a-vision-for-liberating-our-democracy-conference-february-27-28-2026 tabindex=-1&gt;United Lutheran Seminary to Host &quot;A Vision for Liberating Our Democracy&quot; Conference, February 27--28, 2026 &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/#united-lutheran-seminary-to-host-a-vision-for-liberating-our-democracy-conference-february-27-28-2026&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=two-day-gathering-will-explore-the-religious-and-racialized-roots-of-american-democracy-and-paths-toward-a-more-just-future tabindex=-1&gt;Two-day gathering will explore the religious and racialized roots of American democracy and paths toward a more just future. &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/#two-day-gathering-will-explore-the-religious-and-racialized-roots-of-american-democracy-and-paths-toward-a-more-just-future&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;United Lutheran Seminary (ULS) will host A Vision for Liberating Our Democracy: Examining the Religious and Racialized Roots of American Democracy on February 27--28, 2026, at its Philadelphia campus. The interdisciplinary conference will bring together scholars, activists, educators, and faith leaders to examine how religion and race have shaped democratic life in the United States and to explore liberative visions for the future.&lt;/p&gt;&lt;p&gt;The conference builds on a growing body of research that examines the theological, cultural, and political intersections of democracy, citizenship, and power. Participants will investigate how worldviews and faith traditions have informed concepts of governance, belonging, and personhood from the founding era to the present. The conference will highlight not only the Haudenosaunee Influence on American Democracy but also the historic and present contributions to Democratic thought by Black, Indigenous, and Latine communities, contributions which are often forgotten and ignored.&lt;/p&gt;&lt;p&gt;&quot;As America&#39;s oldest Lutheran seminary, founded by an antislavery theologian 200 years ago in Gettysburg on land that was to become part of the Civil War&#39;s greatest battlefield, United Lutheran Seminary has always been part of the nation&#39;s conversation on race and freedom,&quot; said the Rev. Dr. R. Guy Erwin (Osage Nation), ULS president. &quot;The Lutheran heritage of freedom of conscience and its emphasis on serving the common good draw us always from faith toward action. With this conference, our Seminary returns to the center of our current national debates.&quot;&lt;/p&gt;&lt;p&gt;Dean Teresa L. Smallwood said, &quot;The American context is ripe for a time of reflection on the concept of democracy. &quot;We the People&quot; must evaluate our democratic commitments as we witness our nation entering a period of structural erosion. It is felt across all pockets of the nation. Have we redefined the governance schemata such that democracy is literally on life support? Do we continue to believe in the checks and balances of government? Is America a bastion for equality or have we reordered our commitments as a nation? These are some of the questions we must wrestle with at this conference.&quot;&lt;/p&gt;&lt;p&gt;&quot;United Lutheran Seminary is committed to fostering public conversations about the moral and historical foundations of democracy,&quot; said the conference organizing committee member Adam DJ Brett. &quot;By examining the ways religion and race intertwine with political life, we can better imagine inclusive and equitable systems of governance.&quot;&lt;/p&gt;&lt;h3 id=featured-speakers tabindex=-1&gt;&lt;strong&gt;Featured Speakers&lt;/strong&gt; &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/#featured-speakers&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The conference will feature exciting plenary addresses by:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=https://civilrights.org/about/our-staff/maya-wiley/&gt;Maya D. Wiley&lt;/a&gt;, President and CEO of Leadership Conference on Civil and Human Rights&lt;/li&gt;&lt;li&gt;&lt;a href=https://soulforce.org/alba/&gt;Rev. Alba Onofrio&lt;/a&gt; (Reverend Sex), Executive Director of Soulforce&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.morgan.edu/institute-for-urban-research/about/our-team/raymond-winbush&gt;Dr. Raymond Winbush&lt;/a&gt;, Research Professor and the Director of the Institute for Urban Research, Morgan State University&lt;/li&gt;&lt;li&gt;&lt;a href=https://bst.edu/people/joseph-evans/&gt;Rev. Dr. Joseph Evans&lt;/a&gt;, The J. Alfred Smith, Senior Professor of Theology in the Public Square Director at Berkeley School of Theology&lt;/li&gt;&lt;li&gt;&lt;a href=https://law.rutgers.edu/brandon-paradise&gt;Brandon Paradise&lt;/a&gt;, Associate Professor of Law and Professor Dallas Willard Scholar at Rutgers Law School&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.doubleloveexperience.org/thewilkes&gt;Rev. Dr. Gabby Cudjoe Wilkes&lt;/a&gt;, Pastor of The Double Love Experience Church&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.cnyhistory.org/wp-content/themes/oha/press/2015-10-11-55-SH.pdf&gt;Tadodaho Sidney Hill&lt;/a&gt; of the Haudenosaunee Confederacy&lt;/li&gt;&lt;li&gt;&lt;a href=https://aila.ngo/staff-and-board/&gt;Betty Hill (Lyons)&lt;/a&gt;, (Onondaga Nation, Snipe Clan), Executive Director of the American Indian Law Alliance&lt;/li&gt;&lt;li&gt;&lt;a href=https://thechavischronicles.com/about/&gt;Rev. Dr. Benjamin F. Chavis, Jr&lt;/a&gt;., President and CEO of the National Newspaper Publishers Association (NNPA): The Black Press of America.&lt;/li&gt;&lt;li&gt;&lt;a href=https://politicalresearch.org/bio/rev-naomi-washington-leapheart&gt;Rev. Naomi Washington-Leapheart&lt;/a&gt;, Strategic Partnerships Director, Political Research Associates&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.feedingamerica.org/research/equity-research-fellow&gt;Rev. Dr. Yvette R. Blair-Lavallais&lt;/a&gt;, Equity Research Fellow for Feeding America and Professor at Memphis Theological Seminary&lt;/li&gt;&lt;li&gt;&lt;a href=https://religion.columbia.edu/content/obery-m-hendricks&gt;Rev .Dr. Obery M. Hendricks, Jr.&lt;/a&gt;, Visiting Scholar, Departments of Religion &amp; African and African Diaspora Studies at Columbia University&lt;/li&gt;&lt;li&gt;&lt;a href=https://sdpconference.info/news-and-highlights/leadership-transition&gt;Rev. Damien C. Durr&lt;/a&gt;, General Secretary of the Proctor Conference&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=call-for-papers-the-organizing-committee-invites-papers-on-the-following-topics-to-be-covered-during-exploring-religion-race-and-democracy tabindex=-1&gt;&lt;strong&gt;Call for Papers - The organizing committee invites papers on the following Topics to Be Covered During Exploring Religion, Race, and Democracy:&lt;/strong&gt; &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/#call-for-papers-the-organizing-committee-invites-papers-on-the-following-topics-to-be-covered-during-exploring-religion-race-and-democracy&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;The Middle Passage, The Mid-Atlantic Slave Trade, Maa&#39;afa&lt;/li&gt;&lt;li&gt;The Continental Congress and the Balance of Power&lt;/li&gt;&lt;li&gt;The Haudenosaunee Influence on American Democracy&lt;/li&gt;&lt;li&gt;E.B. Du Bois and the Black Reconstruction of Democracy&lt;/li&gt;&lt;li&gt;The Doctrine of Discovery and settler colonial foundations&lt;/li&gt;&lt;li&gt;White Christian nationalism and the myth of civil religion&lt;/li&gt;&lt;li&gt;Religion, race, and legal personhood&lt;/li&gt;&lt;li&gt;Religion and resistance in Black, Indigenous, Latine, and immigrant communities&lt;/li&gt;&lt;li&gt;Race, religion, and the media in shaping democratic narratives&lt;/li&gt;&lt;li&gt;Womanist, Feminist, and Mujerista Methodologies&lt;/li&gt;&lt;li&gt;Foreign Policy and Human Crises&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=submission-information tabindex=-1&gt;&lt;strong&gt;Submission Information&lt;/strong&gt; &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/#submission-information&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The organizing committee invites proposals for papers, panel discussions, roundtables, and creative presentations. Submissions from scholars at all career stages, including graduate students and early-career researchers, are encouraged. We are open to presentations from independent scholars as well.&lt;/p&gt;&lt;p&gt;The program will also include undergraduate poster sessions, graduate student panels, and live podcast recordings designed for classroom and public scholarship use. Following the event, an open-access journal volume will publish selected presentations.&lt;/p&gt;&lt;p&gt;Proposals should include a 300-word abstract and a 100-word biography. The submission deadline is January 15, 2025. Proposals may be sent to &lt;a href=mailto:abrett@uls.edu&gt;abrett@uls.edu&lt;/a&gt;.&lt;/p&gt;&lt;h3 id=event-details tabindex=-1&gt;&lt;strong&gt;Event Details&lt;/strong&gt; &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-12-04-uls-democracy/#event-details&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Conference: A Vision for Liberating Our Democracy: Examining the Religious and Racialized Roots of American Democracy&lt;/li&gt;&lt;li&gt;Dates: February 27--28, 2026&lt;/li&gt;&lt;li&gt;Location: United Lutheran Seminary, 7301 Germantown Avenue, Philadelphia, PA 19119&lt;/li&gt;&lt;li&gt;Submission Deadline: January 15, 2025&lt;/li&gt;&lt;li&gt;Contact: Adam DJ Brett, &lt;a href=mailto:abrett@uls.edu&gt;abrett@uls.edu&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <title>Embracing #nocode &amp; creating a website with Carrd</title>
    <link href="https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/" />
    <updated>2025-11-30T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/</id>
    <content type="html">&lt;h2 id=why-scholars-should-build-their-own-site-with-indieweb-carrd tabindex=-1&gt;Why Scholars Should Build Their Own Site with IndieWeb + Carrd &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/#why-scholars-should-build-their-own-site-with-indieweb-carrd&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As social media platfoms move more and more towards being walled gardens with ever shifting policies and AI creep opting out of these platforms takes on a new sense of urgency. For graduate students, contigent faculty, tenure track faculty, and independent scholars having a webpresence that does not rely on a university becomes increasingly vital.&lt;/p&gt;&lt;p&gt;My personal theory is that as we see more AI creep and the decrease in search enginges abilities to return meaningful results there is going to be a resurgent interest in directories and individual webpages, in short the 90s are back this time out of necessity not nostalgia. I believe that scholars still need a stable, independent home on the web --- and that&#39;s exactly what the IndieWeb and no-code tools like Carrd make possible.&lt;/p&gt;&lt;h3 id=your-scholarly-identity-deserves-a-real-home-not-a-silo tabindex=-1&gt;Your scholarly identity deserves a real home, not a silo &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/#your-scholarly-identity-deserves-a-real-home-not-a-silo&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The IndieWeb isn&#39;t a fad or a niche movement --- it&#39;s a philosophy: personal websites, on your own domain, as your primary online identity. It champions owning your content, not renting your presence from algorithmic platforms. (&lt;a href=https://indieweb.org/IndieWeb&gt;indieweb.org&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;For a scholar, that means instead of relying on fragmented, institutionally-controlled pages or transient social media profiles, you have a stable digital &quot;room of your own.&quot; As many have argued, academics benefit greatly from such personal websites --- they offer a space for your CV, publications, syllabi, reflections, teaching philosophy, blog posts, and more. (&lt;a href=https://www.insidehighered.com/digital-learning/views/2017/09/27/academics-need-develop-digital-presence-support-their-work&gt;Inside Higher Ed&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Your domain becomes a durable digital identity --- one that you control regardless of where life or your institution takes you. As one recent post noted, a custom domain &quot;signals authority and permanence&quot; (&lt;a href=https://www.adamdjbrett.com/blog/2024-11-22-why-scholars-should-own-their-online-presence/&gt;adamdjbrett.com&lt;/a&gt;).&lt;/p&gt;&lt;h3 id=2-indieweb-no-code-low-friction-high-control tabindex=-1&gt;💡 2. IndieWeb + &quot;no-code&quot; = low friction, high control &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/#2-indieweb-no-code-low-friction-high-control&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;If you&#39;re not a developer --- or simply very busy with teaching and research --- the technical overhead of building and maintaining a website can feel daunting. That&#39;s where no-code tools like Carrd really shine.&lt;/p&gt;&lt;p&gt;Carrd lets you create clean, professional, responsive sites in minutes --- no coding required. As highlighted in &quot;Why Carrd.co Is the Best Platform for Simple, Responsive One-Page Sites,&quot; Carrd is ideal when what you need is a quick, budget-friendly online presence that still looks polished and professional. I have written on this topic previously, (&lt;a href=https://www.adamdjbrett.com/blog/2024-12-12-why-i-love-carrd-discount-code/&gt;&quot;Why Carrd.co Is the Best Platform for Simple, Responsive One-Page Sites, with Discount Code&quot;&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;For many academics, a simple one-page site --- with links to your CV, publication list, contact info, maybe a short bio or blog feed --- may be all you need. And Carrd gives you just that: minimal hassle, full control, and a site that works on any device. Virginia Woolf was right you need a room of ones one and a domain of one&#39;s own, (&lt;a href=https://www.adamdjbrett.com/blog/2024-11-22-why-scholars-should-own-their-online-presence/&gt;&quot;Why Scholars Should Own Their Online Presence&quot;&lt;/a&gt;).&lt;/p&gt;&lt;h3 id=a-personal-website-becomes-your-anchor-and-your-networked-hub tabindex=-1&gt;A personal website becomes your anchor --- and your &quot;networked&quot; hub &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/#a-personal-website-becomes-your-anchor-and-your-networked-hub&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;When you own your site, you also determine how and where your content lives. A personal academic website can become a central hub: a place to house your scholarship, teaching resources, blog reflections, syllabi, podcasts, and more. You can link to social media, preprints, press coverage --- whatever represents your work --- on your terms (&lt;a href=https://bastian.rieck.me/blog/2019/personal_website/&gt;bastian.rieck.me&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Moreover, the IndieWeb encourages not just ownership but connection: by using its open-web standards, your site can participate in decentralized conversations, syndicate posts, and stay compatible with long-term web culture built on openness, not walled gardens (&lt;a href=https://indieweb.org/IndieWeb&gt;indieweb.org&lt;/a&gt;).&lt;/p&gt;&lt;h3 id=for-scholars-especially-those-in-humanities-and-theology-nuance-and-control-matter tabindex=-1&gt;For scholars --- especially those in humanities and theology --- nuance and control matter &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/#for-scholars-especially-those-in-humanities-and-theology-nuance-and-control-matter&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;As someone teaching courses working broadly in the &quot;Digital Humanities (???)&quot;, I am increasingly concerned about how quickly and easily trendy and popular platforms fade in and out of existence. A personal site gives you the flexibility to curate how your work is presented: syllabi, lecture notes, reading lists, public resources, multimedia, etc.&lt;/p&gt;&lt;h3 id=diy-vs-nocode tabindex=-1&gt;DIY vs #NoCode &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/#diy-vs-nocode&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I love building things for the web which is why I love and have built so many websites and projects with &lt;a href=https://11ty.dev&gt;11ty&lt;/a&gt;. While I believe that building and making your own site from scratch is not only doable but also fun! I realize that most other people have a very diffent definition of fund and hobbies and this is where high quality exportable #nocode tools like Carrd come into the piecture.&lt;/p&gt;&lt;h3 id=low-cost-easy-setup-minimal-barrier-to-entry tabindex=-1&gt;Low cost + easy setup = minimal barrier to entry &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/2025-11-30-scholars-indieweb-carrd/#low-cost-easy-setup-minimal-barrier-to-entry&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;With Carrd, you don&#39;t need to invest in complex hosting, themes, or devops. As the post &quot;Why Carrd.co Is the Best Platform...&quot; explains, you can get a polished site for just ~$19/year with the Pro plan --- cheap, accessible, and sustainable (&lt;a href=https://www.adamdjbrett.com/blog/2024-12-12-why-i-love-carrd-discount-code/&gt;adamdjbrett.com&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;If you want to experiment --- maybe a simple homepage, a pointer to a CV, a short blog --- it&#39;s an easy &quot;first step&quot; into the IndieWeb universe without committing to heavy website infrastructure.&lt;/p&gt;&lt;p&gt;🔗 Want to explore more? &lt;a href=https://try.carrd.co/adjb&gt;try.carrd&lt;/a&gt;. If you sign up using this &lt;a href=https://try.carrd.co/adjb&gt;discount code you can save 40%&lt;/a&gt;.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;P.S. I never know exactly how to write for the web. Do you like the parenehttical footnote style hyperlinks I did here or do you want a more traditional web forward style where I link relevant text? I prefer the ladder.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Deploying an Eleventy Site to XMIT using GitHub Actions</title>
    <link href="https://www.adamdjbrett.com/blog/deploying-eleventy-xmit/" />
    <updated>2025-11-29T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/deploying-eleventy-xmit/</id>
    <content type="html">&lt;h2 id=overview tabindex=-1&gt;Overview &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/deploying-eleventy-xmit/#overview&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Thanks to the wonderful &lt;a href=https://hcommons.social/tags/11ty&gt;#11ty&lt;/a&gt; and &lt;a href=https://hcommons.social/tags/webdev&gt;#webdev&lt;/a&gt; communities on Mastodon, I interacted with &lt;a href=https://pcarrier.com/&gt;Pierre Carrier&lt;/a&gt; and learned about his great free web hosting project, &lt;a href=https://xmit.co&gt;xmit.co&lt;/a&gt;. To test it out, I migrated one website from an old shared hosting server and some others from Netlify. In both cases, moving to XMIT was easy.&lt;/p&gt;&lt;p&gt;As Pierre explained recently on Discord, the whole project is super small and minimalistic, taking a direct path from vision to inception. Wednesday, November 19&lt;sup&gt;th&lt;/sup&gt;, He shared this on Discord. Look how beautiful small xmit&#39;s production codebase is:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;pcarrier@dog /s/xmit.co (main) [124]&gt; tokei src
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Language              Files        Lines         Code     Comments       Blanks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 CSS                       1          241          201            0           40
 TSX                      11         2040         1951            1           88
 TypeScript                2           23           19            1            3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Total                    14         2304         2171            2          131
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I appreciate the minimalist/brutalist style of the project, even if it was rather disorienting to come from a fancy VC-backed host to something much more raw and independent. Personally, I love being back here amongst the &lt;a href=https://hcommons.social/tags/indieweb&gt;#indieweb&lt;/a&gt; community and living with the ethos of early web development with modern tools.&lt;/p&gt;&lt;h2 id=setup tabindex=-1&gt;Setup &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/deploying-eleventy-xmit/#setup&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;First, I signed up for an account over at &lt;a href=https://xmit.co/&gt;xmit.com&lt;/a&gt; and then I started exploring the user interface.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;img alt=&quot;xmit admin screenshot&quot; src=https://www.adamdjbrett.com/assets/img/xmit/xmit-admin.png&gt;&lt;/p&gt;&lt;ol start=2&gt;&lt;li&gt;As you can see from the screenshot above, the interface is no frills. &lt;ol&gt;&lt;li&gt;Once you are logged in, please add a recovery email and phone number&lt;/li&gt;&lt;li&gt;Next, you will need to decide whether you want to bring your own domain or use one of the two included subdomains. If you are going to bring your own domain, follow &lt;a href=https://xmit.co/docs&gt;this helpful guide in the docs&lt;/a&gt;. &lt;ol&gt;&lt;li&gt;&lt;p&gt;Make sure your domain registrar allows you to use ANAME/ALIAS records. Then you will create an ANAME record for your team number at xmit.co. My team number is 268, so I will replace 42 in the examples below with my team number. The examples Pierre gives are repeated below&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;  	@ CNAME 42.xmit.co.  	* CNAME 42.xmit.co.  	&lt;/code&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;I found it very easy to create ANAME/ALIAS and CNAME records with the appropriate info, super easy. Personally, I went for the combo of an @ and a www. record for my domain names. &lt;strong&gt;One important note here is that you will need two records.&lt;/strong&gt;. I had to go back and create &lt;a href=https://www.xmit.000000076.xyz/&gt;www.xmit.000000076.xyz&lt;/a&gt; to get my sites working.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;For good measure, don&#39;t forget to also create the TXT record with your team number &lt;code&gt;@ TXT &quot;xmit=42&quot;&lt;/code&gt; or in my case 268.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;If you decided to use one of the two included subdomains, you can skip these steps.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Then, in your team marked by the 🏭 factory emoji, create your API keys. These are the keys you will use to deploy your site.&lt;/li&gt;&lt;li&gt;Once the key is created, rename the key. In the box that pops up, type a name, and to save the key, press Enter; otherwise, the work you did won&#39;t save.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;There are lots of ways to deploy your site. I chose to use GitHub Actions, so after naming my API key, I copied it and opened my repository in VS Code (my editor of choice), then created a file called &lt;a href=https://github.com/adamdjbrett/dominationchronicles.com/blob/main/.github/workflows/xmit-deploy.yml&gt;.github/workflows/xmit-deploy.yml&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;If you are going to use my &lt;a href=https://github.com/adamdjbrett/dominationchronicles.com/blob/main/.github/workflows/xmit-deploy.yml&gt;.github/workflows/xmit-deploy.yml&lt;/a&gt;, please make sure and change the following line: &lt;code&gt;XMIT_SITE: dominationchronicles.com@268&lt;/code&gt; to be your domain name and team number. Based on the Discord chat, I think the number is only needed the first time, but your mileage may vary.&lt;/li&gt;&lt;li&gt;After creating this file, I went to GitHub.co &gt;&gt; my repository&gt;&gt; settings &gt;&gt; secrets and variables &gt;&gt; actions and created an action entitled &lt;code&gt;XMIT_KEY&lt;/code&gt; where I then copied my XMIT API key. For all that is good and holy, never expose your API key publicly.&lt;/li&gt;&lt;li&gt;Once my API key was safe and tucked away inside ```XMIT_KEY ``, I then pushed my repo to GitHub, and in less than two minutes, my site was live!.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Thus far, I have been super happy with how hosting with XMIT has been going. I liked how easy it was, that there was no added bloat, and that it was a fairly turnkey, quick solution for web hosting.&lt;/p&gt;&lt;p&gt;If you do decide to host with XMIT, please also join the Discord; it is a helpful place.&lt;/p&gt;&lt;p&gt;Oh, and if you were wanting a more GUI-friendly deployment option, the newly released &lt;a href=https://onclebob.com/&gt;Bob&#39;s your Oncole&lt;/a&gt; can help.&lt;/p&gt;&lt;h2 id=to-cache-or-not-to-cache-on-github-actions tabindex=-1&gt;To Cache or Not to Cache on Github actions &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/deploying-eleventy-xmit/#to-cache-or-not-to-cache-on-github-actions&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;h3 id=with-cache tabindex=-1&gt;With Cache &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/deploying-eleventy-xmit/#with-cache&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;pre class=language-yaml tabindex=0&gt;&lt;code class=language-yaml&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Setup Node.js
  &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/setup&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;node@v4
  &lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;node-version&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;cache&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;npm&#39;&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Install dependencies
  &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; npm ci&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=without-cache tabindex=-1&gt;Without Cache &lt;a class=header-anchor href=https://www.adamdjbrett.com/blog/deploying-eleventy-xmit/#without-cache&gt;#&lt;/a&gt;&lt;/h3&gt;&lt;pre class=language-yaml tabindex=0&gt;&lt;code class=language-yaml&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Setup Node.js
  &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/setup&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;node@v4
  &lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;node-version&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Install dependencies
  &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; npm install&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;in my experience &lt;a href=https://github.com/adamdjbrett/11covers-theme/blob/main/.github/workflows/xmit-deploy.yml&gt;11Covers-Theme&lt;/a&gt; Deploys fasters without the cache than with the cache. I cache &lt;a href=https://github.com/adamdjbrett/dominationchronicles.com/blob/main/.github/workflows/xmit-deploy.yml&gt;Domination Chronicles&lt;/a&gt; because of the number of assets in /public/ but I dont know if its the right thing to do. Based on the speed difference I&#39;m debating removing the cache.&lt;/p&gt;</content>
  </entry>
  <entry>
    <title>Deploying Jekyll to XMIT</title>
    <link href="https://www.adamdjbrett.com/blog/2025-11-26-deploying-jekyll-xmit/" />
    <updated>2025-11-26T00:00:00Z</updated>
    <id>https://www.adamdjbrett.com/blog/2025-11-26-deploying-jekyll-xmit/</id>
    <content type="html">&lt;p&gt;As the year comes to a close I am still working on reducing my hosting bills and exploring using &lt;a href=https://xmit.co&gt;xmit.co&lt;/a&gt; for hosting. In the last few days Pierre has refactored the homepage and documentation which makes using the service even easier and more appealing. Today&#39;s site that I decided to move over from netlify to xmit uses Jekyll so it was a bit tricky for the move. I havent touched Jekyll in a few months so I was a little out of practice. First I decoupled the site from netlify, updated the DNS ANAME, CNAME, and TXT records to using the &lt;a href=https://xmit.co/docs&gt;DNS Configuration settings&lt;/a&gt;. Then I updated the &lt;code&gt;xmity-deploy.yml&lt;/code&gt; github action to work for jekyll. the file is below:&lt;/p&gt;&lt;pre class=language-yaml tabindex=0&gt;&lt;code class=language-yaml&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Deploy Jekyll to XMIT

&lt;span class=&quot;token key atrule&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;branches&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;main&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;master&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;workflow_dispatch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;inputs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;XMIT site/domain (e.g. example.com)&quot;&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;required&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; string

&lt;span class=&quot;token key atrule&quot;&gt;concurrency&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;group&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; deploy&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;xmit&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;$&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; github.ref &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;cancel-in-progress&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;

&lt;span class=&quot;token key atrule&quot;&gt;permissions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;contents&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; read

&lt;span class=&quot;token key atrule&quot;&gt;jobs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;deploy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;runs-on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ubuntu&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;latest
    &lt;span class=&quot;token key atrule&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token comment&quot;&gt;# Target site/domain for XMIT deploy&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;XMIT_SITE&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; example.com@268 
    &lt;span class=&quot;token key atrule&quot;&gt;steps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Checkout
        &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/checkout@v4

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Setup Ruby
        &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ruby/setup&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;ruby@v1
        &lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;ruby-version&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;3.3&#39;&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;bundler-cache&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Build Jekyll site
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; bundle exec jekyll build

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Verify build output
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token scalar string&quot;&gt;
          if [ ! -d _site ]; then
            echo &quot;_site directory missing after build&quot; &gt;&amp;2
            exit 1
          fi
          ls -1 _site | head -n 20&lt;/span&gt;

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Setup Node.js (for XMIT CLI)
        &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/setup&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;node@v4
        &lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;node-version&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Deploy to XMIT (CLI)
        &lt;span class=&quot;token key atrule&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;XMIT_KEY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; $&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; secrets.XMIT_KEY &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token scalar string&quot;&gt;
          if [ -z &quot;$XMIT_KEY&quot; ]; then
            echo &quot;XMIT_KEY secret is not set&quot; &gt;&amp;2
            exit 1
          fi
          # Use manual input when workflow_dispatch triggers this workflow
          SITE_INPUT=&quot;${{ github.event_name == &#39;workflow_dispatch&#39; &amp;&amp; inputs.site || &#39;&#39; }}&quot;
          if [ -n &quot;$SITE_INPUT&quot; ]; then
            export XMIT_SITE=&quot;$SITE_INPUT&quot;
          fi
          if [ -z &quot;$XMIT_SITE&quot; ]; then
            echo &quot;XMIT site/domain not provided. Set repo Variable &#39;XMIT_SITE&#39; or pass &#39;site&#39; input.&quot; &gt;&amp;2
            exit 1
          fi
          echo &quot;Deploying _site to $XMIT_SITE via XMIT CLI&quot;;
          npx -y @xmit.co/xmit &quot;$XMIT_SITE&quot; _site || { echo &#39;XMIT deploy failed&#39; &gt;&amp;2; exit 1; }&lt;/span&gt;

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Post&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;deploy summary
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token scalar string&quot;&gt;
          echo &quot;Deployment attempt finished for $XMIT_SITE&quot;;
          echo &quot;Visit: https://$XMIT_SITE&quot;;&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;# Uncomment below for an alternative raw API upload if you have endpoint details&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;# steps:&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;#   - name: Deploy via API (curl)&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;#     run: |&lt;/span&gt;&lt;span class=&quot;token scalar string&quot;&gt;
    #       tar -czf site.tar.gz -C _site .
    #       curl -f -X POST &#92;
    #         -H &quot;Authorization: Bearer $XMIT_KEY&quot; &#92;
    #         -F &quot;bundle=@site.tar.gz&quot; &#92;
    #         https://api.xmit.example/deploy?site=$XMIT_SITE&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After updating the &lt;code&gt;xmit-deploy.yml&lt;/code&gt; file I naively thought that I would be good to go. However that was not the case. Immiediately my github action failed so I had to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;upgrade ruby, bundler, and Jekyll&lt;/li&gt;&lt;li&gt;remove the broken plugins of &lt;code&gt;jekyll-author-page&lt;/code&gt; and &lt;code&gt;jekyll-tagsgenerator&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre class=language-ruby tabindex=0&gt;&lt;code class=language-ruby&gt;source &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&quot;https://rubygems.org&quot;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# This will help ensure the proper Jekyll version is running.&lt;/span&gt;
gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&quot;jekyll&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&gt;= 4.3.3&quot;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Windows does not include zoneinfo files, so bundle the tzinfo-data gem&lt;/span&gt;
gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;tzinfo-data&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;platforms&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token symbol&quot;&gt;:mingw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:mswin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:x64_mingw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:jruby&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Required for Ruby 3.3+ (Jekyll/kramdown dependency)&lt;/span&gt;
gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;rexml&#39;&lt;/span&gt;&lt;/span&gt;

group &lt;span class=&quot;token symbol&quot;&gt;:jekyll_plugins&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;do&lt;/span&gt;
  gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;jekyll-paginate&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;1.1.0&#39;&lt;/span&gt;&lt;/span&gt;
  gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;jekyll-seo-tag&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;&gt;= 2.8.0&#39;&lt;/span&gt;&lt;/span&gt;
  gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;jekyll-sitemap&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;&gt;= 1.4.0&#39;&lt;/span&gt;&lt;/span&gt;
  gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;jekyll-redirect-from&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;&gt;= 0.16.0&#39;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;# Remove jekyll-tagsgenerator and jekyll-author-page as they are not maintained for Jekyll 4.x. If you need similar functionality, consider alternatives or custom plugins.&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I replaced the tag pages with &lt;a href=https://rfong.github.io/rflog/2020/02/28/jekyll-tags/&gt;rflog&#39;s Automated Jekyll blog tags&lt;/a&gt; and that worked nice and easily. I still havent replaced the &lt;code&gt;jekyll-author-page&lt;/code&gt; plugin but that is tomorrows problem, I found &lt;a href=https://jetholt.com/micro/jekyll-author-pages/&gt;jetroid&#39;s Jekyll Author Pages&lt;/a&gt; which seems like a nice gem free alternative.&lt;/p&gt;&lt;p&gt;After these updates to jekyll, I pushed to github and everything is working nicely with the site now living its best life over at &lt;a href=https://xmit.co&gt;xmit.co&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
</feed>