<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Hyett</title>
    <description>The latest articles on DEV Community by Alex Hyett (@alexhyettdev).</description>
    <link>https://dev.to/alexhyettdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F491468%2F6c672f1b-6587-4277-9b75-d33a1515a249.jpeg</url>
      <title>DEV Community: Alex Hyett</title>
      <link>https://dev.to/alexhyettdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexhyettdev"/>
    <language>en</language>
    <item>
      <title>Why is software not getting better?</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 11 Oct 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/why-is-software-not-getting-better-22dl</link>
      <guid>https://dev.to/alexhyettdev/why-is-software-not-getting-better-22dl</guid>
      <description>&lt;p&gt;People have complained for years about buggy software. To be honest I think the internet and the ability to update software quickly is partly to blame.&lt;/p&gt;

&lt;p&gt;When I first started my career in software engineering, part of my job was to create releases. This involved putting together installers for new versions and burning them onto CDs ready to be sent out to customers.&lt;/p&gt;

&lt;p&gt;There was no download mechanism to get updates for the software. The software had to be bug free first time round. The company also produced software for other companies mostly in embedded devices which were hard to update.&lt;/p&gt;

&lt;p&gt;To get to this level of quality, we were required to use things like cyclomatic complexity and other static analysis tools as well as MCDC unit tests. Which apart from regulated industries like aviation and military, no one bothers doing any more.&lt;/p&gt;

&lt;p&gt;If you shipped software with a critical bug in it, then you ended up with a lot of unhappy customers that had to wait weeks to get the fixed version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Move Fast and Break Things &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#move-fast-and-break-things" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Once “over the air” updates became a thing, we started to see the “move fast and break things” movement take hold. It suddenly became acceptable to release buggy software and then slowly patch it with updates over the next few weeks or months.&lt;/p&gt;

&lt;p&gt;This is why tech generally gets a bad name, the public associate it with something that doesn't work.&lt;/p&gt;

&lt;p&gt;The majority of software that is produced doesn't need to be bug free. No one is going to die if your companies SaaS app doesn't behave as expected.&lt;/p&gt;

&lt;p&gt;Does that mean we shouldn't strive to write better software?&lt;/p&gt;

&lt;p&gt;Developers over the last 10 years or so have got used to writing buggy software because companies have been more interested in speed than quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Developer Advocacy &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#developer-advocacy" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;It was usually up to the developers to push back and insist on a certain level of unit test coverage and code quality. I have started at companies before and been the first person to introduce unit tests into an already established project.&lt;/p&gt;

&lt;p&gt;That push back from developers has apparently disappeared.&lt;/p&gt;

&lt;p&gt;The mandate to use AI has come from above and many developers are using it willingly, even though they know that more bugs are being introduced to the code and tech debt is increasing.&lt;/p&gt;

&lt;p&gt;I recently watched &lt;a href="https://www.youtube.com/watch?v=zcLPGC-tvgk" rel="noopener noreferrer"&gt;an interview with Robert C. Martin aka “Uncle Bob”&lt;/a&gt; around his use of agents to build software. Unlike most people who are effectively just vibe coding software, he is at least trying to put together a system that uses concepts such as cyclomatic complexity and mutation testing to wrangle the AI code into something acceptable.&lt;/p&gt;

&lt;p&gt;To be honest, if it takes this much work and token spend to produce acceptable code from AI, is it really worth all the effort?&lt;/p&gt;

&lt;p&gt;Given we know that AI gets things wrong, shouldn't we be doing more to make sure the code is correct and maintainable? It seems like everyone has given up on good engineering practices and is happy to delegate all their thinking to the slop machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Loss of Power &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#loss-of-power" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I am not trying to put all the blame on developers here. In the past, when it was a developer market, we could demand high salaries and dictate how we wanted to build software.&lt;/p&gt;

&lt;p&gt;With all the post COVID-19 layoffs and now AI, we don't have the same bargaining power that we used to. Most developers are happy to slop out code if it means they can keep a roof over their heads.&lt;/p&gt;

&lt;p&gt;This might just be me being in an “old man yelling at clouds” mood, but I feel sad for what has become of our industry in such a short amount of time.&lt;/p&gt;

&lt;p&gt;It will be interesting to see what happens &lt;a href="https://www.youtube.com/watch?v=XEMvG2vulKg" rel="noopener noreferrer"&gt;when the AI bubble pops&lt;/a&gt; or token cost becomes 10 times more expensive. Will there suddenly be a reversal when we can't use AI to fix the spaghetti code it created any more?&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ Tools &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#tools" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://rmoff.net/2026/01/14/alternatives-to-minio-for-single-node-local-s3/" rel="noopener noreferrer"&gt;Alternatives to MinIO for single-node local S3&lt;/a&gt; - After the company behind MinIO abandoned the project I am glad there are a decent number of suitable alternatives.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/asciimoo/hister" rel="noopener noreferrer"&gt;Hister: A private search engine for the pages you visit and the files you keep&lt;/a&gt; - This looks like a cool project. I wonder if it could be hooked up to LinkWarden where I currently store all my bookmarks.&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-11/" rel="noopener noreferrer"&gt;Performance Improvements in .NET 11&lt;/a&gt; - Glad to see that .NET is continuing to improve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.ploeh.dk/2026/09/16/on-learning-programming-in-an-age-of-llms/" rel="noopener noreferrer"&gt;Learning Programming in an Age of LLMs&lt;/a&gt; - If you want to learn how to code don't think there are any shortcuts. You still need to write code and mostly likely read a book.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://will-keleher.com/posts/small-programming-tricks-matter/" rel="noopener noreferrer"&gt;Small programming tricks&lt;/a&gt; - There are some good tips in this list. Worth a read.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://technically-good.ca/newsletter/016-2026-09-13/" rel="noopener noreferrer"&gt;Chatbots and their "Safeguards," Alternative Navigation Apps&lt;/a&gt; - I loved the sarcasm in the AI section of this issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pop.rdi.sh/dario-please/" rel="noopener noreferrer"&gt;Dario, Please&lt;/a&gt; - AI companies seeking regulation is not what it seems. They are definitely not concerned about humanity. They just want a scapegoat for why they haven't achieved anything useful and to prevent open weight models from competing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://techcrunch.com/2026/09/17/microsoft-exec-called-ai-scraping-the-largest-theft-of-labor-in-human-history-new-unredacted-filings-reveal/" rel="noopener noreferrer"&gt;Microsoft exec called AI scraping 'the largest theft of labor in human history'&lt;/a&gt; - This exactly. How are so many people OK with this? Individuals have gone to prison for a lot less.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cnn.com/2026/09/18/politics/us-military-ai-false-intelligence-china-ship" rel="noopener noreferrer"&gt;US Military had close call after using AI for hallucinated intelligence report&lt;/a&gt; - It won't be AI directly that causes the end of humanity but someone trusting its output or us increasing global warming with all the data centres.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://erichgrunewald.substack.com/p/why-you-should-almost-never-use-ai" rel="noopener noreferrer"&gt;I think you should almost never use AI to write&lt;/a&gt; - I agree but take out the “almost”. Never use AI for writing. I would rather read your grammatically incorrect sentence with spelling mistakes than spend time reading something you didn't write.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://john.hartnup.uk/2026/06/07/ai-event-posters.html" rel="noopener noreferrer"&gt;AI-generated posters don’t have to be horrible&lt;/a&gt; - I see these AI generated posters everywhere now. To be honest even the improved ones still have the same generic layout. AI promotes laziness which is why you see the same thing everywhere.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://softwarecrisis.dev/letters/llmentalist/" rel="noopener noreferrer"&gt;The LLMentalist Effect (2023)&lt;/a&gt; - LLMs are statistical illusions, there is no intelligence there.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏢 Tech Industry &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#tech-industry" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.wsj.com/world/middle-east/aws-says-it-cant-restore-some-data-from-mideast-facilities-struck-by-iran-ddcb7e5d" rel="noopener noreferrer"&gt;AWS says it can't restore some data from mideast facilities struck by Iran&lt;/a&gt; - Just a reminder to back up your data in multiple places.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://frvr.com/blog/news/ps5-linux-lead-quits-as-open-source-projects-have-become-a-bunch-of-noobs-using-llms-that-they-dont-even-understand/" rel="noopener noreferrer"&gt;PS5 Linux lead quits: "a bunch of noobs using LLMs" that "they don't understand"&lt;/a&gt; - “Slop kiddies” reported the last PS5 hypervisor bug to Sony or a bounty so now we won't get PS5 Linux. Slow clap.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Miscellaneous &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#miscellaneous" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://minimalcompany.com/" rel="noopener noreferrer"&gt;Minimal Phone 2&lt;/a&gt; - This is a cool concept. Looks a bit like a Blackberry but runs Android. Everyone has a different idea of what to include in a minimal phone, so I think running Android is the right thing to do.&lt;/p&gt;




&lt;h2&gt;
  
  
  👨‍💻 Latest from me &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#latest-from-me" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I have a new video out! I wrote a few weeks ago about how “&lt;a href="https://www.alexhyett.com/newsletter/github-is-dead-whats-next/" rel="noopener noreferrer"&gt;GitHub is dead, what's next?&lt;/a&gt;”, this video goes over in-depth on how to install ForgeJo so you can move away from GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.alexhyett.com/videos/self-host-your-own-git-hub-alternative/" rel="noopener noreferrer"&gt;🎬 Self-host your own GitHub alternative&lt;/a&gt; - This is live on &lt;a href="https://videos.alexhyett.com" rel="noopener noreferrer"&gt;PeerTube&lt;/a&gt; and will be officially live on YouTube on Tuesday.&lt;/p&gt;

&lt;p&gt;This month is &lt;a href="https://inktober.com/rules" rel="noopener noreferrer"&gt;Inktober&lt;/a&gt;, so I decided to draw the thumbnail for my video this month. You can find the &lt;a href="https://www.patreon.com/AlexHyett/posts/behind-scenes-171584895" rel="noopener noreferrer"&gt;time-lapse on how I did it&lt;/a&gt; on my &lt;a href="https://patreon.com/alexhyett" rel="noopener noreferrer"&gt;Patreon&lt;/a&gt; as well the &lt;a href="https://www.patreon.com/AlexHyett/posts/blooper-reel-own-171591210" rel="noopener noreferrer"&gt;blooper reel&lt;/a&gt; from this week's video.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Quote of the Week &lt;a href="https://www.alexhyett.com/newsletter/why-is-software-not-getting-better/#quote-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Do one thing and do it well.” Read, study, and practice to become an expert on your subject.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From the book &lt;a href="https://www.alexhyett.com/book-notes/feck-perfuction/" rel="noopener noreferrer"&gt;Feck Perfuction&lt;/a&gt; by James Victore.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tech</category>
    </item>
    <item>
      <title>Self-host your own GitHub alternative</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Fri, 09 Oct 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/self-host-your-own-github-alternative-36ld</link>
      <guid>https://dev.to/alexhyettdev/self-host-your-own-github-alternative-36ld</guid>
      <description>&lt;p&gt;GitHub used to be &lt;em&gt;the&lt;/em&gt; place where developers would go to store their code and find new repositories. I have had a GitHub account for 11 years now, back then I had a lot less grey in my beard and the world was a lot simpler.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/pvObQqQQ2LU" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;For many, GitHub is still the only place where people store their code, but that is slowly changing. Thanks to AI, everyone and their gran, can now build software by simply prompting it. This has resulted in a massive amount of code being produced, mainly because some people think lines of code is a meaningful metric again and naturally all this code is being uploaded to GitHub.&lt;/p&gt;

&lt;p&gt;You might be thinking, “it can't be that bad, surely not everyone is addicted to the slop machine”.&lt;/p&gt;

&lt;p&gt;However, in GitHub's August blog post going over their 7-hour outage, they say that the number of commits per month has gone from &lt;a href="https://github.blog/news-insights/company-news/the-august-17-outage-and-the-work-ahead/" rel="noopener noreferrer"&gt;1.4 billion in April to 2.9 billion in August&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk7334bt62dqioiifmh1k.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk7334bt62dqioiifmh1k.jpeg" alt="image 22" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is definitely clear that GitHub is struggling under the load. However, that doesn't explain everything. It is only in the last year that people have really started vibe coding in earnest, but GitHub has been having problems since 2019.&lt;/p&gt;

&lt;p&gt;Of course, it could just be a coincidence that Microsoft acquired GitHub at the end of 2018 and GitHub has been having issues ever since.&lt;/p&gt;

&lt;p&gt;For me the last straw was last year when Microsoft moved GitHub to be part of its Core AI team. GitHub have always said that they are not going to use your private repositories to train their models, they will however use any code that it sees while you are using GitHub Copilot.&lt;/p&gt;

&lt;p&gt;At this point, I don't trust any AI company when they say they aren't going to train their models on your data. If you give them your data then chances are they are going to use it.&lt;/p&gt;

&lt;p&gt;So where does that leave us?&lt;/p&gt;

&lt;p&gt;Luckily there are a few places where you can still put your code and not worry too much about downtime or AI training.&lt;/p&gt;

&lt;p&gt;If you are working on an open source application, and you want it to be publicly accessible, and you want to allow people to contribute, your best bet is Codeberg.&lt;/p&gt;

&lt;p&gt;Codeberg is meant for public open source projects, so if you are mainly planning on hosting private repositories, you will need to look elsewhere.&lt;/p&gt;

&lt;p&gt;Which I will cover in a minute.&lt;/p&gt;

&lt;p&gt;Codeberg also has a strict no-AI, no crypto policy, so if you are looking for somewhere to host your vibe coded meme-coin project then keep it on GitHub or better yet, just leave it on your computer.&lt;/p&gt;

&lt;p&gt;Codeberg is actually a hosted version of ForgeJo which in itself is a fork of Gitea or &lt;code&gt;git-ee-uh&lt;/code&gt; as I kept on pronouncing it.&lt;/p&gt;

&lt;p&gt;I have been using ForgeJo for several years now to host code on my public server as well as on my home server, and it has been very reliable. For personal projects, ForgeJo does everything that I used to do with GitHub, and it even has an alternative to GitHub actions, so you can run all your builds without hitting any limits.&lt;/p&gt;

&lt;p&gt;If you are prone to a bit of vibe coding, then you can store your code on your own server without any problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Managed Hosting &lt;a href="https://www.alexhyett.com/videos/self-host-your-own-git-hub-alternative/#quick-managed-hosting" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;If the thought of having your own server seems like a lot of work, the easiest way to run ForgeJo is to set it up on Railway. This is what I did when first had a public Git server, and you can be up and running in a few clicks.&lt;/p&gt;

&lt;p&gt;I should point out that this video is not sponsored by Railway I am just a customer, but I will include my affiliate link in the description if you want to get $20 free credit and help support this channel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://railway.com?referralCode=Ezqjyt" rel="noopener noreferrer"&gt;Railway - $20 free credit&lt;/a&gt; (affiliate link)&lt;/p&gt;

