<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Blog on Ryan P. Meyer</title><link>https://ryanpmeyer.eu/tags/blog/</link><description>Something my own.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@ryanpmeyer.eu (Ryan P. Meyer)</managingEditor><webMaster>hello@ryanpmeyer.eu (Ryan P. Meyer)</webMaster><copyright>© 2026 Ryan P. Meyer</copyright><lastBuildDate>Wed, 12 Nov 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://ryanpmeyer.eu/tags/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Newsletters or RSS Feeds</title><link>https://ryanpmeyer.eu/notes/newsletters-or-rss-feeds/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate><atom:updated>2025-11-12T00:00:00Z</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/notes/newsletters-or-rss-feeds/</guid><category>notes</category><category>blog</category><category>rss</category><description>Thinking about when it is best to use either Newsletters or RSS Feeds.</description><content:encoded><![CDATA[<p>I&rsquo;m currently in a kick and reading a few books by Cal Newport, and just finished one of his more well known books, Digital Minimalism. Though there is a lot to consider from it, I wanted to focus on a thought I had regarding taking information flows that would be constant and concentrating them to a weekly or daily item. This concept is covered by the &ldquo;Join the Attention Resistance&rdquo; chapter, and, specific to this post, the &ldquo;Practice: Embrace Slow Media.&rdquo;</p>
<p>The proposal is simple, instead of assuming that you must stay up-to-date on every breaking story or event you should try to schedule it. Often times, it proposes, when you are following breaking events you feel more informed, but never have the full picture until later. At that point, most would find themselves better informed by waiting for the story to go from &ldquo;developing&rdquo; to &ldquo;developed.&rdquo;</p>
<p>Taking this within my own processes for news, primarily RSS, I realized that maybe I should consider adjusting this. I&rsquo;ve often struggled with getting feeds from various news sites and seeing a deluge of information coming in. I&rsquo;ve scoffed at the idea of Newsletters because I &ldquo;felt&rdquo; I would be less informed by relying on a delayed and smaller set of articles. However, I realize that maybe there are places where this makes sense, e.g. with major news sites.</p>
<p>I&rsquo;ve decided to take the plunge and migrate some of my feeds to newsletters. Hopefully it means I will spend less time sifting through my feed inbox and more time quickly adding interesting items to my later pile to then review at a personally scheduled point in time.</p>
<p>This is still a work in progress, but maybe this can help me continue to claw back time from the attention economy.</p>
]]></content:encoded></item><item><title>Busy Times</title><link>https://ryanpmeyer.eu/posts/busy-times/</link><pubDate>Sun, 09 Nov 2025 00:00:00 +0000</pubDate><atom:updated>2025-11-09T00:00:00Z</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/posts/busy-times/</guid><category>posts</category><category>blog</category><description>Providing a quick update on my lack of, well, updates.</description><content:encoded><![CDATA[<h1 id="busy-times">Busy times</h1>
<p>I wanted to write for the blog for a while, in fact, I have quite a few items I want to cover and start discussing. Items like Personal Knowledge Management, rebuilding my site, thoughts on various trends - and how they have overlapped with other topics I have in mind like being more mindful on my time usage, and others. Unfortunately, I have also been very busy in life and so all that work has been put on the back burner.</p>
<p>I plan to get back into a routine by January, 2026. One big goal is to reevaluate the tools used for this site. I want to try to strip away the site to the bare bones and then build from there, either with Hugo or another tool. Because I haven’t build the theming myself I feel like I don&rsquo;t own it as much as I could.</p>
<p>I want to establish more of my ownership - or perhaps knowledge-ship - of the site. Until I have the new site figured out, I will most likely not be posting or updating much here.</p>
<p>Until then, here is a quick, non-exhaustive, list of items I want to start covering:</p>
<h2 id="personal-knowledge-management">Personal Knowledge Management</h2>
<p>I really want to explore, more for myself than anything, what my current PKM system is, and how I am trying to manage all the information around me. I feel like it would be an exciting exercise to, one, codify it and two, to identify gaps and issues with what I am doing versus what I want to be doing.</p>
<h2 id="time-management-with-heavy-regards-to-algorithms">Time Management (With heavy regards to Algorithms)</h2>
<p>There are a few people I follow that have been pushing back on Social Media from the perspective of Algorithms. I’ve been looking and adopting a few of these to better avoid “Doomscrolling” in my various apps and websites. I’ve adopting disabling watch history on YouTube which essentially breaks their shorts feature and forces me to use the subscription tab - and it has been helpful in me avoiding time loss there. Other tactics like visiting apps from their website version compared to their native apps can reduce features and make you less likely to stay on them. Since social media apps want you to install the app their websites are intentionally more painful to use. Essentially they are using dark patterns to get you to install the app, but instead I use them as a way to dissuade myself from using the apps more.</p>
<p>Just finishing the book Digital Minimalism by Cal Newport has also helped me think about this topic from a new angle. The idea that it is okay to be bored, and thoughts around how I want to better control my time, attention and decisions., etc etc.</p>
<h2 id="process-mastery-versus-process-perfection">Process Mastery versus Process Perfection</h2>
<p>I recently saw a [blog post ](This is, by contemporary standards, a committed relationship.)that discussed how jumping from one app to another for various processes or workflows is exhausting. They proposed that instead of trying to get the perfect process down, you instead focus on perfecting the use of the tools you already have. It’s making me consider how that overlaps with my stance on how a lot of apps are subscription based and I try my best to avoid “death-by-a-thousand-cuts.”</p>
<p>Like many, I see an app and think, oh that will solve a problem that I “think” I have - either because they are trying to sell a solution to a problem that doesn’t exist, or they are trying to sell an identity. Ironically, I am writing this post up with iA Writer in a trial mode to see if I find it helps me with my writing. Otherwise I will write this, and most posts in Obsidian.</p>
<h2 id="website-rebuild">Website Rebuild?</h2>
<p>This is the big one, the one that has been causing me delays. I am thinking about rebuilding the website with a different static site generator. Right now I use Hugo, which I have honestly not had major issues with, but I wonder if there is a better one. 11ty has caught my eye and I am looking into it at the moment. We will see if I end up changing to this or not.</p>
<p>I do know, that regardless of changing the tool, I will want to build my own theme and tools for it. I enjoy the current Congo based theme, but I want to make my own, add some of my own &ldquo;artistic&rdquo; flair and also implement some features, like Webmentions.</p>
<p>So those are some of my plans, lets see how fast, or slow, I am with them.</p>
]]></content:encoded></item><item><title>New Theme</title><link>https://ryanpmeyer.eu/notes/new-theme/</link><pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate><atom:updated>2025-07-31T00:00:00Z</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/notes/new-theme/</guid><category>notes</category><category>blog</category><category>theme</category><description>Finally customized my theme a bit!</description><content:encoded><![CDATA[<p>Just a quick note about the change today. I created a custom theme with a focus on accessible colors. I used a helpful tool at <a href="https://randoma11y.com">randoma11y.com</a> to generate a bunch of options and landed on this one. I may tweak it a bit here or there, but so far I enjoy it.</p>
<p>Also, I finally updated the favicon! It&rsquo;s nothing special, but at least it matches the default theme.</p>
]]></content:encoded></item><item><title>A Little Spring Cleaning</title><link>https://ryanpmeyer.eu/notes/a-little-spring-cleaning/</link><pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate><atom:updated>2025-07-20T00:00:00Z</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/notes/a-little-spring-cleaning/</guid><category>notes</category><category>blog</category><description>Just a quick update on cleaning up the site, again.</description><content:encoded><![CDATA[<p>It has been a little bit since I updated, mostly because I keep creating issues for myself with some of the underlying code and git. Basically, I still have a lot to learn to keep everything synced up and paying attention to changes. Long and short, I should have everything cleaned up now and it <em>should</em> be easier for me to make updates on the blog again.</p>
<p>I finally got the theme, <a href="https://github.com/jpanther/congo">congo</a>, updated and in sync again between my fork and upstream. There was a bug for a bit where the theme wouldn&rsquo;t compile with Hugo because of some underlying skeleton changes with how Hugo worked. So I had that pinned to an older version to continue to generate the site. Now that is all updated, and I feel a bit better about things again.</p>
<p>I also removed the feature images on my blog posts, because I don&rsquo;t feel that I need them. I want to focus on writing and that has been a bit of a blocker. If you noticed, the most recent posts didn&rsquo;t have any. This will keep everything a bit more consistent too.</p>
<p>As for actual posts beyond site updates, I do have a few things I want to write a bit about. I&rsquo;ve been playing with <a href="https://usetrmnl.com">TRMNL</a> as a BYOD — once that is finished it will be a decent sized post. I&rsquo;ve also been playing with <a href="https://godotengine.org">Godot</a> again, and I&rsquo;d like to write up things about that. Obviously there are also topics that I continue to find interesting, like security and AI. Really, there is a lot, I just need to be more disciplined.</p>
]]></content:encoded></item><item><title>Some blog changes and updates</title><link>https://ryanpmeyer.eu/posts/some-blog-changes-and-updates/</link><pubDate>Sun, 23 Feb 2025 16:00:00 +0000</pubDate><atom:updated>2025-02-23T16:00:00Z</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/posts/some-blog-changes-and-updates/</guid><category>posts</category><category>website</category><category>blog</category><description>A quick update on site changes.</description><content:encoded><![CDATA[<p>I&rsquo;ve been working a little on the backend of the site to see how I can improve things. My goals are to:</p>
<ol>
<li>Make the site more robust.</li>
<li>Have a little better insight into the usage of the site.</li>
<li>Adding interactivity.</li>
<li>Make it easier for me to post to the site.</li>
</ol>
<h2 id="making-the-site-more-robust">Making the site more robust</h2>
<p>Previously I was hosting my DNS with my registrar, but I have been working to split the two and migrate to different services. This should allow for a few things, one; I can use Cloudflare for DNS, which is a well known service and has a lot of additional tooling to boot. Two, I can move my Registrar a bit easier since I would just have to make Nameserver updates upon moving (Though I am still on Squarespace at the time of writing, I am looking at others, like <a href="https://porkbun.com/">Porkbun.com</a>).</p>
<p>Additionally, I am moving from Github Pages to Cloudflare Pages. Though this goes against the idea of the above where I wanted to unconsolidated; here there are some added benefits from an analytics point of view. Also I can easily move back if I decide there isn&rsquo;t much benefit.</p>
<h2 id="site-insight">Site Insight</h2>
<p>I also want to try to get a better idea on if the site is getting any traffic. I would like to reiterate that this blog is more for me to work on my own skills, and have control over my content. But, it is still helpful to know if people do access the site.</p>
<p>I weighed some options and came to two possible tools; one was to use <a href="https://usefathom.com/">Fathom Analytics</a>, which is a privacy focused analytics service. The other was to, as you can possibly guess, use Cloudflare. I am going to most likely opt for the Cloudflare option as it is free, and I really can&rsquo;t justify (yet) on adding more to my monthly subscriptions. Now, if this site gets to a point where it can generate enough money to support itself then that will change. Though, I don&rsquo;t see that as a current goal for the site.</p>
<h2 id="adding-interactivity">Adding Interactivity</h2>
<p>Next thing I wanted to setup were comments for those interested to interact with posts. Unfortunately it looked like a lot of the plug and play systems were either not free or needed to have more than just static pages.</p>
<p>Luckily, I found out that <a href="https://mattdyson.org/blog/2024/11/bluesky-posts-as-hugo-blog-comments/">Matt Dyson</a> made a way to <a href="https://github.com/mattdy/bluesky-hugo/">integrate to Bluesky comments with my same Hugo and Congo setup</a>. This works out well since Bluesky is my current primary sharing media. (Though maybe I can also add Mastodon next?) So, now there are comments available! I will need to update some of my older articles where I also posted on Bluesky.</p>
<p>Side note to all of this; I had also looked at migrating to a platform like <a href="https://ghost.org/">Ghost</a> or <a href="https://www.beehiiv.com/">Beehiiv</a>. Both would offer a lot of these tools, but again my issue would be justifying the cost to maintain them. Also their entry tiers seem to leave a lot of customization features out. Anyway, I am going to keep this as a static site for now.</p>
<h2 id="writing-ease">Writing ease</h2>
<p>Lastly, I think this will continue to be a struggle for me as I work out how to best write articles for the site. I would like to be able to do so both on my computer, which is the easier one; and on my iOS devices like iPad.</p>
<p>Right now, I am using Obsidian as it has strong markdown support - but there is still a gap on getting the files uploaded to Github easily, especially from iOS. And it isn&rsquo;t the most seamless process. This will most likely be my next big focus on site improvements.</p>
]]></content:encoded></item><item><title>Hide Your Email Services</title><link>https://ryanpmeyer.eu/posts/hide-your-email-services/</link><pubDate>Tue, 29 Oct 2024 21:00:00 +0100</pubDate><atom:updated>2024-10-29T21:00:00+01:00</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/posts/hide-your-email-services/</guid><category>posts</category><category>blog</category><category>privacy</category><category>security</category><description>Data breaches are a constant, what can you do?</description><content:encoded><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Unfortunately, it&rsquo;s highly likely that your information will be exposed at some point. This has become a common enough occurrence that instead of asking, &ldquo;If it happens, what do I do?&rdquo; it&rsquo;s more prudent to ask, &ldquo;When it happens, have I prepared enough to minimize the impact?&rdquo;</p>
<p>I’ve considered this from various angles, but one method of protection worth discussing is &ldquo;Hide My Email Services&rdquo; like Apple&rsquo;s <a href="https://support.apple.com/en-us/105078">service</a> with iCloud, or Proton&rsquo;s <a href="https://proton.me/support/aliases-mail">service</a> and how these services can be used to protect your privacy.</p>
<p>Keep in mind though, that whenever you plan to increase your security or privacy you will, in most cases, lose some convenience or ease of use.</p>
<h3 id="what-are-hide-my-email-services">What Are Hide My Email Services?</h3>
<p>To start, these services create an alias that will relay any emails sent to it directly to your main email address. These aliases are often a randomly generated name with one or several domains. So, if your email is <code>jdoe@gmail.com</code> and you use Apple&rsquo;s Service, it will generate an email like <code>Jade.0a.Kiwi@icloud.com</code>. You can then use this email for a website, and even generate multiple aliases that point back to <code>jdoe@gmail.com</code></p>
<p>Think of it as having an unlimited number forwarding addresses for your main email.</p>
<pre tabindex="0"><code>Website --Sends Email--&gt; Alias Email --Forwards--&gt; Main Email
</code></pre><h4 id="aliases-alternatives">Aliases Alternatives</h4>
<p>Some email services also offer a similar feature by allowing you to append a <code>+</code> to your email address. So <code>jdoe@gmail.com</code> can use something like <code>jdoe+facebook@gmail.com</code> as an email for Facebook. This would allow them to know that, in theory, only emails from Facebook should be going to that email, and if they get something from somewhere else they may be able to assume that the email was sold, exposed, or otherwise leaked.</p>
<p>Now, the issue with this from a privacy perspective is that the root email is clearly exposed. Instead, the goal is to make it difficult to guess your main email address and to ensure your provided email is as unlinkable to you as possible.</p>
<h2 id="when-to-use-hide-my-email-services">When to Use Hide My Email Services</h2>
<p>Now that we know, in general, that these services offer an ability to create unique, random emails that can be used to protect your main email, let&rsquo;s discuss when it might be appropriate to use these services, and the drawbacks in each case. I will order these in what I think are the best way to start as a path to more &ldquo;advanced&rdquo; usage.</p>
<h3 id="level-1-this-is-just-temporary">Level 1: This is just temporary</h3>
<p>If you run into a site or service that needs an email, but you don&rsquo;t ever plan to really manage the account (I will come back to this point though) then this is a perfect service for that.</p>
<p>Suppose you&rsquo;re at a restaurant and want to place an order through their website, which requires an email address. You can use these services to generate a temporary email, complete your order, and then delete that email to prevent any future spam.</p>
<p>And that&rsquo;s really it! Use the service as a temporary email, you can make just one for all use cases or generate a new one every time. I would suggest making a unique one for each, if possible, because that let&rsquo;s you get used to managing multiple ones at ones and move on to the next level.</p>
<h3 id="level-2-why-do-i-have-to-make-an-account">Level 2: Why do I <em>Have</em> to Make an Account?!</h3>
<p>Okay, so same as before, you&rsquo;re in a situation where you have to not only provide an email, but also make an account. Rather than using your main email, use a Hidden email instead! Additionally, make sure to use your password manager to generate a random password.</p>
<p>This site will now send spam only to your randomly generated email. And since the site now has associated login credentials, it could potentially be a source for email and password leaks. However, since they are both random, it is basically just junk. Sure you do need to make sure to secure that account the best you can, remove any other information, credit cards, etc.</p>
<p>But now this data cannot be used to comprise your accounts on other sites.</p>
<h3 id="level-3-change-my-email">Level 3: Change My Email</h3>
<p>At this point, I hope you see where we are going. Taking this a step further, we can start changing our non-critical accounts to use Hide My Email services. Randomly generate a new email, log in to your site still using your root email, and then change it. Oh, and update your password while you are there to make sure it is fully randomized while you are there; and set up MFA.</p>
<p>Remember, this is only protecting you when it comes to linking the email to you directly and cross referencing/attacking to other sites.</p>
<p>I will want to also add a note here that you should take care on which sites you do this with. For social media, video game accounts, shopping accounts, there shouldn&rsquo;t be too much of a risk using these emails. However, financial sites, government accounts, and other &ldquo;Identity based sites&rdquo; you may want to use your root email or other softer alias techniques like the <code>+</code> appending technique. Why? Well, it could be more frustrating to maintain or get support with a randomly generated email. Also, these sites tend to, but not always, have a stronger security posture. Remember, we are looking at minimizing impact here, not remove it entirely!</p>
<h2 id="is-it-worth-the-effort">Is it worth the effort?</h2>
<p>To summarize what we can do here is:</p>
<ol>
<li>Get a new service, and yet another subscription.</li>
<li>Give spammers meaningless, disposable emails.</li>
<li>Use throw-away emails for throw-away accounts.</li>
<li>Move existing accounts to these new, randomly generated emails.</li>
</ol>
<p>This helps isolate sites to a single email, lowering the value of your data provided and protecting you from being identified in a data leak. Additionally, in combination with randomly generated passwords, helps to isolate credential stuffing attacks to just that one site.</p>
<p>But, it isn&rsquo;t all perfect. There are some negatives to consider!</p>
<h3 id="negatives">Negatives</h3>
<h4 id="communication">Communication</h4>
<p>There are times when you may need to send an email from that randomly generated address, like when reaching out to support. This can be clunky or even impossible, depending on the service, and it&rsquo;s generally not as simple as using your regular email address.</p>
<p>Also, trying to call support, or provide the email can get you some odd looks. And it is cumbersome to generate one in person, but not a non-stopper.</p>
<h4 id="authenticity">Authenticity</h4>
<p>Another thing to be aware of, some sites have protections around temporary email addresses, particularly ones like 10minutemail. This can lead to issues where your generated email may not be accepted if the domain isn&rsquo;t well known. For example, Apple&rsquo;s uses icloud.com as the domain, which is well known and accepted in most cases. However if you use a service that uses less known domains, or you can use your own, that can lead to issues with the email not being accepted.</p>
<h4 id="service-provider-trust">Service Provider trust</h4>
<p>A significant concern with these services is that all emails going to those alias addresses are accessible to the service providers. For example, Apple could, in theory, see what is sent to <code>Jade.0a.Kiwi@icloud.com</code>.</p>
<h4 id="data-breaches">Data breaches</h4>
<p>When a breach happens you can go to places like <a href="https://haveibeenpwned.com">Have I been Pwned</a> and put in your email to see where you were affected. However, now you don&rsquo;t see all your potential accounts, as most will have a unique email. In these cases, usually the site does send you an email to alert you, so you will want to monitor for those a bit more actively. When you do get one, you can do your normal response like resetting the password, but also reset the email!</p>
<h2 id="all-in-all">All in all</h2>
<p>Is this worth it? For you, I don&rsquo;t know. But for me, it is worth applying some of these items.</p>
]]></content:encoded></item><item><title>Building My Site</title><link>https://ryanpmeyer.eu/posts/building-my-site/</link><pubDate>Mon, 18 Mar 2024 13:23:47 +0100</pubDate><atom:updated>2024-03-18T13:23:47+01:00</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/posts/building-my-site/</guid><category>posts</category><category>blog</category><category>hugo</category><category>website</category><category>guide</category><description>A scalable site.</description><content:encoded><![CDATA[<h2 id="introduction">Introduction</h2>
<aside class="alert alert--info" role="note">
  <strong>Info:</strong> This is not a full step by step guide, but one that can be used in combination with the standard guides available! Also I plan to update this after some time, so it will get better. 🙈
