<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Docify guides</title>
    <link>https://www.docify.me/blog/</link>
    <description>Short guides for Docify's browser-based tools. Each post explains a specific conversion, encoding, or formatting technique. All processing happens locally in your browser.</description>
    <language>en-us</language>
    <lastBuildDate>Thu, 01 Oct 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://www.docify.me/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Base64 vs Base64URL: URL-Safe Alphabet</title>
      <link>https://www.docify.me/blog/base64-vs-base64url/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/base64-vs-base64url/</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <description>Standard Base64 uses + and /, which break URLs. Base64URL replaces them with - and _, making encoded strings safe for query parameters and filenames.</description>
    </item>
    <item>
      <title>JSON vs YAML: Configuration Files</title>
      <link>https://www.docify.me/blog/json-vs-yaml-configuration/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/json-vs-yaml-configuration/</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <description>Compare JSON and YAML syntax for configuration files. JSON uses braces and quotes; YAML uses indentation and allows comments. Learn when to use each format.</description>
    </item>
    <item>
      <title>Hex vs Base64 vs Base32: RFC 4648 Encodings</title>
      <link>https://www.docify.me/blog/hex-vs-base64-vs-base32/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/hex-vs-base64-vs-base32/</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <description>Hex expands bytes 100%, Base64 expands 33%, Base32 expands 60%. Compare encoding density, character sets, and use cases.</description>
    </item>
    <item>
      <title>WHATWG new URL vs encodeURI: Punycode vs Percent-Encoding</title>
      <link>https://www.docify.me/blog/new-url-vs-encodeuri/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/new-url-vs-encodeuri/</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <description>WHATWG URL parses and normalizes URLs including Punycode for international domains. encodeURI percent-encodes without parsing structure. Learn when to use each.</description>
    </item>
    <item>
      <title>Punycode vs IDNA: RFC 3492 and UTS #46</title>
      <link>https://www.docify.me/blog/punycode-vs-idna/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/punycode-vs-idna/</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <description>Compare RFC 3492 Punycode (label encoding) vs UTS #46 IDNA (full domain ToASCII). Learn when each applies to internationalized domains.</description>
    </item>
    <item>
      <title>URLSearchParams vs encodeURIComponent: Form vs Percent-Encoding</title>
      <link>https://www.docify.me/blog/urlsearchparams-vs-encodeuricomponent/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/urlsearchparams-vs-encodeuricomponent/</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <description>URLSearchParams uses + for spaces (form encoding). encodeURIComponent uses %20 (RFC 3986). Choose based on whether you need HTML form compatibility.</description>
    </item>
    <item>
      <title>RFC 4648 Base32 vs Base32hex: Alphabet and Sort Order</title>
      <link>https://www.docify.me/blog/rfc-4648-base32-vs-base32hex/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/rfc-4648-base32-vs-base32hex/</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <description>Base32 uses A-Z and 2-7. Base32hex uses 0-9 and A-V for natural sort order. Both are RFC 4648 compliant with different alphabets.</description>
    </item>
    <item>
      <title>NFC vs NFD vs NFKC: Canonical vs Compatibility</title>
      <link>https://www.docify.me/blog/nfc-vs-nfd-vs-nfkc/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/nfc-vs-nfd-vs-nfkc/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>NFC composes characters (é). NFD decomposes them (e + combining acute). NFKC and NFKD also normalize compatibility characters. Learn which form to use.</description>
    </item>
    <item>
      <title>Convert JSON to CSV in JavaScript: Papa.unparse vs Papa.parse</title>
      <link>https://www.docify.me/blog/papa-unparse-vs-papa-parse/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/papa-unparse-vs-papa-parse/</guid>
      <pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate>
      <description>Raw Papa.unparse writes [object Object] for nested values. IEEE-754 rounding happens at JSON.parse. This article compares them and does not convert JSON.</description>
    </item>
    <item>
      <title>How to Convert JPG &amp; PNG Images to PDF (Combine Multiple Images into One PDF)</title>
      <link>https://www.docify.me/blog/convert-jpg-to-pdf-online-free/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/convert-jpg-to-pdf-online-free/</guid>
      <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
      <description>jsPDF addImage always passes JPEG, even for PNG sources. Each image gets one A4 portrait page. This article explains jsPDF image-to-PDF and does not convert images.</description>
    </item>
    <item>
      <title>How to Sign a PDF Online Free</title>
      <link>https://www.docify.me/blog/add-signature-to-pdf-online/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/add-signature-to-pdf-online/</guid>
      <pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
      <description>pdf-lib embedPng and drawImage stamp a PNG on page 1 at x:50, y:50 (150×50 pt). This is not PKCS#7. This article explains pdf-lib stamping and does not sign PDFs.</description>
    </item>
    <item>
      <title>Convert Markdown to HTML: marked + DOMPurify</title>
      <link>https://www.docify.me/blog/convert-markdown-to-html-online/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/convert-markdown-to-html-online/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>marked does not sanitize HTML. DOMPurify strips scripts after parse. This article explains marked plus DOMPurify and does not convert Markdown.</description>
    </item>
    <item>
      <title>Encode Text to Base64: btoa + UTF-8</title>
      <link>https://www.docify.me/blog/encode-text-to-base64-online/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/encode-text-to-base64-online/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>btoa(unescape(encodeURIComponent(input))) writes RFC 4648 Base64 (+, /, = padding), not base64url. Encode does not call String.prototype.normalize. This article explains the UTF-8 btoa path and does not encode text.</description>
    </item>
    <item>
      <title>Markdown to PDF Converter: jsPDF Plain-Text Export</title>
      <link>https://www.docify.me/blog/markdown-to-pdf-converter-free/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/markdown-to-pdf-converter-free/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>jsPDF splitTextToSize draws stripped Markdown lines at 12pt (width 170, 7 units per wrap). marked HTML is never passed to jsPDF. This article explains the jsPDF text dump and does not export PDFs.</description>
    </item>
    <item>
      <title>YAML 1.2 Core vs 1.1: Norway, Comments, JSON</title>
      <link>https://www.docify.me/blog/yaml-1-2-core-vs-1-1/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/yaml-1-2-core-vs-1-1/</guid>
      <pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate>
      <description>YAML 1.2 Core treats yes/no as strings, not booleans. JSON is valid YAML 1.2. This article compares them and does not convert YAML.</description>
    </item>
    <item>
      <title>Calculate Blog Reading Time: Words Per Minute</title>
      <link>https://www.docify.me/blog/calculate-reading-time-for-blog-posts/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/calculate-reading-time-for-blog-posts/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>Reading time is Math.ceil(whitespace-split words / 200). Empty text is 0 minutes; one word is 1. The 200 WPM ceil does not add image or video time. This article explains that formula and does not calculate reading time.</description>
    </item>
    <item>
      <title>Convert a File to Base64: FileReader</title>
      <link>https://www.docify.me/blog/how-to-convert-file-to-base64/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/how-to-convert-file-to-base64/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>FileReader.readAsDataURL() returns a data: URL; Encode keeps result.split(',')[1], not the data: prefix. This article explains the FileReader path and does not encode files.</description>
    </item>
    <item>
      <title>Convert Text to UPPERCASE in the Browser</title>
      <link>https://www.docify.me/blog/convert-text-to-uppercase-online-free/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/convert-text-to-uppercase-online-free/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>toUpperCase applies Unicode Default Case Conversion and keeps spaces. It does not call normalize or toLocaleUpperCase. This article explains the UPPERCASE mapping and does not convert text.</description>
    </item>
    <item>
      <title>CSV to JSON in the Browser with Papa Parse</title>
      <link>https://www.docify.me/blog/convert-csv-to-json-online-free/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/convert-csv-to-json-online-free/</guid>
      <pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate>
      <description>Quoted numeric cells become numbers under dynamicTyping. CSV quotes only escape delimiters. This article explains Papa Parse and does not convert CSV.</description>
    </item>
    <item>
      <title>Decode Base64 to UTF-8: atob</title>
      <link>https://www.docify.me/blog/decode-base64-string-free-tool/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/decode-base64-string-free-tool/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>decodeURIComponent(escape(atob(input))) reads RFC 4648 Base64 (+, /, = padding), not base64url. Decode does not call String.prototype.normalize. This article explains the UTF-8 atob path and does not decode text.</description>
    </item>
    <item>
      <title>JavaScript RegExp vs PCRE: Flags and Lookbehind</title>
      <link>https://www.docify.me/blog/javascript-regexp-vs-pcre/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/javascript-regexp-vs-pcre/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>JavaScript RegExp differs from PCRE. The u flag enables Unicode. Lookbehind was added in ES2018. This article compares them and does not test regex.</description>
    </item>
    <item>
      <title>Named vs Numeric HTML Entities: Names vs Code Points</title>
      <link>https://www.docify.me/blog/named-vs-numeric-html-entities/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/named-vs-numeric-html-entities/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>A named character reference is a mnemonic (&amp;lt;). A numeric one is the Unicode code point (&amp;#60; or &amp;#x3C;). This article compares those forms and does not encode HTML.</description>
    </item>
    <item>
      <title>snake_case Converter: Python Variables and Database Columns</title>
      <link>https://www.docify.me/blog/snake-case-converter-tool/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/snake-case-converter-tool/</guid>
      <pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
      <description>toLowerCase applies Unicode Default Case Conversion, then whitespace collapses to underscores. It does not split camelCase, hyphens, or existing underscores. This article explains the snake_case mapping and does not convert text.</description>
    </item>
    <item>
      <title>UUID Versions Explained: v4 vs v1, v5, v7 and v8 (Format &amp; Length)</title>
      <link>https://www.docify.me/blog/uuid-v4-vs-other-versions/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/uuid-v4-vs-other-versions/</guid>
      <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
      <description>Compare UUID versions: v4 random, v1/v7 time-based, v5 name-hashed, v8 custom. All UUIDs are 128 bits (36 chars with hyphens, 32 without).</description>
    </item>
    <item>
      <title>Compact JWS vs JWE: Decode Is Not Verify</title>
      <link>https://www.docify.me/blog/jwt-jws-vs-jwe/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/jwt-jws-vs-jwe/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>Compact JWS is three base64url segments; compact JWE is five. This article compares them and does not decode tokens.</description>
    </item>
    <item>
      <title>Compare Two Texts with diff-match-patch</title>
      <link>https://www.docify.me/blog/compare-two-texts-online-free/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/compare-two-texts-online-free/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>diff_main then diff_cleanupSemantic paints delete, insert, and equal spans. Replacements are delete-plus-insert. This article explains the character-level diff and does not compare texts.</description>
    </item>
    <item>
      <title>How to Format JSON Online: Parse and Prettify</title>
      <link>https://www.docify.me/blog/how-to-format-json-online/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/how-to-format-json-online/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>JSON.parse then JSON.stringify(value, null, 2) writes 2-space Prettify, not a whitespace-only rewrite. Minify omits the space argument. This article explains the parse/stringify path and does not format JSON.</description>
    </item>
    <item>
      <title>Letraset Dummy vs Cicero: Not Random Latin</title>
      <link>https://www.docify.me/blog/letraset-dummy-vs-cicero/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/letraset-dummy-vs-cicero/</guid>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <description>Lorem ipsum comes from a scrambled passage of Cicero. The Letraset version has specific sentence patterns. Not random Latin.</description>
    </item>
    <item>
      <title>Minify JSON Without Breaking Unicode</title>
      <link>https://www.docify.me/blog/minify-json-without-breaking-unicode/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/minify-json-without-breaking-unicode/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>JSON.parse then JSON.stringify(value) writes compact JSON with no space argument. QuoteJSONString keeps code points above U+001F as characters, unlike Python ensure_ascii=True. This article explains that path and does not minify JSON.</description>
    </item>
    <item>
      <title>Positional BigInt vs Number.parseInt</title>
      <link>https://www.docify.me/blog/positional-bigint-vs-parseint/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/positional-bigint-vs-parseint/</guid>
      <pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate>
      <description>Number.parseInt stops at the first invalid digit. Exact integers end at 2^53-1. This article compares it with Horner's method on BigInt and does not convert numbers.</description>
    </item>
    <item>
      <title>SHA-256 vs SHA-1 vs MD5: Differences and Which to Use</title>
      <link>https://www.docify.me/blog/sha-256-vs-sha-1-vs-md5/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/sha-256-vs-sha-1-vs-md5/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>SHA-256 is the standard for checksums. SHA-1 and MD5 are deprecated for security. None are suitable for password hashing.</description>
    </item>
    <item>
      <title>sRGB Hex vs rgb() vs hsl(): Same Triple, Three Spellings</title>
      <link>https://www.docify.me/blog/srgb-hex-vs-rgb-vs-hsl/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/srgb-hex-vs-rgb-vs-hsl/</guid>
      <pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate>
      <description>Compare sRGB hex, rgb(), and hsl() notations. Same opaque color, three CSS spellings. Use the browser converter — nothing is uploaded.</description>
    </item>
    <item>
      <title>Unix Seconds vs Milliseconds: UTC vs Local</title>
      <link>https://www.docify.me/blog/unix-seconds-vs-milliseconds/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/unix-seconds-vs-milliseconds/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>POSIX seconds and JavaScript Date milliseconds are two integer clocks. Digit length is not a unit.</description>
    </item>
    <item>
      <title>UTF-16 vs Locale Sort: Code Units vs localeCompare</title>
      <link>https://www.docify.me/blog/utf-16-vs-locale-sort/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/utf-16-vs-locale-sort/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>Array.prototype.sort with no compare function uses ECMA-262 UTF-16 code-unit order, so 10 sorts before 2. localeCompare uses language rules, not a numeric collator. This article compares those orders and does not sort lines.</description>
    </item>
    <item>
      <title>Validate JSON Syntax with JSON.parse</title>
      <link>https://www.docify.me/blog/validate-json-syntax-checker/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/validate-json-syntax-checker/</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>JSON.parse throws SyntaxError when the text is not valid JSON. Validate uses the same parse then JSON.stringify(value, null, 2) path as Prettify. This article explains that check and does not validate JSON.</description>
    </item>
    <item>
      <title>Vixie Crontab vs Quartz: 5-Field vs 6/7</title>
      <link>https://www.docify.me/blog/vixie-cron-vs-quartz/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/vixie-cron-vs-quartz/</guid>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <description>Vixie crontab is five fields (minute through day-of-week). Quartz adds seconds and an optional year. This article compares them and does not parse expressions.</description>
    </item>
    <item>
      <title>How to Count Words Online: Whitespace Split</title>
      <link>https://www.docify.me/blog/how-to-count-words-in-text-online/</link>
      <guid isPermaLink="true">https://www.docify.me/blog/how-to-count-words-in-text-online/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description>Words are trim then split on Unicode whitespace, not UAX #29 or Intl.Segmenter. Unspaced CJK is one word. Characters are UTF-16 code units, including spaces. This article explains that split and does not count words.</description>
    </item>
  </channel>
</rss>