&lt;p&gt;Railway make it really easy to deploy services in one click. There is already a template for ForgeJo which sets up things like Postgres and Redis for you ,and even includes a runner so you can run your builds.&lt;/p&gt;

&lt;p&gt;Once you have your Railway account set up go to this &lt;a href="https://railway.com/deploy/forgejo-railway" rel="noopener noreferrer"&gt;ForgeJo Template&lt;/a&gt; and click Deploy Now. Here we set up a new project and pick where we want our storage account based.&lt;/p&gt;

&lt;p&gt;You can also change any of the preconfigured properties or leave them with their defaults.&lt;/p&gt;

&lt;p&gt;There is a few you might want to change, which is the admin's email address. It defaults to &lt;code&gt;admin@example.com&lt;/code&gt; so you can change that to your own email address. You might also want to change the admin username which can be found further down.&lt;/p&gt;

&lt;p&gt;The admin password is going to be automatically generated, and we can find out what that is once the application is deployed.&lt;/p&gt;

&lt;p&gt;So let's deploy this and see what happens. In less than a minute everything should be deployed and ready to use.&lt;/p&gt;

&lt;p&gt;To find out our admin password, we can then click on ForgeJo, Variables, and then we need to scroll down to &lt;code&gt;FORGEJO_ADMIN_PASSWORD&lt;/code&gt; and then copy it.&lt;/p&gt;

&lt;p&gt;Then go back to deployments and click on where your application is deployed. You can then sign in with the username and password you specified earlier and you are all set up.&lt;/p&gt;

&lt;p&gt;From here I would set up a new password, and 2-factor authentication. Once that is done it is just a matter of either creating new repositories or migrating some away from GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  Migrating repositories &lt;a href="https://www.alexhyett.com/videos/self-host-your-own-git-hub-alternative/#migrating-repositories" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Migrating repositories away from GitHub is pretty simple. We can click on plus, then New Migration → GitHub.&lt;/p&gt;

&lt;p&gt;If you want to import a private repository or include things like pull requests, issues, or releases then you will need to provide a GitHub access key.&lt;/p&gt;

&lt;p&gt;To create a GitHub Access Key you need to go to GitHub then Settings, Developer Settings and Personal access tokens.&lt;/p&gt;

&lt;p&gt;You can then either create a fine-grained access token or a classic token.&lt;/p&gt;

&lt;p&gt;For fine-grained tokens you need to make sure read-only access to Contents and Metadata are given and that it can access all the repositories you want to migrate across.&lt;/p&gt;

&lt;p&gt;For classic tokens you just need to make sure that &lt;code&gt;repo&lt;/code&gt; is clicked so it has access to all your repositories.&lt;/p&gt;

&lt;p&gt;I would keep the expiry short if you are doing a one time migration, or use a longer one if you are planning on setting up a mirror.&lt;/p&gt;

&lt;p&gt;If you have your own domain name, then you can also set up Railway to use that instead of the autogenerated one. To do this click on &lt;code&gt;forgejo&lt;/code&gt; in your Railway project, then Settings and scroll down to Networking. You can then click on “+ Custom Domain”, enter in your domain, and it will give you the DNS details you need to set up with your DNS provider.&lt;/p&gt;

&lt;p&gt;So that's the easy way to set up ForgeJo, but it isn't the most private. You will likely have to deal with AI bots trying to scrap your public repositories and keep up with any updates to prevent you from getting hacked.&lt;/p&gt;

&lt;p&gt;The other way is to host on a computer inside your network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Self Hosting &lt;a href="https://www.alexhyett.com/videos/self-host-your-own-git-hub-alternative/#self-hosting" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Now I absolutely love self-hosting things. I have migrated a lot of the paid services I used to use into open source equivalents on my home network.&lt;/p&gt;

&lt;p&gt;If you would like to know more about that then let me know in the comments.&lt;/p&gt;

&lt;p&gt;The main benefit of hosting things locally is that they aren't accessible to the public internet so you don't need to worry about anyone gaining access to your server. You can be a bit more relaxed when it comes to updates, and you are not going to get any surprising bills.&lt;/p&gt;

&lt;p&gt;One of those benefits is also a downside. If you want to use the ForgeJo APIs to interact with your repositories, then you can only do so from within your home network. This hasn't really been a problem for me, because all the automations I have running, are also running on the same server. The other downside is you need a spare computer if you want to have your ForgeJo instance running all the time.&lt;/p&gt;

&lt;p&gt;You don't need a powerful computer to host your own services, you can either use an old computer or get an affordable mini pc off of eBay. My always on home server is a Dell Wyze 5070, it's this black square you can see on my pegboard behind me.&lt;/p&gt;

&lt;p&gt;I bought this off of eBay for less than £100 or $140. I did upgrade the RAM on it before prices went crazy but even the 8 GB of RAM that most of them come with is plenty.&lt;/p&gt;

&lt;p&gt;For those of us in Europe that have to worry about the cost of electricity, this thing only uses 5W when idle, which is most of the time, so it only costs me around £10 a year in electricity. Which isn't too bad.&lt;/p&gt;

&lt;p&gt;Similar to hosting on Railway I just use Docker to host all my services. I write a docker-compose file for each service and use a shared Caddy instance to provide a wildcard SSL certificate for everything on my home network. I have a domain just for my local hosted services and I point a wildcard domain to the local IP address of the server in my home.&lt;/p&gt;

&lt;p&gt;I can't access my services from outside my network unless I use a VPN but I rarely do that anyway.&lt;/p&gt;

&lt;p&gt;If your interested in setting up ForgeJo on your home network I have made all the code for my local ForgeJo setup available for my Senior tier Patreon subscribers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Patreon &lt;a href="https://www.alexhyett.com/videos/self-host-your-own-git-hub-alternative/#patreon" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Talking of Patreon. As you may have seen a few videos ago, I lost my YouTube monetisation when trying to move over to a business AdSense account. Thanks, Google!&lt;/p&gt;

&lt;p&gt;So if you would like to support this channel and see more videos like this, then the best way is to subscribe to one of my Patreon tiers.&lt;/p&gt;

&lt;p&gt;Subscribers to my Senior tier and above get early access to everything I create, as well code access, discounts on future courses, which I have one in the works at the moment, and your name featured at the end of my videos.&lt;/p&gt;

&lt;p&gt;I would like to keep these videos free from corporate sponsorships if I can, but I need your support in order to do that.&lt;/p&gt;

&lt;p&gt;Unlike most tech YouTubers on here, I haven't been caught up in the AI hype and will do a video soon on where I think the industry is headed when it comes to AI.&lt;/p&gt;

&lt;p&gt;My plan for this channel is to focus on software engineering fundamentals, system design and self-hosting, so you can actually learn something that is going to be helpful whether you end up using AI or not.&lt;/p&gt;

&lt;p&gt;Let me know in the comments what topics you would like to see.&lt;/p&gt;

&lt;p&gt;I should also point out, that you can watch all my videos on PeerTube as well and I do release them slightly earlier on there compared to YouTube. If you have an account on the Fediverse then give me a follow.&lt;/p&gt;

&lt;p&gt;Thanks for watching, and I will see you next time.&lt;/p&gt;

</description>
      <category>github</category>
      <category>selfhosting</category>
    </item>
    <item>
      <title>The one skill every developer needs right now</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 27 Sep 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/the-one-skill-every-developer-needs-right-now-39ip</link>
      <guid>https://dev.to/alexhyettdev/the-one-skill-every-developer-needs-right-now-39ip</guid>
      <description>&lt;p&gt;Don't worry I am not talking about agentic skills. This is one skill that doesn't come in a markdown file.&lt;/p&gt;

&lt;p&gt;If you are “lucky” enough to work as a software developer right now, chances are you are looking at LLM output on a daily basis. It might be you have to (or choose to) use AI tools to help with your programming. Maybe the project manager has decided to offload all ticket writing to an LLM or the documentation is now all LLM generated.&lt;/p&gt;

&lt;p&gt;Even if you abstain from using AI for doing your work, you can't get away from other people sending you AI generated content that you have to interact with. AI writing is generally overly verbose, and it just has an overall vibe that is easy to spot if you have read enough of it, or read enough actual writing to notice the difference.&lt;/p&gt;

&lt;p&gt;For example, as I am writing this newsletter I am actually voicing what I want to say in my head (or sometimes out loud). Hopefully, that means my writing sounds like me and if you have watched any of my videos or spoken to me, you can imagine me speaking this newsletter to you.&lt;/p&gt;

&lt;p&gt;Writing is supposed to be a conversation, it is a way of sharing ideas with others, and it can be a great way to process your own thoughts. I write in my journal on a daily basis, and it helps me process my emotions and thought processes. Especially if I am stressing about something, writing it down helps to put it in perspective.&lt;/p&gt;

&lt;p&gt;If you hadn't guessed yet, the one skill I am talking about is communication, especially written communication.&lt;/p&gt;

&lt;p&gt;Yes LLMs can produce plausible looking documentation and blog posts, but people can spot that you have used an LLM a mile off.&lt;/p&gt;

&lt;p&gt;A survey was done recently on &lt;a href="https://writethatblog.substack.com/p/dev-reaction-to-ai-blog-posts" rel="noopener noreferrer"&gt;how developers react to AI writing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;85% of those surveyed said it mattered a lot if they detected that a blog post was AI generated.&lt;/p&gt;

&lt;p&gt;They also asked developers how they respond to AI writing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;78% stop reading immediately&lt;/li&gt;
&lt;li&gt;71% avoid that author in the future&lt;/li&gt;
&lt;li&gt;57% downvote that author if possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only 1.24% of people would carry on reading the article like any other.&lt;/p&gt;

&lt;p&gt;Writing is still difficult to do well, but most people would still rather read someone's own thoughts that are badly written then read AI generated output.&lt;/p&gt;

&lt;p&gt;So even if you're not a great writer, don't delegate your thoughts and writing to an LLM. You have a voice which is unique to you and people want to hear it. Being able to explain things clearly to other people is such a valuable skill to have as a developer.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ Tools &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#tools" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://jasontucker.blog/how-i-turned-my-security-cameras-into-an-automatic-bird-identification-system-with-birdnet-go/" rel="noopener noreferrer"&gt;I turned my security cameras into an automatic bird identification system&lt;/a&gt; - This is a really cool use for AI, especially considering it is a small model that works on a Raspberry Pi. I just wish we had enough birds in my garden to make use of it.&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://piccalil.li/blog/a-look-at-the-geolocation-html-element-and-how-it-works/?ref=articles-rss-feed" rel="noopener noreferrer"&gt;A look at the geolocation HTML element and how it works&lt;/a&gt; - This is a really good write-up on how to use the &lt;code&gt;&amp;lt;geolocation&amp;gt;&lt;/code&gt; HTML element.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://weblog.west-wind.com/posts/2026/Sep/01/JavaScript-and-Timezones" rel="noopener noreferrer"&gt;Back to Basics: JavaScript and Timezones&lt;/a&gt; - Formatting dates and times in Javascript is always such a pain. There are some good tips and snippets in this write up.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Security &amp;amp; Privacy &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#security-and-privacy" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=6IFVTcM28KA" rel="noopener noreferrer"&gt;216M Spy TVs – The LG Smart TV Problem&lt;/a&gt; - I am sure it is not just LG that does this, but I am certainly boycotting all LG products from now on.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨 Design &amp;amp; UX &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#design-and-ux" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://73pctgeek.com/digital-sketchbooks-in-procreate/" rel="noopener noreferrer"&gt;Digital Sketchbooks in Procreate&lt;/a&gt; - This is a really cool idea for doing a digital sketchbook. Just use an actual sketchbook as your background, and then it feels more like normal drawing. Their artwork is &lt;a href="https://73pctgeek.com/sketchbook-2026/" rel="noopener noreferrer"&gt;pretty impressive too&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lea.verou.me/blog/2026/dark-mode-toggles-2/" rel="noopener noreferrer"&gt;The best dark mode toggle is probably none&lt;/a&gt; - I was thinking of adding a switch in addition to the automatic light/dark, but now I am not so sure.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/PhiloLabs/fable51-worlds" rel="noopener noreferrer"&gt;Fable 5.1 World Modeling&lt;/a&gt; - This is really cool. Although I wish they would get AI to make a tool to do this instead of relying on AI all the time for it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2609.03344" rel="noopener noreferrer"&gt;LLMs as a Cognitive Virus&lt;/a&gt; - Over the last year I have seen more and more people using AI. From posters in my garden centre to all the school emails being written by ChatGPT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mathstodon.xyz/@tao/117237320796901560" rel="noopener noreferrer"&gt;Tao: Open math problems being non-renewably mined by AI&lt;/a&gt; - By delegating your thinking to AI you never get any of those aha moments that can lead to solving other problems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://opusfived.dev/" rel="noopener noreferrer"&gt;Claude, change the “Add to Cart” button to blue&lt;/a&gt; - This sums up nicely what working with AI is like. And they wonder why developers are getting burnt out!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.joelotter.com/posts/2026/09/make-it-anyway/" rel="noopener noreferrer"&gt;Fuck it, make it anyway&lt;/a&gt; - I am glad I am not the only one who feels like this. The last paragraph really hits home:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I can start using generative AI to feel like I’m “keeping up” or “competing”, but then I won’t enjoy the work. I could stop making things entirely, but as any creative person will know that’s never really an option. Or, I can keep making things the way I enjoy, keep learning, keep doing it the hard way, for no real concrete reason other than I want to do it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🏢 Tech Industry &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#tech-industry" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://tracydurnell.com/2026/09/02/when-rationality-clashes-with-emotions/" rel="noopener noreferrer"&gt;The betrayal of perceived allies&lt;/a&gt; - I use Waterfox which is a Firefox clone. I think it is important that we have an alternative to Chrome given every other browser is based on it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://honestlyranked.com/guides/streaming-price-increases/" rel="noopener noreferrer"&gt;The same nine streaming subscriptions cost $702/year more than in 2021&lt;/a&gt; - I have been cutting down on my streaming and resorting to buying DVDs again. With these prices no wonder piracy is on the up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://graybeard.ing/software-drives-people-insane/" rel="noopener noreferrer"&gt;I have a theory that software drives people insane&lt;/a&gt; - This would explain a lot to be honest.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://holtwick.de/blog/sell-from-europe" rel="noopener noreferrer"&gt;Selling software worldwide from Europe&lt;/a&gt; - I am planning on getting in to creating and selling desktop apps in the next year. It is the same both way. In the UK I am forced to use a Merchant of Record to sell to Europe or be forced to deal with a huge amount of VAT admin work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.autom.dev/blog/google-search-goto-links" rel="noopener noreferrer"&gt;Google's anti-scraping update&lt;/a&gt; - AI companies including Google scrapped the entire internet to create LLMs. Now they are trying to protect themselves from being scraped by their creations.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎮 Gaming &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#gaming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=iZODN0QUgjI" rel="noopener noreferrer"&gt;IKEA made a mod for Skyrim&lt;/a&gt; - This is hilarious. I certainly didn't have IKEA creating a Skyrim mod on my bingo card for this year.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Miscellaneous &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#miscellaneous" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://restroomarchive.com" rel="noopener noreferrer"&gt;Restroom Archive&lt;/a&gt; - OK this is slightly gross, but I think Gaussian Splatting is a really cool technique.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://moviescenemap.com/" rel="noopener noreferrer"&gt;Movie Scene Map – 13,312 films, series, games, anime and manga&lt;/a&gt; - I used to live in Bath and there were so many films and TV shows filmed there. It is always cool to see where places were filmed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.lazaruscorporation.co.uk/blogs/artists-notebook/posts/household-food-resilience-uk-plant-based" rel="noopener noreferrer"&gt;Household food resilience (UK plant-based edition)&lt;/a&gt; - The government really isn't doing much to help the country prepare for a potential war with Russia. We are slowly starting to stock up on things just in case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://beige.party/@intransitivelie/117057396732763183" rel="noopener noreferrer"&gt;QBittorrent breaks out of sandbox to commit crimes&lt;/a&gt; - Ha. If the large companies can get away with committing crimes because the “AI” did it then why not everyone else. “You wouldn't steal a car” but your AI agent might.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lax-skyline.parcelscope.net/" rel="noopener noreferrer"&gt;Watch Los Angeles get built, one building at a time (1880–2026)&lt;/a&gt; - This is a nice concept with all the 3D buildings. I am always fascinated to learn how places developers. &lt;a href="https://www.oldmapsonline.org" rel="noopener noreferrer"&gt;OldMapsOnline&lt;/a&gt; is a good resource for Europe if you find his sort of thing interesting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nishantjosh.dev/blogs/how-to-build-a-fking-printer/" rel="noopener noreferrer"&gt;How to build a printer&lt;/a&gt; - Who said you needed to print to paper. I have a Xteink X4 so thought this was interesting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bensimms.moe/reverse-engineering-scooter/" rel="noopener noreferrer"&gt;Reverse engineering my e-scooter and rewriting the firmware in Rust&lt;/a&gt; - Some people are just geniuses when it comes to reverse engineering things.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.jim-nielsen.com/2026/hands-off-my-cables/" rel="noopener noreferrer"&gt;Don't let anyone take away your big box of cables&lt;/a&gt; - This made me laugh. I actually have 2 boxes of cables at home. My wife is always asking me to thin down my collection which I have done in the past. I have been bitten before with throwing away a cable and then having to buy a new one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.upsocl.com/en/16-year-old-mexican-student-creates-an-acoustic-fire-extinguisher-that-uses-sound-waves-to-put-out-fires-in-seconds/" rel="noopener noreferrer"&gt;Mexican student creates an acoustic fire extinguisher to put out fire in seconds&lt;/a&gt; - Well done to this student. It is one of those ideas that seems obvious but no one thought of it before. I hope this gets rolled out in more places and this student is set up for life.&lt;/p&gt;