</aside>

<p>For those curious this guide is how I got this site up and running using a combination of Github, as the deployment automation and hosting of the site, and Hugo, a static website generator tool, using the Congo theme. This is all better documented on all the referenced sites, but this might help with bridging any gaps, or maybe provide a more concentrated interpretation of the above guides.</p>
<p>The assumptions are that you know your way around the terminal and know how to use tools like <code>git</code>, <code>brew</code> (for macs) and modify your domain&rsquo;s DNS.</p>
<p>All references can be found at the following sites:</p>
<p><a href="https://gohugo.io/getting-started/quick-start/">https://gohugo.io/getting-started/quick-start/</a> - Hugo quickstart guide. I would start here if you have no idea what is going on.
<a href="https://jpanther.github.io/congo/docs/installation/">https://jpanther.github.io/congo/docs/installation/</a> - An end to end guide from the theme&rsquo;s creator. Really this should cover most everything.
<a href="https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages">https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages</a> - Important information using GitHub Pages (which is what we will be doing)
<a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site">https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site</a> - Important information on DNS for your domain to point it to GitHub Pages.
<a href="https://github.com/CodeOnRye/codeonrye.github.io">https://github.com/CodeOnRye/codeonrye.github.io</a> - Lastly, here is all the code running this site, so you could always start from there!</p>
<h3 id="schema">Schema</h3>
<p>First let&rsquo;s lay out all the pieces to best understand how this will work.</p>
<div class="mermaid">
graph TD
A[Repository Markdown Files] -->|Git Commit| B(GitHub)
B --> C{GitHub Actions}
C -->|Watches Main Branch| B
C --> F(Runs Hugo)
F -->|Processes MD to HTML| G(Pushed to gh_pages Branch)
D[Domain Registrar] -->|A Record| E(github.io)
G --> B
E --> G
subgraph Local
A
end
subgraph GitHub
B
C
F
G
end
subgraph DNS
D
E
end
</div>

