<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web on ilham.dev</title><link>https://ilham.dev/tags/web/</link><description>Recent content in Web on ilham.dev</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 27 Sep 2026 00:00:00 +0700</lastBuildDate><atom:link href="https://ilham.dev/tags/web/index.xml" rel="self" type="application/rss+xml"/><item><title>How I break a URL into parts before debugging it</title><link>https://ilham.dev/posts/how-to-break-a-url-into-parts/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-break-a-url-into-parts/</guid><description>A URL contains several parts: scheme, host, path, query string, and sometimes a fragment. Debugging is easier when those parts are separated.
The URL Parser tool helps me inspect the input and output without writing a one-off script first.</description></item><item><title>How I check keyboard key codes in the browser</title><link>https://ilham.dev/posts/how-to-check-keyboard-keycodes-in-the-browser/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-check-keyboard-keycodes-in-the-browser/</guid><description>Keyboard events expose values such as key, code, and modifier states. They are useful when building shortcuts or input handling.
The Keycode Info tool helps with the mechanical part, but I still check the result before using it somewhere real.</description></item><item><title>How I compress images without making them look terrible</title><link>https://ilham.dev/posts/how-to-compress-images-without-making-them-look-bad/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-compress-images-without-making-them-look-bad/</guid><description>Large images make pages slower, emails heavier, and uploads more annoying. The goal of compression is simple:
Make the file smaller while keeping the image good enough for its purpose.</description></item><item><title>How I convert image formats without losing what matters</title><link>https://ilham.dev/posts/how-to-convert-image-formats-without-losing-what-matters/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-convert-image-formats-without-losing-what-matters/</guid><description>Image formats are trade-offs. The best format depends on whether the image is a photo, graphic, transparent asset, or web upload.
The Image Format Converter tool is useful because it lets me check the result in a small, controlled place before I use it in a bigger workflow.</description></item><item><title>How I debug CORS without guessing</title><link>https://ilham.dev/posts/how-to-debug-cors-without-guessing/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-debug-cors-without-guessing/</guid><description>CORS errors are frustrating because the browser often shows a scary message, but the real cause is usually a small missing header.
You may see something like this in the browser console:</description></item><item><title>How I escape HTML entities before showing text on a page</title><link>https://ilham.dev/posts/how-to-escape-html-entities-before-showing-text/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-escape-html-entities-before-showing-text/</guid><description>HTML entities let text contain characters like &amp;lt;, &amp;gt;, and &amp;amp; without the browser treating them as markup.
The HTML Entities tool helps with the mechanical part, but I still check the result before using it somewhere real.</description></item><item><title>How I make a QR code that people can actually scan</title><link>https://ilham.dev/posts/how-to-make-a-qr-code-that-people-can-actually-scan/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-make-a-qr-code-that-people-can-actually-scan/</guid><description>A QR code is only useful if people can scan it reliably. The content, margin, contrast, and printed size all matter.
The QR Code Generator tool is useful because it lets me check the result in a small, controlled place before I use it in a bigger workflow.</description></item><item><title>How I preview link cards before sharing a page</title><link>https://ilham.dev/posts/how-to-preview-link-cards-with-open-graph/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-preview-link-cards-with-open-graph/</guid><description>When you paste a link into Slack, WhatsApp, Telegram, LinkedIn, or another app, it often turns into a card with a title, description, and image.
That preview does not appear by magic.</description></item><item><title>How I read a user-agent string without pretending it is clean data</title><link>https://ilham.dev/posts/how-to-read-a-user-agent-string/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-read-a-user-agent-string/</guid><description>A user-agent string can hint at browser, engine, operating system, and device, but it is messy and sometimes intentionally misleading.
The User Agent Parser tool helps me inspect the input and output without writing a one-off script first.</description></item><item><title>How I URL-encode text without breaking query strings</title><link>https://ilham.dev/posts/how-to-url-encode-text-without-breaking-query-strings/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-url-encode-text-without-breaking-query-strings/</guid><description>URLs can only safely contain certain characters. URL encoding turns spaces, symbols, and non-ASCII text into percent-encoded form.
The URL Encoder tool helps with the mechanical part, but I still check the result before using it somewhere real.</description></item><item><title>How I use Base64 without calling it encryption</title><link>https://ilham.dev/posts/how-to-use-base64-without-calling-it-encryption/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-use-base64-without-calling-it-encryption/</guid><description>Base64 changes bytes into text that is safe to copy through systems that expect plain characters. It is encoding, not encryption.
The Base64 Text tool helps with the mechanical part, but I still check the result before using it somewhere real.</description></item><item><title>How I write meta tags for a page before publishing it</title><link>https://ilham.dev/posts/how-to-write-meta-tags-for-a-page/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0700</pubDate><guid>https://ilham.dev/posts/how-to-write-meta-tags-for-a-page/</guid><description>Meta tags help browsers, search engines, and social platforms understand a page. They do not replace good content, but they help describe it.
The Meta Tag Generator tool is useful because it lets me check the result in a small, controlled place before I use it in a bigger workflow.</description></item></channel></rss>