&lt;h2&gt;
  
  
  👨‍💻 Latest from me &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#latest-from-me" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I know everyone is feeling the pinch, myself included, with prices rising everywhere (thanks Trump). With everyone seemingly overcome by AI psychosis I would like to create a space where I can still teach programming and software design, but I need your support to do that.&lt;/p&gt;

&lt;p&gt;I have updated my &lt;a href="https://www.patreon.com/AlexHyett" rel="noopener noreferrer"&gt;Patreon&lt;/a&gt; tiers to give people more (cheaper) options to support this newsletter and my channel.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Junior&lt;/strong&gt; - £2 / month - Early access to this newsletter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mid&lt;/strong&gt; - £4 / month - Everything in Junior + early access to YouTube videos and voting on new topics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Senior&lt;/strong&gt; - £6 / month - Everything in Mid + Code access, name listed on website and at the end of videos and exclusive discounts to new courses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Staff&lt;/strong&gt; - £10 / month - Everything in Senior + a personal thank you from me. I will do higher discounts for my courses on this tier too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you don't want any of the benefits and just want to give a one-off tip then you can use &lt;a href="https://ko-fi.com/alexhyett" rel="noopener noreferrer"&gt;Ko-Fi&lt;/a&gt; too.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Quote of the Week &lt;a href="https://www.alexhyett.com/newsletter/the-one-skill-every-developer-needs-right-now/#quote-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Once all of my personal needs were met, my thoughts automatically turned to how I could make the world a better place. I didn't plan the transformation. It wasn't something I thought about and decided to do. It just happened on its own. Apparently humans are wired to take care of their own needs first, then family, tribe, country, and the world, roughly in that order.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From the book &lt;a href="https://www.alexhyett.com/book-notes/how-to-fail-at-almost-everything-and-still-win-big/" rel="noopener noreferrer"&gt;How to Fail at Almost Everything and Still Win Big&lt;/a&gt; by Scott Adams.&lt;/p&gt;

</description>
      <category>careeradvice</category>
      <category>skills</category>
    </item>
    <item>
      <title>The death of SaaS and reverting to offline software</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 13 Sep 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/the-death-of-saas-and-reverting-to-offline-software-al3</link>
      <guid>https://dev.to/alexhyettdev/the-death-of-saas-and-reverting-to-offline-software-al3</guid>
      <description>&lt;p&gt;This week I was reading this article, "&lt;a href="https://jyn.dev/a-year-to-fix-security/" rel="noopener noreferrer"&gt;we have a year to fix security everywhere&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;The TL;DR, is that GLM-5.3 flash can be run locally on $5-15k hardware and is apparently good at hacking, especially when using an "abliterated" version which doesn't adhere to any safety checks.&lt;/p&gt;

&lt;p&gt;In other words, anyone with a bit of money can run an agent 24/7 to find vulnerabilities and exploit them across the web. At least that is what it claims.&lt;/p&gt;

&lt;p&gt;In the past, ethical hackers used to find vulnerabilities in a companies code and then email them to give them time to fix it, usually with the expectation of receiving a bounty. There are many cases of these vulnerabilities taking months to fix and it only getting resolved when the hacker decides to go public.&lt;/p&gt;

&lt;p&gt;With hackers using agents to find and exploit vulnerabilities, companies no longer have months to fix these vulnerabilities, they may not even have hours.&lt;/p&gt;

&lt;p&gt;For many indie developers the goal has been to create a SaaS with recurring revenue and sit back and relax. Once you have a working product you only need to iterate on it occasionally to keep customers interested and keep up with competitors.&lt;/p&gt;

&lt;p&gt;If what they are saying is true, SaaS applications will now need water tight security if they want to stay in business. This means paying for security experts to evaluate your code or they would hope running your own agent with the latest models 24/7 to find potential security issues with your software before someone else does. I hope it doesn't come to that, as the last thing we need is more AI.&lt;/p&gt;

&lt;p&gt;Either way, it is saying that SaaS is no longer a viable option for solo entrepreneurs as we don't have the resources to keep up with millions of hackers using AI agents to look for back doors in our code.&lt;/p&gt;

&lt;p&gt;If all this is true, where does that leave us?&lt;/p&gt;

&lt;p&gt;I think this is where offline software and apps are going to gain more traction again. We used to pay for applications and run them locally on our computers. Then companies switched to SaaS services so they could charge a subscription. With SaaS potentially becoming a security nightmare, I wonder if we will see a return of offline mobile and desktop applications.&lt;/p&gt;

&lt;p&gt;For those that want collaborative features, there could be an option to self host a service. Businesses can then get all the collaborative features they are used to having with cloud based options but without it being publicly accessible to the internet.&lt;/p&gt;

&lt;p&gt;Of course, all of this is already possible with self hosting. I have replaced a lot of the SaaS applications I have used in the past with open source options that run locally on my home network. If one of those contains a security vulnerability then it is not an issue as no one else can access it anyway.&lt;/p&gt;

&lt;p&gt;Here are some of the alternatives I am using instead of cloud based platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.getgrist.com/" rel="noopener noreferrer"&gt;Grist&lt;/a&gt; - This has replaced Google Sheets for me. If I need a smart spreadsheet that I can access with an API I use Grist.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vaultwarden.com/" rel="noopener noreferrer"&gt;VaultWarden&lt;/a&gt; - Integrates with the BitWarden clients. Now all my passwords are only accessible within my home network or via VPN.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://forgejo.org/" rel="noopener noreferrer"&gt;ForgeJo&lt;/a&gt; - This has replaced GitHub for all of my personal projects. Big Tech can't train AI on your code if they can't access it.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;N8N&lt;/a&gt; - When I need a simple way to automate something that you would use IFTTT or Zapier for I use N8N instead.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://uptimekuma.co/" rel="noopener noreferrer"&gt;Uptime Kuma&lt;/a&gt; - I use this to monitor the uptime of all my publicly hosted services such as my website, PeerTube and public ForgeJo instance.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://miniflux.app/" rel="noopener noreferrer"&gt;Miniflux&lt;/a&gt; - This is my RSS feed reader which has replaced Feedly for me and before that Google Reader.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also have a whole host of other self hosted software that I use ever day such as &lt;a href="https://jellyfin.org/" rel="noopener noreferrer"&gt;JellyFin&lt;/a&gt;, &lt;a href="https://audiobookshelf.org/" rel="noopener noreferrer"&gt;audiobookshelf&lt;/a&gt; and &lt;a href="https://github.com/crocodilestick/Calibre-Web-Automated" rel="noopener noreferrer"&gt;Calibre-Web-Automated&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I will do some more videos and posts in the future about my self-hosted set up as I think more people are going to need something similar going forward.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ Tools &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#tools" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/stemdeckapp/stemdeck" rel="noopener noreferrer"&gt;StemDeck, a free, open-source and local AI stem separator&lt;/a&gt; - This is really cool. As a guitarist, it would definitely be helpful to have a way to isolate just the guitar from a song to see how it is played without all the other instruments or vocals. I did tried this out with Chasing Cars by Snow Patrol and it did a fantastic job. Interesting naming so we now have StemDeck, SteamDeck and StreamDeck...&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.bennadel.com/blog/4908-programming-as-a-hobby-in-the-age-of-ai.htm" rel="noopener noreferrer"&gt;Programming As A Hobby In The Age Of AI&lt;/a&gt; - I still think that writing code by hand isn't something you need to justify. People are only able to review and validate AI generated code because they know how to write it. If you don't continue the practice then you won't be able to review the AI output anymore.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Security &amp;amp; Privacy &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#security-and-privacy" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bobdahacker.com/blog/tldv-hack" rel="noopener noreferrer"&gt;Tl;dv: Over 180k meetings left wide open&lt;/a&gt; - Wow we used TL;DV at work. I wonder if they still would have used it knowing all the recording meetings were public. It is these kind of data breaches that make running everything locally more compelling.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨 Design &amp;amp; UX &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#design-and-ux" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blog.jim-nielsen.com/2026/ai-aesthetic/" rel="noopener noreferrer"&gt;The AI Aesthetic&lt;/a&gt; - I hadn't picked up on the small icons as I have seen other apps prior to AI using these as well. Obsidian which I use to write all my posts has them for example as well. I have definitely noticed the &lt;a href="https://op.tngl.io/every-fucking-website/" rel="noopener noreferrer"&gt;serif + mono font combination, orange highlighting and blinking dots everywhere now&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://jola.dev/posts/no-cost-no-value" rel="noopener noreferrer"&gt;No cost, no value&lt;/a&gt; - This is where I am at right now. I could use AI and create things the easy way but I would rather spend the time doing it myself and learning along the way. It won't be quicker or easier but it will definitely be more fulfilling.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.science.org/content/article/ai-s-top-startups-are-barely-publishing-their-research" rel="noopener noreferrer"&gt;AI's top startups are barely publishing their research&lt;/a&gt; - I think if AI was solving the climate crisis instead of contributing to it and curing cancer it might just result in a net positive. Except it isn't doing any of these things, and if it is the AI companies are keeping it to themselves.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://languagehat.com/destructive-ai/" rel="noopener noreferrer"&gt;Destructive AI.&lt;/a&gt; - The destruction of books solely to profit AI companies really makes me mad.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gruhn.me/blog/2026-08-03/" rel="noopener noreferrer"&gt;Don't be a meat proxy&lt;/a&gt; - This is my pet peeve with people using AI. They don't even bother to reword or in some cases read what the LLM has produced. Here is a 10 page document Claude output. If you aren't reading, correcting and changing the code then you are just a meat proxy between the reviewer and the LLM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://queue.acm.org/detail.cfm?id=3807963" rel="noopener noreferrer"&gt;Eight Myths on Software Engineering and GenAI&lt;/a&gt; - This is a good set of myths that I think help explain how GenAI isn't the solution people think it is.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.docker.com/products/docker-sandboxes/" rel="noopener noreferrer"&gt;Docker Sandboxes – Disposable, isolated sandboxes for AI agents&lt;/a&gt; - If you are going to be running AI agents on your computer then you need to make sure it is sandboxed to make sure that it doesn't &lt;code&gt;rm -rf&lt;/code&gt; you home directory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://research.meta.ai/blog/introducing-muse-glimmer-open-agentic-model" rel="noopener noreferrer"&gt;Muse Glimmer: 30B-parameter model optimized for always-on local agent workflows&lt;/a&gt; - Another local model from Meta. I am not sure this good at coding so looks to be more for personal assistant scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.curiousquail.com/where-do-you-draw-the-ai-line/" rel="noopener noreferrer"&gt;Where do YOU draw the AI line?&lt;/a&gt; - This seems to be the norm now. If I was forced to use AI I would quit on the spot. At the moment I am on some what of a career sabbatical trying to work out a way so I don't have to go back to something like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.atomic14.com/2026/08/18/detecting-claude-with-letter-counts" rel="noopener noreferrer"&gt;Detecting Claude by counting letters&lt;/a&gt; - This is quite cool. At least it recognised my text as written by a meat bag. With AI having to watermark all output these detection tools should get better. You can try it out here: &lt;a href="https://meatbag.atomic14.com/" rel="noopener noreferrer"&gt;Robot (Claude or ChatGPT) or Meatbag?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://overkill.wtf/posts/the-smell-of-ai" rel="noopener noreferrer"&gt;The smell of AI&lt;/a&gt; - For me as a developer, I do care if a tool is using generated code. It generally means the quality of that tool is going to degrade. This isn't always the case though. I won't stop using a tool because an LLM has been used in generating the code but if the tool stops working as well then I am unlikely to come back.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.autodidacts.io/vibecoding-isnt-as-fun-as-writing-code-by-hand/" rel="noopener noreferrer"&gt;Vibecoding isn't as fun as writing code by hand&lt;/a&gt; - 100%. I particularly agree with this quote which some it up nicely.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I don’t like the way it makes me feel, and I don’t like the quality of the output. It manages to make me feel dumb and superfluous (and, sometimes, dirty for even using it), without earning my respect.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://louisabraham.github.io/load-bearing/" rel="noopener noreferrer"&gt;The load-bearing vocabulary of Claude&lt;/a&gt; - LLMs definitely have a very particular language. It might be the use of these words that cause it. I can never quite pin point it but I get the feeling that text is AI when reading it without being able to fully prove it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lwn.net/Articles/1091231/" rel="noopener noreferrer"&gt;Debian votes to allow "responsible use of generative AI"&lt;/a&gt; - I like Debian, it is often my first choice for putting on my servers. I will have to see how this pans out.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏢 Tech Industry &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#tech-industry" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.noemamag.com/why-is-everyone-in-tech-so-sad/" rel="noopener noreferrer"&gt;What happens if an entire class of workers loses faith in their careers&lt;/a&gt; - I am not sure AI will ever replace nonsense jobs but will likely just make them even more pointless.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.globalnerdy.com/2026/08/18/if-you-watch-only-one-ad-today-good-luck-with-that-watch-this-one/" rel="noopener noreferrer"&gt;If you watch only one ad today (good luck with that), watch this one!&lt;/a&gt; - This is hilarious. At least there are companies actively against AI data centres.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://observationalepidemiology.blogspot.com/2026/08/it-is-sign-of-times-that-amazon-gets-to.html" rel="noopener noreferrer"&gt;It is a sign of the times that Amazon gets to call this fair use while huge corporations try to sue the Internet Archive out of business.&lt;/a&gt; - The Internet Archive is also scanning books but unlike Amazon they aren't getting destroyed after. Scanning books privately and then selling derivative works based on the complete book is still IP theft.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sals.place/blog/github-growth/" rel="noopener noreferrer"&gt;GitHub's growth&lt;/a&gt; - This does make me feel a bit sad for GitHub (only slightly). It isn't entirely their fault that &lt;a href="https://isgithubcooked.com/" rel="noopener noreferrer"&gt;GitHub is now down so often&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.businessinsider.com/nvidia-in-talks-to-buy-hugging-face-13-billion-dollars-2026-8" rel="noopener noreferrer"&gt;Nvidia agrees to acquire Hugging Face for $13B&lt;/a&gt; - I wonder where this leaves open weight models now. I can see Nvidia trying to find a way to profit from this too.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎮 Gaming &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#gaming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://arstechnica.com/gaming/2026/08/a-12tb-steam-teraleak-spills-more-than-a-decade-of-lost-pc-gaming-history/" rel="noopener noreferrer"&gt;A 12TB Steam "teraleak" spills more than a decade of lost PC gaming history&lt;/a&gt; - As a big lover of Steam games such as Portal all these leaks are really interesting.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Miscellaneous &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#miscellaneous" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.runnersworld.com/news/a73355106/hamster-wheel-strava-running/" rel="noopener noreferrer"&gt;A physicist rigged his pet hamster’s wheel to upload to Strava&lt;/a&gt; - Haha this is hilarious.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ciechanow.ski/moon/" rel="noopener noreferrer"&gt;Moon&lt;/a&gt; - I love these explanations we interactive diagrams.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.orbify.eu/demo/" rel="noopener noreferrer"&gt;Inception-style curved map for turn-by-turn directions&lt;/a&gt; - Useful? Probably not. Really cool to watch, absolutely!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://deadparrotbbs.com/why-old-software-sometimes-feels-better/" rel="noopener noreferrer"&gt;Why Old Software Sometimes Feels Better&lt;/a&gt; - This is the software I want to make. Modern software that users can feel that they own and understand.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Quote of the Week &lt;a href="https://www.alexhyett.com/newsletter/the-death-of-saas-and-reverting-to-offline-software/#quote-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;By sharing your journey publicly—and inviting friends, family, and complete strangers along for the ride—you will create your own fan club who are actively rooting for your success.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From the article &lt;a href="https://nathanbarry.com/wealth-creation/" rel="noopener noreferrer"&gt;"The ladders of wealth creation a step-by-step roadmap to building wealth"&lt;/a&gt; by Nathan Barry.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>selfhosting</category>
      <category>security</category>
    </item>
    <item>
      <title>Becoming more nostalgic in my old age</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 30 Aug 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/becoming-more-nostalgic-in-my-old-age-26h1</link>
      <guid>https://dev.to/alexhyettdev/becoming-more-nostalgic-in-my-old-age-26h1</guid>
      <description>&lt;p&gt;I say "old age" in the title of this post, I am still in my 30s, and I don't turn 40 until next year, but I have grey in my beard and I have definitely paraphrased "back in my day" more than once. Admittedly it is mostly to my children, so they can learn a little bit about what it was like growing up in the "late 1900s" not being surrounded by technology and the internet every second of the day.&lt;/p&gt;