<p>As shown, wherever you may be sourcing your markdown files, once they are pushed to GitHub then the magic starts happening. A GitHub Action will run on commits, running a hugo service to generate the html files and pushing them back to a specific branch, <code>gh_pages</code>. This branch is configured in the repository to be the source for the github site. On the other end, the DNS registrar has an <code>A Record</code> set so that it redirects to the GitHub Provided site. Once it is all set up, then all you need to do is update your Hugo files and push!</p>
<h2 id="github">GitHub</h2>
<p>You should start by setting up your GitHub repository and various settings as needed. This will help prepare for the automations and configurations later.</p>
<h3 id="create-your-repo">Create Your Repo</h3>
<p>One thing that got me, was that since we want to point to use the GitHub Pages functionality, we have to name the repository <code>YOURUSERNAME.github.io</code>. There may be another way to do this, but this is what I did.</p>
<p>Once created, go ahead and clone it down to your local environment.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git clone git@github.com:YOURUSERNAME/YOURUSERNAME.github.io.git
</span></span></code></pre></div><h2 id="hugo">Hugo</h2>
<p>First things first. You need to get Hugo up and running and become familiar enough with it. Use the linked guide <a href="https://gohugo.io/getting-started/quick-start/">above</a> to just try setting up a quick one locally. Once you get a feel comfortable with how it works with markdown files, then we can initialize it in the repository file we created in previous step.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /PATH/TO/YOURUSERNAME.github.io 
</span></span><span class="line"><span class="cl">hugo new site ./
</span></span></code></pre></div><h3 id="congo-theme">Congo Theme</h3>
<p>Next we will install and set up the theme. As all themes are different, this may not apply to others, so take that with a grain of salt if you are deviating here.</p>
<p>We need to first pull down the theme, to do this we will use the <code>git submodule</code> function. This keeps our tooling from becoming more complex.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /PATH/TO/YOURUSERNAME.github.io
</span></span><span class="line"><span class="cl">git init
</span></span><span class="line"><span class="cl">git submodule add -b stable https://github.com/jpanther/congo.git themes/congo
</span></span></code></pre></div><p>Next we will need to configure Hugo to use this Theme. The <a href="https://jpanther.github.io/congo/docs/installation/">theme&rsquo;s guide</a> is best to follow, as it will be more up-to-date. But to boil it down you need to copy the <code>/PATH/TO/YOURUSERNAME.github.io/theme/congo/config/_default</code> folder to <code>/PATH/TO/YOURUSERNAME.github.io/</code>. Now we customize the files as needed.</p>
<ul>
<li><strong>config.toml</strong> - Your main config file for Hugo where you set your website name, theme (congo) and other settings</li>
<li><strong>languages.en.toml</strong> - Sets your defaults for the site when set in the <code>en</code> language.</li>
<li><strong>markup.toml</strong> - Used for the theme, I have not touched this.</li>
<li><strong>menus.en.toml</strong> - Like languages.en.toml, this is the configuration for the menus when set to the <code>en</code> language.</li>
<li><strong>module.toml</strong> - Used for the theme, I have not touched this.</li>
<li><strong>params.toml</strong> - Allows you to further configure the theme.</li>
</ul>
<h4 id="making-a-post">Making a Post</h4>
<p>With this theme, I&rsquo;ve decided to set up my posts within their own folders, rather than all under the <code>./content/</code> folder. This seems to work best for this theme. So a post will look roughly like this</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">content/posts/building-my-site
</span></span><span class="line"><span class="cl">├── img
</span></span><span class="line"><span class="cl">│   ├── gh_actions_permissions.png
</span></span><span class="line"><span class="cl">│   ├── gh_pages_config.png
</span></span><span class="line"><span class="cl">│   └── gh_workflow_permissions.png
</span></span><span class="line"><span class="cl">└── index.md
</span></span></code></pre></div><p>Notice that the markdown file is named <code>index.md</code> and not the name of the post, that is reserved for the folder name. More examples can be found <a href="https://jpanther.github.io/congo/docs/content-examples/">here</a></p>
<h2 id="github-actions">GitHub Actions</h2>
<p>Lastly, once you have a nice site configured, and you&rsquo;ve tested it out locally with the <code>hugo server -D</code> we can start working on getting the automations going to publish this online.</p>
<h4 id="github-actions-workflow-file">GitHub Actions Workflow File</h4>
<p>You can leverage the default one provided by the theme <a href="https://jpanther.github.io/congo/docs/hosting-deployment/#github-pages">here</a>. This should work out of the box for you. Once you add it to your <code>/PATH/TO/YOURUSERNAME.github.io/.github/workflows/</code> folder and push it to GitHub you will need to verify it runs successfully.</p>
<p>One thing to note here, if you are going to use a custom domain you will want to add a run command into your YAML file to recreate that file like below:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-YAML" data-lang="YAML"><span class="line"><span class="cl"><span class="nn">...</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Build</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">run</span><span class="p">:</span><span class="w"> </span><span class="l">hugo --minify</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">GH CNAME</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">        </span><span class="nt">run</span><span class="p">:</span><span class="w"> </span><span class="l">echo &#34;YOURDOMAIN.COM&#34; &gt; ./public/CNAME</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Deploy</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nn">...</span><span class="w">
</span></span></span></code></pre></div><p>On GitHub you can navigate to your repository, and then the Actions Page to verify if it is running properly. If not you will want to check the follow settings.</p>
<h4 id="github-repository-settings">GitHub Repository Settings</h4>
<p>Make sure your settings are as follows:</p>
<p><img src="/posts/building-my-site/img/gh_actions_permissions.png" alt="GitHub Actions Permissions"></p>
<p><img src="/posts/building-my-site/img/gh_workflow_permissions.png" alt="GitHub Workflow Permissions"></p>
<p>Those should fix it to allow the actions to properly run. Once they do you will now have a <code>gh_pages</code> branch that mirror&rsquo;s the contents of the <code>public</code> folder that Hugo generates when running the hugo commands.</p>
<h2 id="dns">DNS</h2>
<p>Last but not least, we will now make the site available online! First we finish configuring GitHub, test and then point our domain to it.</p>
<h3 id="github-pages">GitHub Pages</h3>
<p>Under the repository&rsquo;s settings for Pages you will want to configure it as follows</p>
<p><img src="/posts/building-my-site/img/gh_pages_config.png" alt="GitHub Pages Configuration"></p>
<p>A few things to note, you can only enable SSL enforcement once your custom domain is configured (next step). But this will be fine for now to test. You should now be able to got to YOURUSERNAME.github.io and see your site! If you do then finish configurations on your domain registrar.</p>
<h3 id="domain-dns">Domain DNS</h3>
<p>First you should go to your account settings, then under the Pages option on the left sidebar, add your domain there. You will need to verify the domain with a <code>TXT Record </code>.</p>
<p>Per the <a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site">details</a> from GitHub you will want to add the follow records to your Domain&rsquo;s DNS provider.</p>
<p><code>A Record</code></p>
<pre tabindex="0"><code>185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
</code></pre><p><code>AAAA Record</code></p>
<pre tabindex="0"><code>2606:50c0:8000::153
2606:50c0:8001::153
2606:50c0:8002::153
2606:50c0:8003::153
</code></pre><p><code>CNAME Record</code></p>
<pre tabindex="0"><code>www.YOURDOMAIN.com
</code></pre><p>I would avoid using the Alias, as that would block you from using DNSSEC.</p>
<p>At this point you should now be able to go to yourdomain.com and load your github site. If needed, go back to your settings and enable SSL.</p>
<h1 id="conclusion">Conclusion</h1>
<p>This rough guide is how I have mine set up with tips on how you can do it yourself. Again, it isn&rsquo;t meant to be an end-to-end guide. But over time I will probably update this guide to better clarify or expand items.</p>
]]></content:encoded></item><item><title>Hello World</title><link>https://ryanpmeyer.eu/posts/hello-world/</link><pubDate>Thu, 25 Jan 2024 13:23:47 +0100</pubDate><atom:updated>2024-01-25T13:23:47+01:00</atom:updated><author>hello@ryanpmeyer.eu (Ryan P. Meyer)</author><guid isPermaLink="true">https://ryanpmeyer.eu/posts/hello-world/</guid><category>posts</category><category>blog</category><category>hugo</category><category>website</category><description>Hello World.</description><content:encoded><![CDATA[<h2 id="introduction">Introduction</h2>
<p>The classic initialization of any project always ends up beginning with those words. I&rsquo;ve decided to take another shot at curating a digital space for myself. In the past I have tried to create websites using various frameworks and tools, but they always became more work than I felt they were worth. Looking back, I&rsquo;ve always tried to create something more complex than I needed. Hoping to grow into it, rather than grow with it. But I really hadn&rsquo;t hammered out the foundation of what I actually needed, and focused on what I wanted. Taking a step back I wanted to focus on what I needed from this projected. With hopes that the choices will be flexible enough to not require a lot of work to expand later or maintain.</p>
<p>Those needs have boiled down to the following.</p>
<h3 id="defining-my-goals">Defining My Goals</h3>
<p>In short, answering this was the hardest part. Simply &ldquo;a website&rdquo; is too broad of an answer; I needed to really think about what content I wanted, how I wanted to present it, how it should be maintained and what I wanted to get out of my time with the project. So lets start with defining the content.</p>
<p>The content will be my own musings, or ramblings for some. I don&rsquo;t want to lock myself into a certain type of topic or subject matter. So a semi-professional blog and portfolio I think will strike a balance. That means the site must be able to provide an easy way for me to both create that content and present it.</p>
<p>Presentation of the website should be clean and modern. Next I need to be able to customize it once I start having a more fully formed idea of the content. So again, it needs to be a flexible solution that can be changed without much headache.</p>
<p>And headaches is what I have gotten in the past with frameworks like wordpress or other blog focused solutions. They did so much more than I needed at the time, that I would get stuck in the weeds. I&rsquo;d enable features I didn&rsquo;t need, or maybe even fully understand. This solution needed to be simple, but extendable when I needed it to be.</p>
<p>Lastly, in the end what I want out of this project is a website I can call my own. A place that is easy for me to keep up to date both on content and patches. It had to work for me, rather than me work for it. Which has lead me to go with this set up.</p>
<h2 id="the-project">The Project</h2>
<p>This project is created with as minimal tools as possible; Hugo as the website generator and will be served by GitHub.</p>
<ul>
<li>Hugo - This is the website framework tooling solution, a static website generator</li>
<li>Github/Gitlab Pages Hosted - Since I am setting up a static website, that means no backends - and not servers - needed! So why not use Github or GitLab&rsquo;s pages and actions to handle the hosting and publishing?</li>
</ul>
<h3 id="openness">Openness</h3>
<p>I am always a big fan of Free and Open Source Software, FOSS for short. So where I can, I try my best to leverage systems and tools for that. Granted there comes a time where, well, time isn&rsquo;t as available. Its the well-known adage of FOSS not being free in the cost of time. However, if the system is simple enough and the data portable enough, then it might very well be worth that time and effort to setup and maintain.</p>
<h3 id="the-framework">The Framework</h3>
<p>Needing the site to be maintainable, is key to keeping the project, and thus the site, up and running. So, where I could, I would remove systems that needed my attention to work or stay in good working order. Too many website frameworks required lots of backends, databases and the like, as well as had features I simply didn&rsquo;t care for. I just needed something that was dead simple to set up, run and update with new content when I felt like it.</p>
<h3 id="the-platform">The Platform</h3>
<p>In the past I have always set up servers, installed the needed services and then install any applications to get a website up and running. But each of those items introduces complexity and friction. I need to make sure the services are up to date. The database needs to be backed up properly. How do I migrate to a new server if needed, and so on. With the static aspect of Hugo I can avoid this because, in the end, the website is just a bunch of files. And those files are already backed up in Github which is also &ldquo;publishing them.&rdquo; Overall reducing complexity to make it easier to maintain and use, which is exactly what I want.</p>
<h2 id="tldr">TL;DR</h2>
<p>In short, I have set up a Hugo based static website that I can use Github Pages and Actions to host and manage! I will probably also post a guide incase someone wants to try themselves!</p>
]]></content:encoded></item></channel></rss>