<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fingerprinting on Kliku Kliku</title><link>https://klikukliku.dev/tags/fingerprinting/</link><description>Recent content in Fingerprinting on Kliku Kliku</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 27 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://klikukliku.dev/tags/fingerprinting/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugo JS Optimization: Bundling, Fingerprinting, and Caching in 15 Minutes</title><link>https://klikukliku.dev/posts/hugo-js-optimization/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>https://klikukliku.dev/posts/hugo-js-optimization/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;After &lt;strong&gt;&lt;a href="https://klikukliku.dev/posts/hugo-css-optimization"&gt;cleaning up CSS styles&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://klikukliku.dev/posts/hugo-image-optimization"&gt;optimizing images&lt;/a&gt;&lt;/strong&gt;, I focused on the JavaScript layer. At first glance, the situation looked innocent. The site was loading two files: a script from the theme and my own code for handling the color theme toggle. Together, they weighed less than three kilobytes. With such a small size, optimizing here might seem like overkill.&lt;/p&gt;
&lt;p&gt;However, the real challenge was hidden in the HTTP headers. I noticed that both files had a one-year cache lifetime. Unfortunately, their names lacked a unique identifier, or a &amp;ldquo;fingerprint.&amp;rdquo; This created a serious risk. It meant that after deploying any fixes, users would still use the old version of the code saved in their browsers.&lt;/p&gt;</description></item></channel></rss>