&lt;p&gt;My daughter asked me whether it was better growing up as a kid when I was younger vs now. Obviously I am biased, but I think we did have it better as kids.&lt;/p&gt;

&lt;p&gt;Yes there was less choice when it came to entertainment and toys but abundant choice isn't always a good thing. Certainly in the UK where we only had 4 TV channels, with kids shows limited to a few hours each day, everyone watched the same thing.&lt;/p&gt;

&lt;p&gt;We were all exposed to the same adverts and ended up playing the same games and getting the same toys at Christmas (or wanted them). To be fair thanks to reruns, I watched some of the same cartoons my parents watched. My kids however are only vaguely aware of who Bugs Bunny is, the horror.&lt;/p&gt;

&lt;p&gt;I find myself getting more nostalgic for the technology that we had growing up as well. Like many my age, my first phone was a Nokia 3210. I still have it in a drawer somewhere. It still turns on, the battery still lasts a week.&lt;/p&gt;

&lt;p&gt;The next phone I got was a Nokia 3510, bright blue and orange and had a colour screen and polyphonic ringtones. Yes it was only a 12 bit colour, 96 x 65 pixel display but it was exciting.&lt;/p&gt;

&lt;p&gt;With every new release the technology got noticeably better, sharper displays, better sound, better camera. It made sense to update your phone every year or two as the next release was going to be twice if not 3 times better than what you had before.&lt;/p&gt;

&lt;p&gt;Now the difference between releases is marginal.&lt;/p&gt;

&lt;p&gt;Between the iPhone 16 and 17 you have a slightly bigger display, 10% faster chip and a better front camera. The only time I upgrade now is when the software becomes so bloated my phone struggles to cope or the battery dies.&lt;/p&gt;

&lt;p&gt;It is not just physical tech but software and games too. I have 292 games in my Steam library most of them I bought from Humble Bundle or Steam sales. I am very aware that in 10 years time or less most of those games probably won't work.&lt;/p&gt;

&lt;p&gt;Most of them need an internet connection to the games servers and Steam to work. Even consoles are &lt;a href="https://www.cnbc.com/2026/07/01/sony-playstation-physical-disc-production-2028.html" rel="noopener noreferrer"&gt;no longer coming with physical media anymore&lt;/a&gt; and the ones that did still required you to download a large amount and create an account before you can start playing.&lt;/p&gt;

&lt;p&gt;It didn't use to be like this. PC games came on floppy disks and CDs. Consoles had cartridges that you could plug in and start playing. No internet connection needed, no account needed. Yes the graphics are better than they used to be, but are we really much better off?&lt;/p&gt;

&lt;p&gt;Maybe I need to start buying my games from &lt;a href="https://www.gog.com" rel="noopener noreferrer"&gt;Gog&lt;/a&gt; so they would at least be DRM free or just play retro titles from now on. The latter might be the only option unless graphics card and RAM prices drop to a reasonable level again.&lt;/p&gt;

&lt;p&gt;Either way I am certainly buying more physical books and DVDs than I used to and buying a record player doesn't seem like a crazy idea right now.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://jelly-ui.com/" rel="noopener noreferrer"&gt;Jelly UI: Soft-body physics for native HTML form controls&lt;/a&gt; - I shared the other week how all the buttons looked the same. These will certainly help you stand out.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Security &amp;amp; Privacy &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#security-and-privacy" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://beko.famkos.net/2026/07/27/id-not-buy-a-lg-monitor/" rel="noopener noreferrer"&gt;I’d not buy a LG monitor&lt;/a&gt; - In 2026 even your monitor installs spyware on your computer without you knowing. I hope LG lose a lot of customers over this.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://resobscura.substack.com/p/quality-non-fiction-books-are-the" rel="noopener noreferrer"&gt;Quality non-fiction books are the antithesis of AI slop&lt;/a&gt; - We may still need to start hoarding old non-fiction text books like this (see link below):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://futurism.com/artificial-intelligence/ai-companies-destroying-rare-books" rel="noopener noreferrer"&gt;AI Companies Are Buying Antique Books, Ingesting Their Contents to Train Models, and Then Destroying Them at Incredible Scale&lt;/a&gt; - AI companies are buying books from second hand book sellers in bulk and cutting off the bindings to scan them quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://beej.us/blog/data/ai-making/" rel="noopener noreferrer"&gt;On Making&lt;/a&gt; - I like this analogy. If I asked a carpenter to build me a new porch I wouldn't proudly show it off to everyone as if I had built it. However people do this all the time with AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://glyphack.com/attention/" rel="noopener noreferrer"&gt;It's getting harder to focus every day&lt;/a&gt; - Our attention spans were already being attacked tiktoks, shorts and reels. Now we have LLMs to destroy what little concentration we have left. It is almost as if this was all planned.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://obryant.dev/p/2x-not-10x/" rel="noopener noreferrer"&gt;2x, not 10x: coding with LLMs in 2026&lt;/a&gt; - From my experience with LLMs 2x seems realistic. This only covers the initial creation of the code though. I think if you factor in maintenance and bugs on a codebase you no longer understand then it will be less than that.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏢 Tech Industry &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#tech-industry" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ptrchm.com/posts/nothing-works-and-everyone-is-euphoric/" rel="noopener noreferrer"&gt;If coding has been solved, why does software keep getting worse?&lt;/a&gt; - Even before AI software was getting worse but I think it has definitely accelerated the problem. As I mentioned in my post, software had to be meticulously tested before being released as there was no way of patching it once it was out there. Now companies will release software full of bugs and worry about it later.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎮 Gaming &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#gaming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://brennan.day/playing-the-games-we-have/" rel="noopener noreferrer"&gt;Playing the Games We Have&lt;/a&gt; - I have been enjoying emulated games a lot recently. The Steam Deck is great and can play everything from SNES up to PS3. You can play them all offline too. I even spent an hour the other day playing the GameBoy colour version of Tetris. "Back in my day" I only had the black and white version.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Miscellaneous &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#miscellaneous" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://refactoringenglish.com/blog/why-i-stopped-creating-content/" rel="noopener noreferrer"&gt;Why I Stopped "Creating Content"&lt;/a&gt; - I am not a big fan of the word "content" either and generally say I am recording a video or writing a blog post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://glinscott.github.io/beam-engine/" rel="noopener noreferrer"&gt;The Beam Engine&lt;/a&gt; - I love all the illustrations they have put into this explanation. If only all tutorials were this good.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://daverupert.com/2026/07/number-chart-go-up/" rel="noopener noreferrer"&gt;Double your business with companies you like&lt;/a&gt; - We all need to do this more. Yes it is cheaper and more convenient to buy a book on Amazon than the independent book store you like to look around on the weekend. However, that independent bookstore might not exist without you buying something but Amazon is going to be fine without your sale.&lt;/p&gt;

&lt;p&gt;If you are ever near my neck of the woods in the UK, &lt;a href="https://www.store104.co.uk/" rel="noopener noreferrer"&gt;Store 104 in Rochester&lt;/a&gt; and &lt;a href="https://harbourbooks.org/" rel="noopener noreferrer"&gt;Harbour Books in Whitstable&lt;/a&gt; are both very good.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gadgeteer.co.za/it-seems-a-lot-like-dead-internet-has-actually-come-true/" rel="noopener noreferrer"&gt;It Seems a Lot Like Dead Internet Has Actually Come True&lt;/a&gt; - This is certainly true for all the main text social media platforms. X, LinkedIn and Reddit I am pretty sure is 60-80% bots at this point. Once video generation gets better and cheaper it will be coming for the other platforms too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lapcatsoftware.com/articles/2026/7/14.html" rel="noopener noreferrer"&gt;Apple should be ashamed of its hostile App Store rating system&lt;/a&gt; - My app &lt;a href="https://habitted.app/" rel="noopener noreferrer"&gt;HabitTed&lt;/a&gt; only has one review on the AppStore which basically makes it invisible unless you search for the exact phrase "habitted - habit tracker". I can see why people end up paying for fake reviews.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Quote of the Week &lt;a href="https://www.alexhyett.com/newsletter/becoming-more-nostalgic-in-my-old-age/#quote-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Would you tell me, please, which way I ought to go from here?” “That depends a good deal on where you want to get to,” said the Cat.&lt;br&gt;&lt;br&gt;
“I don’t much care where—” said Alice.&lt;br&gt;&lt;br&gt;
“Then it doesn’t matter which way you walk,” said the Cat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From "Alice's Adventures in Wonderland" by Lewis Carroll.&lt;/p&gt;

</description>
      <category>tech</category>
      <category>nostalgia</category>
    </item>
    <item>
      <title>But At What Cost?</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 16 Aug 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/but-at-what-cost-o6b</link>
      <guid>https://dev.to/alexhyettdev/but-at-what-cost-o6b</guid>
      <description>&lt;p&gt;As a race, humans are really bad at doing cost benefit analysis. We might try and weigh up the pros and cons but we all have a tendency to exaggerate the pros if they are beneficial to us and downplay the cons that we can't directly see. This is also the case if the downsides are not immediate but will affect us at some point in the future.&lt;/p&gt;

&lt;p&gt;We see this pattern throughout history. We find something useful or pleasurable and later discover that it is harmful or unethical, and then continue doing it for another 50 years.&lt;/p&gt;

&lt;h2&gt;
  
  
  Asbestos &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#asbestos" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Take asbestos for example. It has been used for hundreds of years, it is dirt cheap, strong and fire resistant. So we used it everywhere in tiles, in furniture and even in clothing.&lt;/p&gt;

&lt;p&gt;The first documented death from asbestos was in 1906. In 1918 insurers stopped covering asbestos workers due to the known health risks.&lt;/p&gt;

&lt;p&gt;It took until 1999 to completely ban it in the UK and until 2024 in the US. We knew it was killing people but we kept using it because it was cheap and it didn't directly affect those benefiting from the cost savings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smoking &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#smoking" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;People have smoked tobacco for years and it was introduced to Europe by Columbus in 1492. Smoking was seen as cool, and a way to help you relax. It was given to soldiers in WWI and WWII to help with the stresses of war.&lt;/p&gt;

&lt;p&gt;As early as 1912 we saw evidence that smoking caused lung cancer. In the 1940s it was common to see adverts from tobacco companies featuring doctors saying their brand was healthier than others. It wasn't until the study in 1950 that people started taking the link seriously.&lt;/p&gt;

&lt;p&gt;Unlike asbestos though, cigarettes haven't been banned but at least smoking in public places has (in a lot of countries) and it is becoming less popular over time. Still in some countries as much as 30% of the population still smoke.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meat &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#meat" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The same is true for the meat industry. I think we all know that our obsession with eating meat is damaging the environment and the way the animals are treated is ethically wrong. Livestock production counts for 14-18% of greenhouse gas emissions with the &lt;a href="https://www.bbc.co.uk/news/explainers-59232599" rel="noopener noreferrer"&gt;majority coming from cows&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was vegan for a few years but I have since reintroduced meat back into my diet at a reduced amount. I don't consume dairy products and I very rarely eat beef. It is mostly just chicken, fish, and some pork.&lt;/p&gt;

