<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Blog | The .NET Blog</title><link>https://thedotnetblog.com/tags/blog/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Fri, 20 Jun 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>New Design: Dark Mode and a Minimal Theme</title><link>https://thedotnetblog.com/posts/emiliano-montesdeoca/new-design-dark-mode-and-minimal-theme/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/posts/emiliano-montesdeoca/new-design-dark-mode-and-minimal-theme/</guid><description>The .NET Blog got a full visual refresh — a custom minimal dark theme built from scratch. Here's what changed and why.</description><content:encoded>&lt;p&gt;The blog has a new look.&lt;/p&gt;
&lt;p&gt;I spent a few weeks redesigning The .NET Blog from the ground up with a custom Hugo theme I&amp;rsquo;m calling &lt;code&gt;dotnet-minimal&lt;/code&gt;. It&amp;rsquo;s dark by default, fast to load, and designed to keep the focus on the writing.&lt;/p&gt;
&lt;h2 id="what-changed"&gt;What changed&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Dark mode as the default.&lt;/strong&gt; Not as an option, not as a toggle you have to find — dark by default, with a light mode toggle in the header for those who prefer it. Most developers I know have their editor in dark mode, their terminal in dark mode, their OS in dark mode. The blog should match.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Typography first.&lt;/strong&gt; The previous design had too much visual noise. The new one strips everything back to the content: a clear reading width, generous line height, and a font stack that respects the system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Code blocks.&lt;/strong&gt; Syntax highlighting uses the Nord theme, which pairs well with the dark background. Line numbers are off by default — they add visual weight without much value for most posts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Performance.&lt;/strong&gt; No JavaScript frameworks, no CSS-in-JS, no npm install required to edit the theme. The entire CSS is a single file. Page load times are in the sub-100ms range on the CDN.&lt;/p&gt;
&lt;h2 id="what-stayed-the-same"&gt;What stayed the same&lt;/h2&gt;
&lt;p&gt;The content structure didn&amp;rsquo;t change. Posts still live in Markdown files organised by author. The Hugo build pipeline is identical. If you were a contributor before, nothing in your workflow changed.&lt;/p&gt;
&lt;h2 id="the-typewriter-effect"&gt;The typewriter effect&lt;/h2&gt;
&lt;p&gt;The one bit of JavaScript on the home page is a small typewriter animation in the hero. It cycles through phrases like &amp;ldquo;share what they build.&amp;rdquo; and &amp;ldquo;build cloud-native apps.&amp;rdquo; It&amp;rsquo;s purely cosmetic and degrades gracefully if JS is disabled.&lt;/p&gt;
&lt;h2 id="open-source"&gt;Open source&lt;/h2&gt;
&lt;p&gt;The theme is part of the &lt;a href="https://github.com/thedotnetblog/blog"&gt;blog repository&lt;/a&gt; and is available under the MIT license. If you want to use it as a base for your own Hugo blog, go ahead.&lt;/p&gt;</content:encoded></item><item><title>We Added Multi-Language Support</title><link>https://thedotnetblog.com/posts/emiliano-montesdeoca/we-added-multi-language-support/</link><pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/posts/emiliano-montesdeoca/we-added-multi-language-support/</guid><description>The .NET Blog now publishes every post in 17 languages using automated translation — and here's how we built it into the Hugo workflow.</description><content:encoded>&lt;p&gt;As of today, every new post on The .NET Blog is automatically translated into 16 additional languages.&lt;/p&gt;
&lt;p&gt;We support: English, Spanish, Catalan, German, French, Portuguese, Italian, Japanese, Chinese, Korean, Russian, Hindi, Polish, Turkish, Arabic, Indonesian, and Dutch.&lt;/p&gt;
&lt;h2 id="why-bother"&gt;Why bother?&lt;/h2&gt;
&lt;p&gt;The .NET ecosystem is global. A large chunk of our readers are not native English speakers, and while most developers &lt;em&gt;can&lt;/em&gt; read technical English, reading in your first language is faster and less fatiguing. If we want the blog to actually be useful to the wider .NET community, we had to solve this.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;p&gt;Each post lives in a &lt;strong&gt;leaf bundle&lt;/strong&gt; — a folder with an &lt;code&gt;index.md&lt;/code&gt; and language-specific variants like &lt;code&gt;index.es.md&lt;/code&gt;, &lt;code&gt;index.ja.md&lt;/code&gt;, etc. Hugo&amp;rsquo;s multilingual mode handles routing: &lt;code&gt;/posts/my-post/&lt;/code&gt; serves English, &lt;code&gt;/es/posts/my-post/&lt;/code&gt; serves Spanish, and so on.&lt;/p&gt;
&lt;p&gt;Translation is handled as part of the content pipeline. When a new post is merged, a workflow generates the translated variants and commits them alongside the original.&lt;/p&gt;
&lt;h2 id="what-we-didnt-want"&gt;What we didn&amp;rsquo;t want&lt;/h2&gt;
&lt;p&gt;We specifically didn&amp;rsquo;t want a &amp;ldquo;translated version&amp;rdquo; to feel like a second-class page. Every translated page has the same layout, the same code examples, and the same SEO treatment as the English original.&lt;/p&gt;
&lt;p&gt;The language switcher in the header lets readers jump between languages on any page — it links to the same content, not the home page.&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What&amp;rsquo;s next?&lt;/h2&gt;
&lt;p&gt;Right-to-left layout support for Arabic is on the list. The CSS foundation is in place (&lt;code&gt;dir=&amp;quot;rtl&amp;quot;&lt;/code&gt; on the &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; element), but there are a few edge cases in the post layout to sort out first.&lt;/p&gt;</content:encoded></item><item><title>The .NET Blog Is Live</title><link>https://thedotnetblog.com/posts/emiliano-montesdeoca/the-dotnet-blog-is-live/</link><pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/posts/emiliano-montesdeoca/the-dotnet-blog-is-live/</guid><description>After months of tinkering, The .NET Blog is finally live. Here's what it is, why I built it, and where I want to take it.</description><content:encoded>&lt;p&gt;I&amp;rsquo;ve been wanting to do this for a while.&lt;/p&gt;
&lt;p&gt;There are plenty of great resources for .NET developers — Microsoft&amp;rsquo;s own blog, Stack Overflow, YouTube channels — but I kept noticing a gap: a place for the community to write &lt;em&gt;long-form&lt;/em&gt;, technical, practical content without the noise of a social feed or the formality of official docs.&lt;/p&gt;
&lt;p&gt;So I built one.&lt;/p&gt;
&lt;h2 id="what-is-the-net-blog"&gt;What is The .NET Blog?&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s a community-driven publication. The idea is simple: developers who are building things with .NET, Azure, AI, and cloud-native tools write about what they&amp;rsquo;re learning. No sponsored posts. No fluff. Just real experience turned into something useful for the next person.&lt;/p&gt;
&lt;p&gt;The tech stack is deliberately simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hugo&lt;/strong&gt; — static site generator, fast build times, easy content authoring in Markdown&lt;/li&gt;
&lt;li&gt;A custom minimal dark theme I wrote from scratch&lt;/li&gt;
&lt;li&gt;Hosted on GitHub Pages, deployed via GitHub Actions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-hugo"&gt;Why Hugo?&lt;/h2&gt;
&lt;p&gt;I wanted contributors to be able to write posts in Markdown and submit them via pull request. No CMS login, no account to create. Just a fork, a new file, and a PR. That keeps the barrier to entry low and puts the content right where it belongs — in version control.&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What&amp;rsquo;s next?&lt;/h2&gt;
&lt;p&gt;I want to grow this into a real community publication. The roadmap includes multi-author profiles, multi-language support, and a proper events timeline for the .NET conference circuit.&lt;/p&gt;
&lt;p&gt;If you want to write here, the contribute page explains how. The bar is technical quality, not résumé credentials.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s build something useful.&lt;/p&gt;</content:encoded></item></channel></rss>