&lt;p&gt;We have meat free dinners 2-3 times a week. I switched back to eating meat mostly for health and convenience. I am not the greatest cook and found myself resorting more and more to processed vegan alternatives than whole foods which wasn't great.&lt;/p&gt;

&lt;p&gt;I always buy free range eggs and chicken but I know that "free range" isn't what we think it is and they still spend most of their lives in cramped conditions. It is easy to ignore the negatives when they don't affect us directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;You might have guessed where this was heading.&lt;/p&gt;

&lt;p&gt;The same pattern can be seen with people's AI usage. AI allows us to generate code, images, text, and video. In the past I have used AI to generate some useful personal tools and funny images. AI allows people to create things they wouldn't otherwise have the skills or time to create.&lt;/p&gt;

&lt;p&gt;As with all the above examples, few people consider the negative effects and only see how it benefits them.&lt;/p&gt;

&lt;p&gt;As I write this, in my area of the UK, it hasn't rained properly for nearly 2 months. The majority of the country is in a drought and all the fields look dead. The rest of Europe is suffering a similar fate with wildfires cropping up everywhere.&lt;/p&gt;

&lt;p&gt;Despite this, the UK still plans on building over 100 data centres over the next few years due to the popularity of AI. It is difficult to get direct numbers for how much water is used for these data centres as it depends on how they are cooled. Those with evaporative cooling towers use millions of gallons of water per month whereas most are now built with closed loop systems which use less but still require a lot of water on the initial fill.&lt;/p&gt;

&lt;p&gt;Even if the data centres aren't using much water they still require a huge amount of electricity (20 MW to 1 GW). The proposed plans are likely to double the UK's energy usage. Some of this power will come from renewable sources but the increase strain will cause more to come from fossil fuels and nuclear which contribute to greenhouse gases and water usage.&lt;/p&gt;

&lt;p&gt;I have only focused on the environmental impacts here and I haven't even touched on &lt;a href="https://news.harvard.edu/gazette/story/2025/11/is-ai-dulling-our-minds/" rel="noopener noreferrer"&gt;cognitive decline&lt;/a&gt;, the &lt;a href="https://www.techspot.com/news/113277-ai-firms-quietly-buying-destroying-millions-printed-books.html" rel="noopener noreferrer"&gt;destroying of books&lt;/a&gt; or the ethical or legal implications of the training data used.&lt;/p&gt;

&lt;p&gt;I am not going to tell you to stop using AI but just to consider whether the benefits for yourself are worth the cost. Do you need to use AI for every little code change or could some of it be done manually?&lt;/p&gt;

&lt;p&gt;Local AI doesn't solve everything as it still uses more power and is still trained on illegally obtained datasets. It doesn't however have the same environmental impact or result in as much cognitive decline (due to lack of capability) as cloud based models.&lt;/p&gt;

&lt;p&gt;I plan on doing a detailed analysis of the pros and cons of AI in the future. Personally for me the costs outweigh the benefits so I won't be using AI anymore.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ Tools &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#tools" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://scottwillsey.com/building-and-shipping-mac-and-ios-apps-without-ever-opening-xcode/" rel="noopener noreferrer"&gt;Building and shipping Mac and iOS apps without opening Xcode&lt;/a&gt; - I wish I found this when I was developing HabitTed. I did most of the coding in Zed and switched back to XCode to build and debug.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lalitm.com/post/git-history/" rel="noopener noreferrer"&gt;The git history command&lt;/a&gt; - I knew about &lt;code&gt;git history&lt;/code&gt; of course but didn't know there were more commands that could be used with it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://alexwlchan.net/2026/no-main-hook/" rel="noopener noreferrer"&gt;A Git hook to prevent committing directly to main&lt;/a&gt; - There was a VS Code extension that I used to use for this but this is a better way.&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://danq.me/2026/07/09/your-app-could-have-been-a-webpage/" rel="noopener noreferrer"&gt;Your 'app' could have been a webpage (so I fixed it for you)&lt;/a&gt; - I love it when people reverse engineer things and get equally annoyed by everything being an app.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Security &amp;amp; Privacy &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#security-and-privacy" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://allaboutcookies.org/eu-mandatory-distracted-driver-system" rel="noopener noreferrer"&gt;Every new car sold in the European Union must include a driver monitoring camera&lt;/a&gt; - Well this is disturbing. Is anyone else sick of living in a Black Mirror episode?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jacroe.com/journal/post/2026-07-14-01-19-00_violentmonkey-sanitize-youtube-share-links" rel="noopener noreferrer"&gt;Sanitize YouTube Share Links&lt;/a&gt; - More tracking we need to try and avoid.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://the.unknown-universe.co.uk/privacy-security/vpn-humiliation/" rel="noopener noreferrer"&gt;The Great VPN Humiliation: Why the Government Actually Backed Down&lt;/a&gt; - I am glad the UK government gave up trying to ban VPNs.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨 Design &amp;amp; UX &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#design-and-ux" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://clocks.dev" rel="noopener noreferrer"&gt;Collection of Digital Clock Designs&lt;/a&gt; - These are really cool and creative, although I don't know if I could use some of these on a daily basis.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#ai-1" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://hamishcampbell.com/our-failure-to-mediate-the-mess/" rel="noopener noreferrer"&gt;Our failure to mediate the mess&lt;/a&gt; - As a developer I am pro-tech. I grew up in an era where each innovation made our lives better with minimal impact and zero privacy invasions. As I have said above, we shouldn't put technological progress above everything else though.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adi.bio/reality" rel="noopener noreferrer"&gt;Punch yourself in the face with reality&lt;/a&gt; - This is definitely true. People made useless software before and they are just making more with AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sandordargo.com/blog/2026/07/15/how-ai-kills-flow" rel="noopener noreferrer"&gt;The Prompt-Wait-Evaluate Loop: How AI Kills Flow Without You Noticing&lt;/a&gt; - When I had to use AI for work it was the context switching that bothered me the most.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.theocharis.dev/blog/llm-critics-are-right-i-use-llms-anyway/" rel="noopener noreferrer"&gt;The LLM Critics Are Right. I Use LLMs Anyway&lt;/a&gt; - &lt;a href="https://en.wikipedia.org/wiki/Cognitive_dissonance" rel="noopener noreferrer"&gt;"Cognitive dissonance"&lt;/a&gt; describes AI perfectly. It is the same as an animal lover still eating meat. Many developers know and agree with all the downsides of AI but continue to use it anyway.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.mixfont.com/experiments/decoy-font" rel="noopener noreferrer"&gt;Decoy Font&lt;/a&gt; - I am not sure this is the best way to combat AI web-scraping.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎮 Gaming &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#gaming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://18words.com/" rel="noopener noreferrer"&gt;18 Words&lt;/a&gt; - My wife loves word games and we both found this quite fun. I must admit I couldn't get all 18 in the time though.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Quote of the Week &lt;a href="https://www.alexhyett.com/newsletter/but-at-what-cost/#quote-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Our new challenge as little snowflake humans will be to prove we aren't language models.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From the article &lt;a href="https://maggieappleton.com/forest-talk" rel="noopener noreferrer"&gt;The Expanding Dark Forest and Generative AI&lt;/a&gt; by Maggie Appleton.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tech</category>
    </item>
    <item>
      <title>Uniqueness is the key to standing out</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 02 Aug 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/uniqueness-is-the-key-to-standing-out-1e30</link>
      <guid>https://dev.to/alexhyettdev/uniqueness-is-the-key-to-standing-out-1e30</guid>
      <description>&lt;p&gt;The other day I saw this post about "Stolen Buttons". It is a browser extension that "steals" a button from every website that you visit. You can see the creators collection of "stolen" buttons here: &lt;a href="https://anatolyzenkov.com/stolen-buttons" rel="noopener noreferrer"&gt;Stolen Buttons | Anatoly Zenkov&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you scroll through the list there will likely be a few that catch your eye, as they are a little bit different. It might be the shape, the colour, or the font used that makes them stand out.&lt;/p&gt;

&lt;p&gt;The majority of the buttons though are flat and pill shaped. They are usually blue or purple.&lt;/p&gt;

&lt;p&gt;A lot of this is due to the prevalence of CSS and UI frameworks like Tailwind and Bootstrap over the last decade. These frameworks have made it a lot easier for developers to put together websites and UI designs but without additional customisation everything starts looking the same.&lt;/p&gt;

&lt;p&gt;I must admit I am guilty of this as well. Over the years, a lot of the personality and uniqueness has slowly been removed from my personal site which is a shame.&lt;/p&gt;

&lt;p&gt;I remember one of the websites I made as a teenager had a negative (blue) image of my hand that morphed into tentacles. I had another that featured a 3D person that I made in blender that pointed to the various links when you hovered over them. My website now is a lot more generic and probably not that memorable for people who visit it.&lt;/p&gt;

&lt;p&gt;With people increasingly using AI for website design, we see this problem keep coming up again. Instead of Bootstrap or Tailwind websites, we have Claude websites.&lt;/p&gt;

&lt;p&gt;Claude has a very distinctive style which wasn't that common before AI coding became prevalent. You can see some examples here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://xcancel.com/biiordache/status/2045606787001282774" rel="noopener noreferrer"&gt;Example 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://xcancel.com/Siddharth87/status/2045244396308934685" rel="noopener noreferrer"&gt;Example 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Websites generated with AI will typically have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inter + JetBrains Mono font&lt;/li&gt;
&lt;li&gt;Blinking Dot&lt;/li&gt;
&lt;li&gt;Cards with a coloured border on the left&lt;/li&gt;
&lt;li&gt;Overuse of gradients&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a vibe coded guide on how LLMs work that shows a lot of these patterns: &lt;a href="https://ynarwal.github.io/how-llms-work/" rel="noopener noreferrer"&gt;How LLMs Work — A Visual Deep Dive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course there have been attempts to come up with AI skills to make your designs better. They do this by removing a lot of these AI tells and give the models more input into how to style the websites.&lt;/p&gt;

&lt;p&gt;All you need to do to achieve a unique website is to download some markdown files used by thousands of other developers.&lt;/p&gt;

&lt;p&gt;In case you missed my obvious sarcasm, I am not suggesting you do this.&lt;/p&gt;

&lt;p&gt;The web used to be a varied unique place with every website looking a little bit different. Some of this is still prevalent in the IndieWeb but even there many people are using &lt;a href="https://bearblog.dev/" rel="noopener noreferrer"&gt;Bear Blog&lt;/a&gt; which makes all their websites look the same.&lt;/p&gt;

&lt;p&gt;The uniqueness comes from people adding their own unique styles and personalities into their designs. They may not be perfect but at least they are different.&lt;/p&gt;

&lt;p&gt;The more we get bombarded with AI slop the better we are at filtering it out. The same happened with adverts. As the web filled up with ads we got better at ignoring them. I couldn't tell you what the last ad I watched was about as my brain just ignored it.&lt;/p&gt;

&lt;p&gt;I plan to add some more uniqueness to my website such hand drawn elements and different styles.&lt;/p&gt;

&lt;p&gt;Here are some good examples to inspire you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://owltastic.com/" rel="noopener noreferrer"&gt;Meagan Fisher Couldwell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://braydenfriesen.com/" rel="noopener noreferrer"&gt;Brayden Friesen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://peteroravec.com/" rel="noopener noreferrer"&gt;Peter Oravec - Front-end Developer | Javascript | Angular | Node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dustinbrett.com/" rel="noopener noreferrer"&gt;daedalOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bruno-simon.com/" rel="noopener noreferrer"&gt;Bruno's&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://rafa.design/" rel="noopener noreferrer"&gt;Rafa's website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.adamhartwig.co.uk/" rel="noopener noreferrer"&gt;Adam Hartwig&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kaisermann.me/" rel="noopener noreferrer"&gt;kaisermann | web engineer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ Tools &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#tools" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://evilbit.de/dns-resolver-guide.html" rel="noopener noreferrer"&gt;Choosing a Public DNS Resolver&lt;/a&gt; - I use Pi-Hole with a custom block list but I fallback to a standard DNS for everything else. There is a good list of DNS servers you can use here whether you have a Pi-hole or not to give you a bit more protection.&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://brennan.day/publishing-my-eleventy-blog-to-the-atmosphere-with-standard-site/" rel="noopener noreferrer"&gt;Publishing My Eleventy Blog to the ATmosphere with Standard.site&lt;/a&gt; - I haven't gone down the Standard.site route yet but this is a great guide if you wanted to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stevekrouse.com/learn-to-code" rel="noopener noreferrer"&gt;Learning to code is still worthwhile&lt;/a&gt; - In addition to this, the people saying AI is great are those that already know how to code and can steer or correct it's mistakes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Security &amp;amp; Privacy &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#security-and-privacy" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/i/status/2071277885646868536" rel="noopener noreferrer"&gt;Instagram is incorporating users' photos in ads for Meta Glasses&lt;/a&gt; - Everything about Meta's Glasses are gross. At least the group "Everyone Hates Elon" is trying to &lt;a href="https://futurism.com/future-society/new-meta-advertisement-brutal-glasses-epstein" rel="noopener noreferrer"&gt;educate people&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏢 Tech Industry &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#tech-industry" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://kotaku.com/playstation-store-movies-digital-studio-canal-terminator-2000711013" rel="noopener noreferrer"&gt;PlayStation Is Deleting 551 Movies from Customers' Accounts&lt;/a&gt; - I have only ever bought one movie digitally only because it was the same price as renting it. My kids really wanted to watch the animated Grinch at Xmas one year. All the other movies I own are on Blu-ray and DVD, good luck deleting those.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dervis.de/physical/" rel="noopener noreferrer"&gt;The case for physical media ownership&lt;/a&gt; - Still not sure about buying physical media? There are a lot of good reasons why you should here. I must admit I am a bit nervous about all the Steam games I own. I really need to back them up and see if they can be played offline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dustycloud.org/blog/what-happened-to-the-fight-for-the-internet/" rel="noopener noreferrer"&gt;What happened to the fight for the Internet?&lt;/a&gt; - I think a lot of this is the fact that for many people under say 35, don't remember what the internet used to be like. All they know is the 5 big corporations.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://hidde.blog/ai-greener-choices/" rel="noopener noreferrer"&gt;AI and greener choices&lt;/a&gt; - I am going to do a post on all the pros and cons of AI because I don't think there is enough information in one place for people to make an informed decision. If you do want to use AI then you need to be conscious of it's environmental impact.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jayacunzo.com/blog/your-move-chief" rel="noopener noreferrer"&gt;The best response to AI slop and online noise is from Robin Williams&lt;/a&gt; - What makes art, writing and all other forms of expression useful is the persons unique experiences that go into it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.autodidacts.io/holistic-optimization/" rel="noopener noreferrer"&gt;What Should We Optimize Away?&lt;/a&gt; - I also enjoy programming and learning new skills. If it isn't giving us time back then what is the point?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://spectrum.ieee.org/small-language-models-ai-pharmaceuticals" rel="noopener noreferrer"&gt;Small AI Models Gain Traction In places with unreliable networks&lt;/a&gt; - I am hoping these large paywalled models will seem ridiculous in the future and everyone will just use small efficient models that are designed for the job.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Miscellaneous &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#miscellaneous" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blog.mikebowler.ca/2026/07/03/co2-and-decision-making/" rel="noopener noreferrer"&gt;The bottleneck might be the air in the room&lt;/a&gt; - I have a CO2 sensor in my office. When I am not in there it sits around 400 - 500 ppm. If I am in there with the door shut however it can go up to above 1,500 ppm. I definitely notice the difference in my concentration levels.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Quote of the Week &lt;a href="https://www.alexhyett.com/newsletter/uniqueness-is-the-key-to-standing-out/#quote-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Most people are just trying to get through the day. Here's what I want you to commit to — learn to get something valuable from each day. Don't just get through it-absorb something from it. Learn from it. Let the day teach you. Join the university of life. What a difference that will make in your future. Commit yourself to learning; commit yourself to absorbing; be like a sponge. Get whatever you can from each day. Don't miss any opportunity to learn&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From the book &lt;a href="https://www.alexhyett.com/book-notes/the-art-of-exceptional-living/" rel="noopener noreferrer"&gt;The Art of Exceptional Living&lt;/a&gt; by Jim Rohn.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>design</category>
    </item>
    <item>
      <title>Reducing my screen time with another device...</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 19 Jul 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/reducing-my-screen-time-with-another-device-8f6</link>
      <guid>https://dev.to/alexhyettdev/reducing-my-screen-time-with-another-device-8f6</guid>
      <description>&lt;p&gt;In an attempt to reduce the amount of time I spend staring at my phone, I have bought myself another device. At least that is the lie I told myself for buying yet another gadget because it looked cool.&lt;/p&gt;

&lt;p&gt;After seeing &lt;a href="https://blog.omgmog.net/post/xteink-x4-e-ink-reader/" rel="noopener noreferrer"&gt;Max Glenister&lt;/a&gt; and &lt;a href="https://neilzone.co.uk/2026/03/initial-thoughts-on-the-tiny-xteink-x4-ereader/" rel="noopener noreferrer"&gt;Neil Brown&lt;/a&gt; speak so highly of this device I just had to buy the &lt;a href="https://www.xteink.com/products/xteink-x4" rel="noopener noreferrer"&gt;XTEINK X4 e-reader&lt;/a&gt;. Note, this is not sponsored in any way I just wanted to share it with you!&lt;/p&gt;

&lt;p&gt;This is the 3rd e-reader that I own, so I definitely didn't need this device. I also have an old Kindle which I use exclusively for reading Kindle Unlimited books and a Kobo Clara Colour which is my main reading device.&lt;/p&gt;

&lt;p&gt;This device though is different to the others. Its dimensions are 114 x 69 x 5.9mm which is just a little bit bigger than a credit card. It doesn't have a touchscreen but has physical buttons on the bottom and the side. There is also no backlight.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg70h5qe725sdbbamox5n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg70h5qe725sdbbamox5n.jpg" alt="XTEINK X4 with a 10p and 20p for size comparison" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The device comes with a 32 GB SD card, some magnetic rings and a screen protector. The idea is that you stick the magnetic rings on the back of your phone case and then the device can stick to it. I have a MagSafe case anyway so the device sticks to that quite well.&lt;/p&gt;

&lt;p&gt;This thing is really thin and light, you hardly even notice it sitting in your pocket.&lt;/p&gt;

&lt;p&gt;Like all gadgets of this type, this thing came from China. I ordered it on 27th June and it arrived to me in the UK on the 9th July, which is not too bad.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#software" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I stayed with the stock firmware for around 15 minutes. Luckily it was in English so I didn't have to work out how to change the language but it is pretty basic.&lt;/p&gt;

&lt;p&gt;There is bunch of different custom firmware for this device all forked from CrossPoint. I didn't bother looking around at the different firmware but I might do if I find an interesting one in future. I jumped straight to using &lt;a href="https://github.com/obijuankenobiii/inx" rel="noopener noreferrer"&gt;ink&lt;/a&gt;. I installed it but using the web flash method and it was all done in a few minutes.&lt;/p&gt;

&lt;p&gt;The device is really fast and the button layout is intuitive. The 2 buttons on the bottom are actually 4 buttons. On the side is the power button and another large button that is actually 2 buttons.&lt;/p&gt;

&lt;p&gt;For turning the page you can either click the power button (you hold it down to turn it on/off) or use the side buttons or the bottom right buttons. I find myself clicking the power button the most as it sits nicely where my thumb or index finger sit.&lt;/p&gt;

&lt;p&gt;This device is definitely fun to use and I have been using it more than looking at my phone which is a plus.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6zfmc701p0k4bbwomp95.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6zfmc701p0k4bbwomp95.jpg" alt="Me holding the X4 showing the text on the page" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One feature I really liked with this firmware is the ability to add files via wifi. You can then navigate to the device using the IP address and add books and change the device settings. It also apparently connects to calibre but I have tried that yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Price &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#price" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In total the device with shipping cost me £51.90 ($70.10) which is not bad for an impulse purchase. For this price point I think this device is great. It is fun to keep in your pocket and do find myself reading more rather than just scrolling on my phone.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://kevquirk.com/ai-blog-questions-challenge" rel="noopener noreferrer"&gt;AI Blog Questions Challenge&lt;/a&gt; - I think these questionnaires are really interesting to see how people are using AI. I plan on doing one of these soon as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://zarar.dev/run-a-local-coding-model-with-pi-and-lm-studio" rel="noopener noreferrer"&gt;Run a local coding model with pi and LM Studio&lt;/a&gt; - This is a good tutorial if you wanted to run some LLMs locally and do some coding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.canirun.ai/" rel="noopener noreferrer"&gt;CanIRun.ai — Can your machine run AI models?&lt;/a&gt; - This is great website to see what local models will run on your computer.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Tools &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#tools" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bunny.net/blog/were-making-bunny-dns-free/" rel="noopener noreferrer"&gt;We are making Bunny DNS free&lt;/a&gt; - This is great. Hopefully this will be a good alternative to Cloudflare.&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://adactio.com/journal/22613" rel="noopener noreferrer"&gt;Enhancing with CSS Grid Lanes&lt;/a&gt; - CSS is getting masonry layouts. It is not supported fully yet but hopefully in a few years it will be across all browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nelson.cloud/.gitignore-isnt-the-only-way-to-ignore-files-in-git/" rel="noopener noreferrer"&gt;.gitignore Isn't the only way to ignore files in Git&lt;/a&gt; - I never knew there were so many way to ignore files in git. I can think of quite a few uses for a machine wide gitignore and didn't know this was an option.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Security &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#security" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://roman.pt/posts/linkedin-backdoor/" rel="noopener noreferrer"&gt;A backdoor in a LinkedIn job offer&lt;/a&gt; - With developers getting laid off this way and that scammers are naturally feasting on people's desperation. If you have to download any code as part of the interview process be extra vigilant.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://9to5mac.com/2026/06/23/lastpass-notifies-users-of-yet-another-data-breach/" rel="noopener noreferrer"&gt;LastPass notifies users of yet another data breach&lt;/a&gt; - If you are still using LastPass even after their last breach please find somewhere else and change all your passwords. I now have my passwords on a self hosted VaultWarden instance that is only accessible from my home network. It is working well for me.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏢 Tech Industry &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#tech-industry" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.bloomberg.com/news/articles/2026-06-25/ford-has-been-rehiring-quality-inspectors-after-ai-fell-short" rel="noopener noreferrer"&gt;Ford rehires 350 engineers after AI fails to preserve expertise or train juniors&lt;/a&gt; - Yay, lets hope the mass layoffs due to AI are coming to an end.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎮 Gaming &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#gaming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://hl2.slqnt.dev/" rel="noopener noreferrer"&gt;Half-Life 2 in a Browser&lt;/a&gt; - I know Half-Life 2 is quite old now but it still amazes me that it can run in the browser now.&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Blogging &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#blogging" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://blog.jim-nielsen.com/2026/blogging-stating-the-obvious/" rel="noopener noreferrer"&gt;Blogging can just be stating the obvious&lt;/a&gt; - I have been trying to get back into blogging more but sometimes it is hard to come up with things to write about. This is a good reminder that you can write about anything, it's your blog.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Miscellaneous &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#miscellaneous" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://andreklein.net/your-epub-is-fine-kobo-disagrees-blame-adobe/" rel="noopener noreferrer"&gt;Your ePub Is fine&lt;/a&gt; - It is interesting that even though files can have valid CSS they still fail to load due to Adobe using a standard that is over a decade old. At least there is an alternative by renaming the file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.elenarossini.com/w-social-public-institutions-and-the-theater-of-european-digital-sovereignty/" rel="noopener noreferrer"&gt;W Social, public institutions and the theater of European digital sovereignty&lt;/a&gt; - I really don't see many people signing up to W Social. Not when there are better social networks like Mastodon.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/oldnewthing/20260622-00/?p=112451" rel="noopener noreferrer"&gt;In memory of the man who put red and green squiggles under words&lt;/a&gt; - Everyone knows about the red squiggles but never about the man that came up with the idea.&lt;/p&gt;




&lt;h2&gt;
  
  
  👨‍💻 Latest from me &lt;a href="https://www.alexhyett.com/newsletter/reducing-my-screen-time-with-another-device/#latest-from-me" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🎬 Video&lt;/strong&gt; - &lt;a href="https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year/" rel="noopener noreferrer"&gt;I Tried Building a Real App With AI. It Took a Year.&lt;/a&gt; - I talk about the process of creating &lt;a href="https://habitted.app" rel="noopener noreferrer"&gt;HabitTed&lt;/a&gt; and the dangers of using AI to code for you. This video isn't public yet on YouTube so you get to view it slightly earlier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📝 Article&lt;/strong&gt; - &lt;a href="https://www.alexhyett.com/opting-for-privacy-in-webmentions/" rel="noopener noreferrer"&gt;Opting for privacy in webmentions&lt;/a&gt; - Last time I wrote about setting up webmentions on my website. I have now tweaked them a little to make them more privacy focused.&lt;/p&gt;

</description>
      <category>tech</category>
      <category>gadgets</category>
      <category>reading</category>
    </item>
    <item>
      <title>I Tried Building a Real App With AI. It Took a Year.</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Fri, 17 Jul 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/i-tried-building-a-real-app-with-ai-it-took-a-year-pfo</link>
      <guid>https://dev.to/alexhyettdev/i-tried-building-a-real-app-with-ai-it-took-a-year-pfo</guid>
      <description>&lt;p&gt;My wife and I have been looking for an app to track things like habits, hobbies, and when we last did certain chores.&lt;/p&gt;

&lt;p&gt;To be honest there are probably hundreds of different habit trackers on the App Store. Next to todo list apps they are supposed to be the easiest apps to create so it is not really that surprising there are so many options. But we must have tried dozens of different apps but none of them quite fit what we were looking for.&lt;/p&gt;

&lt;p&gt;Of course now we have AI, so this sort of thing should be easy to create. You just right a couple of prompts and AI will build it for you, while you sleep, or sip cocktails on the beach.&lt;/p&gt;

&lt;p&gt;As we shall see it didn't quite turn out that way.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/LT0oHNk6wi4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirements and Existing Apps &lt;a href="https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year/#requirements-and-existing-apps" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;So for this app I had a few requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We wanted to have the habits in a long list and not have to go through multiple pages to find them.&lt;/li&gt;
&lt;li&gt;We didn't want any data be stored in the cloud or on other peoples servers.&lt;/li&gt;
&lt;li&gt;We wanted to be able to use the gen-emojis from iOS 18 for some of the icons. It is a great option when the predefined icons don't fit.&lt;/li&gt;
&lt;li&gt;We needed to set goals on a daily, weekly, or monthly basis.&lt;/li&gt;
&lt;li&gt;It should be possible to have no goal and just count the number of occurrences. My wife sometimes gets headaches so she wanted to keep track of all of those as well.&lt;/li&gt;
&lt;li&gt;We wanted the ability to add notes. I wanted to be able to write down what exercises I did in each of my workouts and what speed I had got a song to when practicing guitar.&lt;/li&gt;
&lt;li&gt;We wanted to set reminders on habits, either every day or on specific days of the week or month.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There is nothing in this list that is particularly groundbreaking so I had a look at the various options to see if something would work to save me having to develop something.&lt;/p&gt;

&lt;p&gt;We first tried the Streaks app. This is a completely free app on iOS and even has an Apple Health integration.&lt;/p&gt;

&lt;p&gt;This suited most of my needs but it couldn't do some of the requirements on this list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The apps were in pages instead of a long list. When you have 20 things you want to track this can get pretty tedious flicking through all the pages. This app has won design awards so that is probably more of a me issue.&lt;/li&gt;
&lt;li&gt;My wife couldn't find suitable icons for some of the things she wanted to do. Hence wanting the ability to create your own.&lt;/li&gt;
&lt;li&gt;There was no way to count occurrences. You had to set how many times you wanted to do something every day. Which if you are tracking headaches isn't what you want as ideally you don't want any.&lt;/li&gt;
&lt;li&gt;She also realised she needed a way of turning off streaks. Streaks aren't always helpful for everything that you are tracking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We tried a few more apps as well. There is a popular one called HabitKit and another one called Grit. I quite liked the GitHub style contribution charts of HabitKit but my wife, not being a developer wasn't really fussed by this. Grit was probably the closet to what we were looking for but still lacked a few features.&lt;/p&gt;

&lt;p&gt;To be honest I would have been quite happy with either HabitKit or Grit for my needs if it wasn't for one thing, the price.&lt;/p&gt;

&lt;p&gt;Now I don't mind paying for applications. I have lots of apps on my phone that I have bought as well as desktop software I have paid for. I am all for supporting indie developers but I also remember a time when an iPhone app was the price of a coffee.&lt;/p&gt;

&lt;p&gt;Grit on the other hand costs £9.99/month or £29.99/year. There is an option to buy a lifetime licence but it costs a whopping £44.99. That is nearly the cost of a new console game.&lt;/p&gt;

&lt;p&gt;It is the same story with HabitKit as well but not quite as much at £1.99/month or £11.99/year with a £29.99 lifetime option.&lt;/p&gt;

&lt;p&gt;Maybe I am just a stingy git but I don't want to add even more subscriptions to my budget I have enough as it is.&lt;/p&gt;

&lt;p&gt;So I set out to build one myself with the help of AI.&lt;/p&gt;

&lt;p&gt;I started this project in March last year. Cursor were giving away free credits and it was the perfect opportunity to see what AI was capable of. Up until this point I had mostly avoided using AI beyond simple chat questions. Given I had never developed anything in Swift before I needed all the help I can get.&lt;/p&gt;

&lt;p&gt;We decided on the name HabitTed and my wife even designed a cute bear logo.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Development Process &lt;a href="https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year/#ai-development-process" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;If you haven't developed an iOS app before you are pretty much limited to using XCode if you want to test your application on a simulator and debug it. So there was a lot of back and forth between cursor and Xcode to try and get everything set up.&lt;/p&gt;

&lt;p&gt;This was just before Claude Code was released so this wasn't full agentic hands-off engineering. Instead, I broke down the development into lots of small tasks and went through them manually with the AI, testing each change as I went along.&lt;/p&gt;

&lt;p&gt;I started with a simple hello world application. Then added in the habit list, the ability to add a habit, edit a habit and so on.&lt;/p&gt;

&lt;p&gt;To be fair after about 6 hours over the course of a weekend, I had an app that appeared to work. It didn't do everything I wanted yet but you could create a habit with a custom icon, you could click on it to complete it, and it supported various goal options and even had iCloud syncing.&lt;/p&gt;

&lt;p&gt;Even though I had something working and only took 6 hours, I can't say it was a pleasant 6 hours.&lt;/p&gt;

&lt;p&gt;Usually when I complete a project, I am proud of what I have accomplished. Even if I had problems and things took longer than needed, I would finish it having learned something new.&lt;/p&gt;

&lt;p&gt;Those failures taught me something and any frustrations I had during development were usually worth it by the end and at least I learned not to make the same mistake again.&lt;/p&gt;

&lt;p&gt;However, after 6 hours I can't say I learnt much about Swift development.&lt;/p&gt;

&lt;p&gt;Whenever there was an error I would find myself copy and pasting the error message and asking AI to try and fix things. I was getting annoyed with the AI for not being good enough to solve the issue, but also annoyed with myself that I couldn't do it either.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problems &lt;a href="https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year/#the-problems" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Even though I hadn't programmed in Swift before I have programmed in many other languages and looking at the code I could tell it wasn't good code.&lt;/p&gt;

&lt;p&gt;Each of the views was nearly a 1000 lines long. The compiler on XCode couldn't handle the length and was always telling me to break things down. Styling for things like buttons that looked the same had completely different code in different views. The whole thing was a bit of mess.&lt;/p&gt;

&lt;p&gt;So instead of relying on AI to try and fix the mess I decided to refactor it myself, manually, the old school way. I moved everything into separate views that were no more than 100 lines long and I fixed all the inconsistent code.&lt;/p&gt;

&lt;p&gt;I then tested the app some more to make sure everything worked properly and found even more problems.&lt;/p&gt;

&lt;p&gt;I found that the iCloud sync didn't actually work. It may have been syncing to iCloud but if you uninstalled the application and reinstalled it, it would just lose all your data.&lt;/p&gt;

&lt;p&gt;I also found that once I had added a lot of completions to my habits, things started to become really slow. I realised the stats I had on the details page were looping through all the habits to calculate them every single time you went on the page.&lt;/p&gt;

&lt;p&gt;I created some properties on the habits to store the stats instead, and moved the calculation to be done on habit completion, and then I realised the data model was overly complex and had some really weird naming. This led me to coming up with a data migration plan, otherwise habits would break whenever I changed the schema.&lt;/p&gt;

&lt;p&gt;Once everything was fixed, I added in some of the missing features such as reminders and different goal options.&lt;/p&gt;

&lt;p&gt;Then iOS 26 came out.&lt;/p&gt;

&lt;p&gt;I am not sure if the used AI a lot for development in Apple, but iOS 26 had a lot of bugs.&lt;/p&gt;

&lt;p&gt;I am really not a fan of the glass effect, so I turned on the reduce transparency accessibility option and this caused all sorts of problems in my app.&lt;/p&gt;

&lt;p&gt;I use dark mode everywhere but opening a habit caused the title bar to turn white but with white text too so you couldn't read anything.&lt;/p&gt;

&lt;p&gt;This is where AI really falls apart. iOS 26 had only just been released so AI couldn't help with any of the new changes. I even tried to convince it that iOS 26 was the latest version and it told me I must be mistaken.&lt;/p&gt;

&lt;p&gt;In the end I managed to solve some of my problems from reading blog posts from other developers and ultimately Apple fixed the transparency bug in 26.1.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Result &lt;a href="https://www.alexhyett.com/videos/tried-building-app-with-ai-it-took-a-year/#the-result" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;So after many months of development, and even more months of testing I finally have an app that I am happy enough to put my name against and the code is something I am happy to carry on maintaining.&lt;/p&gt;

&lt;p&gt;When it comes to releasing an app there is more than just the app itself, you have to put together a website and all the screenshots as well for the app listing. This always takes a lot longer than you anticipate.&lt;/p&gt;

&lt;p&gt;It is available on the App Store if you want to give it a try, I will leave a link in the description. It is free to use for up to 6 habits, and if you did want to support me you can unlock everything for the price of a single coffee.&lt;/p&gt;

&lt;p&gt;If it wasn't for AI, I probably wouldn't have started this app to begin with so for that I am thankful.&lt;/p&gt;

&lt;p&gt;On the other hand, if I hadn't have used AI at all, I would have learnt a lot more and I wouldn't have needed to spend months cleaning up the codebase and fixing all the bugs.&lt;/p&gt;

&lt;p&gt;After 6 hours, AI produced something usable but on deeper inspection it was a mess. AI coding can get you 80% there, but the last 20% will take you 80% of the time or even longer if you don't understand what it has written.&lt;/p&gt;

&lt;p&gt;AI is more capable now than it was a year ago, but it is also more expensive and it doesn't solve the fact that by using it your aren't gaining any skills yourself. If your not able to do your job when Claude is down then you are relying far too much on AI.&lt;/p&gt;

&lt;p&gt;I do wonder what this industry is going to be like in a few years time. No juniors are getting hired because companies are relying on senior developers with AI to do all the work.&lt;/p&gt;

&lt;p&gt;Meanwhile, the senior developers are in 2 camps.&lt;/p&gt;

&lt;p&gt;One half are using AI for absolutely everything but are slowly losing their ability to code. It is like a frog in boiling water that doesn't know it's dead until it is too late.&lt;/p&gt;

&lt;p&gt;The other half are so sick of AI and are getting burnt out having to write prompts every day that they just don't want to do it anymore.&lt;/p&gt;

&lt;p&gt;If the AI bubble does ever pop, I am not sure there is going to be enough competent developers left who are willing to pick up the pieces. Spending your time cleaning up AI slop that you didn't want to write in the first place doesn't sound like much fun.&lt;/p&gt;

&lt;p&gt;Whichever side you're on, just make sure you don't sit in that hot water for too long.&lt;/p&gt;

</description>
      <category>ios</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>Opting for privacy in webmentions</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Tue, 07 Jul 2026 13:24:30 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/opting-for-privacy-in-webmentions-fgo</link>
      <guid>https://dev.to/alexhyettdev/opting-for-privacy-in-webmentions-fgo</guid>
      <description>&lt;p&gt;Last week I went full speed into setting up webmentions on my site. My implementation works around using &lt;a href="https://webmention.io" rel="noopener noreferrer"&gt;webmention.io&lt;/a&gt; in my site's &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; and &lt;a href="https://brid.gy/" rel="noopener noreferrer"&gt;Bridgy&lt;/a&gt; for sending me webmentions for comments, likes and reposts on my posts that I share.&lt;/p&gt;

&lt;p&gt;Ideally I would like to self-host my webmentions endpoint so I am not relying on another service but I haven't found a suitable replacement yet. Maybe I should just self-host webmentions.io as it is open source.&lt;/p&gt;

&lt;p&gt;While looking for alternatives I came across this post &lt;a href="https://sebastiangreger.net/2018/05/indieweb-privacy-challenge-webmentions-backfeeds-gdpr/" rel="noopener noreferrer"&gt;The Indieweb privacy challenge (Webmentions, silo backfeeds, and the GDPR)&lt;/a&gt; by Sebastian Greger. He makes an excellent point when it comes to "silo backfeeds" which in this case is talking about sending webmentions from the Fediverse and Bluesky.&lt;/p&gt;

&lt;p&gt;My webmention implementation involved showing names and avatars for all the people who liked, reposted or commented on my content including those from the Fediverse.&lt;/p&gt;

&lt;p&gt;When someone likes or comments on a post on another platform, they aren't necessarily expecting for their name and profile picture to appear elsewhere. When someone interacts with a post it isn't them giving consent to have their name and image shown on my site.&lt;/p&gt;

&lt;p&gt;Not all webmentions come from Brid.gy, others are sent directly to me from another website that also supports webmentions. This is where I believe you can say consent has been given.&lt;/p&gt;

&lt;p&gt;This isn't me pulling information from elsewhere and sending it to my website. This is them choosing to send me a webmention to let me know they have mentioned me or commented on one of my posts.&lt;/p&gt;

&lt;p&gt;I still however like to show when people have interacted with my site or continued the conversation on elsewhere.&lt;/p&gt;

&lt;p&gt;So I have implemented a compromise.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F04wfabf2ty4lbhskw4jn.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F04wfabf2ty4lbhskw4jn.jpeg" alt="An image showing the discussions section on my website with the post count|697x172" width="800" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For likes and reposts I now just show the count received no matter the source. Comments from the Fediverse are just shown as counts with a link back to my parent post.&lt;/p&gt;

&lt;p&gt;Only when I receive a reply or a mention from another website that supports &lt;a href="https://microformats.org/" rel="noopener noreferrer"&gt;microformats&lt;/a&gt;, is it shown on my website.&lt;/p&gt;

&lt;p&gt;I think this reaches the right balance between maintaining peoples privacy and still having that social aspect that makes the indie web so great.&lt;/p&gt;

</description>
      <category>webmentions</category>
      <category>indieweb</category>
      <category>blogging</category>
    </item>
    <item>
      <title>Setting up Webmentions on my Static Site 💬</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Sun, 05 Jul 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/setting-up-webmentions-on-my-static-site-22e3</link>
      <guid>https://dev.to/alexhyettdev/setting-up-webmentions-on-my-static-site-22e3</guid>
      <description>&lt;p&gt;I have been getting back into blogging recently. I know I write this newsletter every 2 weeks, but I try and keep to a set number of topics as I know my audience is mostly developers.&lt;/p&gt;

&lt;p&gt;My blog gives me chance to write about whatever is on my mind, without worrying about it being relevant to my audience.&lt;/p&gt;

&lt;p&gt;When I first started "surfing the web" it was all about personal websites and going from one person's blog to another via links and blogrolls. I miss that style of the internet. You know, before it was consolidated into a handful of tech giants.&lt;/p&gt;

&lt;p&gt;That internet is still there alive and well, you just need to look a little harder for it. The best way I have found to stumble onto new blogs is to use these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://kagi.com/smallweb" rel="noopener noreferrer"&gt;Kagi Small Web&lt;/a&gt; - Keep clicking Next Post and it will take you to random websites.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bubbles.town/" rel="noopener noreferrer"&gt;Bubbles.town&lt;/a&gt; - This is a fairly new addition. It is like HackerNews for personal blogs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course it is all very well just writing into the void but what made social media so popular is the social aspect. Being able to comment on posts, like them and share them.&lt;/p&gt;

&lt;p&gt;The IndieWeb has this too and you can like, comment, and reply to posts in the form of webmentions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do Webmentions Work? &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#how-do-webmentions-work" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;For webmentions to work you need to have a sender and a receiver. The receiver in this case is your website, then sender is someone who wants to like or comment on your post.&lt;/p&gt;

&lt;p&gt;To let other people know that you accept webmentions, you have to have to add a link to your webmention endpoin to your website &lt;code&gt;head&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"webmention"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"{your_webmention_url}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;People can then send you webmentions using an HTTP request to your webmention URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="o"&gt;{&lt;/span&gt;your_webmention_url&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"source={a_website_that_is_mentioning_you}"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"target={a_post_on_your_website}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Of course all of that seems very manual and how do you even get a webmention URL?&lt;/p&gt;

&lt;h2&gt;
  
  
  Receiving Webmentions on Your Site &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#receiving-webmentions-on-your-site" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;You can host your own webmention server yourself but let's save that for another post.&lt;/p&gt;

&lt;p&gt;The easiest way is to go to &lt;a href="https://webmention.io/" rel="noopener noreferrer"&gt;Webmention.io&lt;/a&gt; and type in your website. This is a great free service hosted by &lt;a href="https://aaronparecki.com/" rel="noopener noreferrer"&gt;Aaron Parecki&lt;/a&gt;. It will then give you the option to sign in via an email address or GitHub if you mention your profile on your website.&lt;/p&gt;

&lt;p&gt;Once signed in you will get your webmention URL which you can put as a link in your header. It will likely just include your website name as your username.&lt;/p&gt;

&lt;p&gt;Mine for example is this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"webmention"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://webmention.io/www.alexhyett.com/webmention"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This handles receiving webmentions from other peoples websites but what about people liking posts when you mention your blog post on Mastodon or Bluesky?&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="https://brid.gy" rel="noopener noreferrer"&gt;Bridgy&lt;/a&gt; comes in. You can log in with your Mastodon account and it will monitor your posts for mentions of your website and send them in the form of webmentions.&lt;/p&gt;

&lt;p&gt;Bridgy even has an option to monitor your RSS feed and automatically post to Mastodon for you. I don't use that as I have my own setup but it is a nice option.&lt;/p&gt;

&lt;p&gt;Now you just need to display the webmentions somewhere on your site. You can do this by calling the webmention.io API. You will need to generate a token on their website which you can then use to receive your webmentions. Make sure to keep your API token secret.&lt;/p&gt;

&lt;p&gt;As I am on Eleventy, I used this &lt;a href="https://brennan.day/how-webmentions-work-on-brennan-day/#fetching-mentions-during-build" rel="noopener noreferrer"&gt;brilliant example on Brennan Kennith Brown website&lt;/a&gt; as my base and adjusted the way the webmentions are displayed to suit my site. Each time I build my site (with a 6h cache) it pulls down my webmentions. They are then formatted and displayed on my site.&lt;/p&gt;

&lt;p&gt;This is how I render my likes and reposts for example with Tailwind CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jinja"&gt;&lt;code&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;interactions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;mentions&lt;/span&gt; &lt;span class="o"&gt;| &lt;/span&gt;&lt;span class="nf"&gt;webmentionsByTypes&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;'like-of'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'repost-of'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;| &lt;/span&gt;&lt;span class="nf"&gt;sortWebmentionsByReceived&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;hiddenInteractions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;interactions.length&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nv"&gt;51&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;interactions.length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;0&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Likes &lt;span class="err"&gt;&amp;amp;&lt;/span&gt; Reposts&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"flex flex-wrap items-center gap-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;interaction&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;interactions&lt;/span&gt; &lt;span class="o"&gt;| &lt;/span&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;51&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.url&lt;/span&gt; &lt;span class="nv"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.url&lt;/span&gt; &lt;span class="nv"&gt;else&lt;/span&gt; &lt;span class="nv"&gt;interaction.url&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;
       &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.name&lt;/span&gt; &lt;span class="o"&gt;| &lt;/span&gt;&lt;span class="nf"&gt;unsupportedEmoji&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;
       &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
       &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener"&lt;/span&gt;
       &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"relative inline-block no-underline!"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.photo&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.photo&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.photo&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;
           &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.name&lt;/span&gt; &lt;span class="o"&gt;| &lt;/span&gt;&lt;span class="nf"&gt;unsupportedEmoji&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;
           &lt;span class="na"&gt;loading=&lt;/span&gt;&lt;span class="s"&gt;"lazy"&lt;/span&gt;
           &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"rounded-full w-12 h-12"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"flex h-12 w-12 items-center justify-center rounded-full bg-tertiary font-mono font-bold text-(--header-color)"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;interaction.author.name&lt;/span&gt; &lt;span class="o"&gt;| &lt;/span&gt;&lt;span class="nf"&gt;unsupportedEmoji&lt;/span&gt; &lt;span class="o"&gt;| &lt;/span&gt;&lt;span class="nf"&gt;truncate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
      &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
      &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;interaction&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"wm-property"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;'like-of'&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full border-2 border-(--bg-color) bg-(--secondary-color) text-[11px] text-[#e5484d]"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Like"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa-solid fa-heart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
      &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full border-2 border-(--bg-color) bg-(--secondary-color) text-[11px] text-(--accent-color-alt)"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Repost"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa-solid fa-retweet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
      &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
    &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endfor&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
    &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;hiddenInteractions&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;0&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"font-mono text-sm text-(--text-color-light)"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;and &lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;hiddenInteractions&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt; more&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
    &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;unsupportedEmoji&lt;/code&gt; filter I added as custom Mastodon icons where showing up as ????. This is just a simple filter to remove them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;eleventyConfig&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addFilter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;unsupportedEmoji&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;????&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I created a TIL page to test out my webmentions and the Fediverse community were great at giving me examples to test: &lt;a href="https://www.alexhyett.com/til/setting-up-webmentions/" rel="noopener noreferrer"&gt;Setting up webmentions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One part I haven't automated yet is my "Want to interact with this post?" message. I show this on my website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ag3qxsow8q8wujwabla.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ag3qxsow8q8wujwabla.jpeg" alt="A screenshot of my discussions section on my website which says " width="800" height="110"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the moment I have to manually copy the URL for the Fediverse post into my frontmatter field which then gets shown here. So the workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Publish post&lt;/li&gt;
&lt;li&gt;Automated job mentions the post on Mastodon.&lt;/li&gt;
&lt;li&gt;I then copy the Mastodon post URL into the frontmatter of the blog post.&lt;/li&gt;
&lt;li&gt;Then update my site again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I need to put add to my workflow to store the share URL to a database, then check for new additions when I build my site and have a script that updates the frontmatter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sending Webmentions to Others &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#sending-webmentions-to-others" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;If you have managed to do part one then you have just become an amazing listener but it's not much of a conversation because you are not saying anything back!&lt;/p&gt;

&lt;p&gt;If you have had your website for a while like me then chances are you have been saying nothing back for a while. Time to change that.&lt;/p&gt;

&lt;p&gt;I wrote a script to go through all of my markdown files on my website and then write all the external URLs to a CSV file. &lt;a href="https://git.alexhyett.com/alexhyett/useful-scripts/src/branch/main/export-external-links.js" rel="noopener noreferrer"&gt;export-external-links.js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I then wrote a separate script that checks the mentioned website to see if they accept webmentions and then sends a request to their webmention endpoint. &lt;a href="https://git.alexhyett.com/alexhyett/useful-scripts/src/branch/main/process-webmentions.js" rel="noopener noreferrer"&gt;process-webmentions.js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would say out of all the links on my website a good 80% of them didn't accept webmentions so it is mostly restricted to indie bloggers who still use them.&lt;/p&gt;

&lt;p&gt;That handles all the past requests. For sending new webmentions for posts I have published, I use n8n to monitor my RSS feed, pick out all the external links and then check for the existence of webmentions. Here is the n8n workflow if you wanted to adapt it for your own needs: &lt;a href="https://git.alexhyett.com/alexhyett/useful-scripts/src/branch/main/Send%20Webmentions.json" rel="noopener noreferrer"&gt;Send Webmentions.json&lt;/a&gt;. I love using n8n these sort of workflows as it makes it really easy to test the flow and debug it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#whats-next" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I have everything working now with replies and likes from Mastodon. I recreated my &lt;a href="https://bsky.app/profile/alexhyett.com" rel="noopener noreferrer"&gt;Bluesky account&lt;/a&gt; recently and I am just going to use it to share my posts so I can give people another way to comment. All of my normal social media usage will still be on Mastodon.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❤️ Picks of the Week &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#picks-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🤖 AI &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#ai" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://rnotte.art/do-we-need-generative-ai" rel="noopener noreferrer"&gt;do we NEED generative AI?&lt;/a&gt; - We do have to ask ourselves, what do we really gain by using AI? Is the quality better than if you did it yourself? If it is then maybe you should invest more time in your own skills rather than using AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mijndertstuij.nl/posts/cheap-to-write-expensive-to-own" rel="noopener noreferrer"&gt;Cheap to write, expensive to own&lt;/a&gt; - Yes you can write code quicker but you end up with something that is possibly buggy, that you don't understand and you didn't enjoy making. There is still a place for AI in automating one-off jobs with throwaway scripts but if you the code is going to last make sure you read it properly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codingwithjesse.com/blog/rockstar-developers/" rel="noopener noreferrer"&gt;Cleaning up after AI rockstar developers&lt;/a&gt; - I think this is a really good analogy. Sure there are some rockstar developers out there but most just generate unreadable spaghetti code. This is exactly what AI does but at a faster and much wider scale.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://curlewis.co.nz/posts/lines-of-code-got-a-better-publicist/" rel="noopener noreferrer"&gt;Lines of code got a better publicist&lt;/a&gt; - Code is a liability. Repeat that, code is a liability. The more code there is, the harder it is to maintain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.endorlabs.com/learn/claude-fable-5-mythos-grade-hype" rel="noopener noreferrer"&gt;Claude Fable 5: mid-tier results on coding tasks&lt;/a&gt; - Despite &lt;a href="https://www.anthropic.com/news/fable-mythos-access" rel="noopener noreferrer"&gt;being banned for being too dangerous&lt;/a&gt; it wasn't even that good. Anthropic really shot themselves in the foot with this marketing campaign.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://olly.world/ai-sphyxiation" rel="noopener noreferrer"&gt;AI-sphyxiation&lt;/a&gt; - We probably need another word as well for products that have been slowly ruined by AI code contributions.&lt;/p&gt;

&lt;h3&gt;
  
  
  📝 Blogging &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#blogging" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://brennan.day/yes-buy-them-a-coffee-support-and-mutual-aid-on-the-indieweb/" rel="noopener noreferrer"&gt;Yes, Buy Them a Coffee: Support and Mutual Aid on the IndieWeb&lt;/a&gt; - This all started with this post "&lt;a href="https://hakkerman.eu/blog/i-wont-buy-you-a-coffee/" rel="noopener noreferrer"&gt;No, I Won't Buy You A Coffee&lt;/a&gt;" and let's just say the IndieWeb didn't like it. Buy me a coffee is essentially a tip jar, it isn't the same as putting up a paywall and it isn't an advert either. I agree with Brennan on this. We have no problem signing up for subscriptions to billionaire corporations but when a human kindly asks you to support them if you like their work then we really should.&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Programming &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#programming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://hypersubject.net/entries/2026/06/integrating-standard.site-with-my-hugo-blog" rel="noopener noreferrer"&gt;Integrating standard.site with My Hugo Blog&lt;/a&gt; - Once I get my Bluesky sharing sorted I will have a look at setting this up too. I am not sure why websites need to come up with even more things we need to implement in order for our sites to appear nicely on theirs.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏢 Tech Industry &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#tech-industry" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.seangoedecke.com/doing-nothing-at-work/" rel="noopener noreferrer"&gt;Doing nothing at work&lt;/a&gt; - This is a great point. A lot of the work that companies were most thankful for came from taking initiative and having the time to implement it. If you are constantly working on tickets there is no time to innovate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://forestwalk.ai/blog/surprise-blacksmith-costs/" rel="noopener noreferrer"&gt;Surprise, pay $1000&lt;/a&gt; - This is some sneaky tactics. I am not sure this would hold up in court.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎮 Gaming &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#gaming" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://putt.day/" rel="noopener noreferrer"&gt;Putt.day a daily mini golf game&lt;/a&gt; - This is really fun and well done. The one I played on the 2nd July even had a loop in it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://garrit.xyz/posts/2026-06-13-pac-man-but-you-re-the-ghost" rel="noopener noreferrer"&gt;Pac-Man, but you're the ghost&lt;/a&gt; - I love this idea. I still suck at Pac-Man though.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Books &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#books" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.cypherpunkbooks.com" rel="noopener noreferrer"&gt;The Cypherpunk Library&lt;/a&gt; - A nice collection of public domain books with a cool UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Miscellaneous &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#miscellaneous" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.rochester.edu/newscenter/what-is-desalination-definition-ocean-water-704732/" rel="noopener noreferrer"&gt;New method turns ocean water into drinking water, without waste&lt;/a&gt; - This is fantastic. I always thought it was crazy that we are surrounded by all this drinking water but we can't drink any of it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pdimagearchive.org/" rel="noopener noreferrer"&gt;Public Domain Image Archive&lt;/a&gt; - If you are looking for something a bit different for your blog images why not try one of these.&lt;/p&gt;




&lt;h2&gt;
  
  
  👨‍💻 Latest from me &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#latest-from-me" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;As mentioned I have been getting into blogging a lot more recently. These are my recent posts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📝 Blog Post&lt;/strong&gt; - &lt;a href="https://www.alexhyett.com/getting-back-into-blogging/" rel="noopener noreferrer"&gt;Getting back into blogging&lt;/a&gt; - I intentionally restrict the topics I write about in this newsletter but it has stopped me from writing about other stuff.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📝 Blog Post&lt;/strong&gt; - &lt;a href="https://www.alexhyett.com/taking-the-unconventional-path/" rel="noopener noreferrer"&gt;Taking the unconventional path&lt;/a&gt; - I quit my job 3 weeks ago...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📝 Blog Post&lt;/strong&gt; - &lt;a href="https://www.alexhyett.com/focussing-on-my-fitness/" rel="noopener noreferrer"&gt;Focussing on my fitness&lt;/a&gt; - I have been working out pretty regularly over the last month and seeing some progress.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Quote of the Week &lt;a href="https://www.alexhyett.com/newsletter/setting-up-webmentions-on-my-static-site/#quote-of-the-week" rel="noopener noreferrer"&gt;#&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;How about we forget “move fast and break things” and instead embrace “go slow and keep things working”?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OK, yes this one was &lt;a href="https://social.alexhyett.com/@alex/statuses/01KWEHTK9GG4709YD09SZBT60T" rel="noopener noreferrer"&gt;from me&lt;/a&gt; this week.&lt;/p&gt;

</description>
      <category>blogging</category>
      <category>indieweb</category>
      <category>programming</category>
    </item>
    <item>
      <title>Getting back into blogging</title>
      <dc:creator>Alex Hyett</dc:creator>
      <pubDate>Wed, 24 Jun 2026 13:44:31 +0000</pubDate>
      <link>https://dev.to/alexhyettdev/getting-back-into-blogging-20h3</link>
      <guid>https://dev.to/alexhyettdev/getting-back-into-blogging-20h3</guid>
      <description>&lt;p&gt;It has been a while since I have sat down and wrote a blog post that is not directly related to programming or self-hosting. If I look back to 2023 I used to write about all sorts of different topics.&lt;/p&gt;

&lt;p&gt;I was reading the post &lt;a href="https://bits.gobino.be/dont-put-yourself-in-a-box" rel="noopener noreferrer"&gt;📦 Don't put yourself in a box&lt;/a&gt; the other day and I realised I have been doing something similar.&lt;/p&gt;

&lt;p&gt;My website doesn't get that much traffic at around 8000 visitors a month, so it is not that I am feeling pressure for my posts to be meaningful, but I have stuck myself in a genre box.&lt;/p&gt;

&lt;p&gt;Even though I label myself as a “software developer” it isn't my entire identity, and I am sure those reading my blog have other interests as well. I shouldn't worry about overwhelming my readers as not that many people subscribe directly to my everything RSS feed (I don't think).&lt;/p&gt;

&lt;p&gt;Even if they do, having something interesting to read regardless of whether it is technical or not, is surely a positive thing. My newsletter generally has a limited topic scope any way which is where most people read my content.&lt;/p&gt;

&lt;p&gt;So with that said, I am going to start blogging more and try to get more involved with the IndieWeb. I have been fed up with all the big tech platforms for a while so it is time to embrace the indie side.&lt;/p&gt;

&lt;p&gt;This week I have set incoming and outgoing webmentions on my blog. There is still a bit of tweaking to get the flow working properly, but it is a start.&lt;/p&gt;

&lt;p&gt;Thanks to the wonderful people on the Fediverse I was able to test out most of the functionality see &lt;a href="https://www.alexhyett.com/til/setting-up-webmentions/" rel="noopener noreferrer"&gt;Setting up webmentions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The general flow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I have a webmention endpoint set up on my blog thanks to webmention.io.&lt;/li&gt;
&lt;li&gt;I use &lt;a href="https://brid.gy/" rel="noopener noreferrer"&gt;Bridgy&lt;/a&gt; to get the likes, reposts and comments and send them to my webmention endpoint.&lt;/li&gt;
&lt;li&gt;When I build my blog it pulls down any webmentions from the site and displays them on the relevant posts.&lt;/li&gt;
&lt;li&gt;When I publish a new post I have a n8n workflow that reads my RSS feeds and publishes new posts on my Mastodon (GotoSocial) account.&lt;/li&gt;
&lt;li&gt;I have another n8n workflow that sends out all the webmentions for links mentioned in the post.&lt;/li&gt;
&lt;li&gt;I then have to manually add the Mastodon link to my post frontmatter so that I can link to it on my website (this is the part I need to improve). This is just to show people where to put a comment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I will do another post in the near future with how all of this works. I also added the bubbles.town widget to the bottom of all my posts.&lt;/p&gt;

&lt;p&gt;There are still some things I want to do.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the above manual link of the Mastodon post to my account.&lt;/li&gt;
&lt;li&gt;Backfill all the posts with an equivalent GotoSocial post.&lt;/li&gt;
&lt;li&gt;Set up Bluesky again (I previously deleted my account) to repost content.&lt;/li&gt;
&lt;li&gt;Get comments that appear on my PeerTube videos to show up on my blog under the relevant &lt;a href="https://www.alexhyett.com/videos/" rel="noopener noreferrer"&gt;video&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Implement the reply to logic, so I can directly reply to other indieweb posts.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>blogging</category>
      <category>indieweb</category>
    </item>
  </channel>
</rss>
