<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Darkmintis Blog</title>
    <link>https://darkmintis.dev/blog</link>
    <description>Tutorials, product notes, and hot takes from Darkmintis - developer tools, privacy apps, and open source.</description>
    <language>en-us</language>
    <atom:link href="https://darkmintis.dev/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title><![CDATA[Structured prompts for AI: stop hand-editing JSON and XML at midnight]]></title>
      <link>https://darkmintis.dev/blog/structured-ai-prompts-json-xml</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/structured-ai-prompts-json-xml</guid>
      <description><![CDATA[Why structured prompts matter for parseable AI output, what goes wrong when you maintain them by hand, and a practical way to build JSON or XML prompt contracts.]]></description>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <category>Tool</category>
      <comments>3 min read</comments>
    </item>
    <item>
      <title><![CDATA[How to extract design tokens from any website]]></title>
      <link>https://darkmintis.dev/blog/extract-website-design-tokens</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/extract-website-design-tokens</guid>
      <description><![CDATA[A practical guide to pulling colors, typography, and CSS variables from live sites - without screenshot guesswork or uploading pages to a random server.]]></description>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <category>Tutorial</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[Chat apps keep your files forever. Temporary file sharing does not.]]></title>
      <link>https://darkmintis.dev/blog/temporary-file-sharing</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/temporary-file-sharing</guid>
      <description><![CDATA[Messaging apps are archives by design. Here is why that is a bad default for IDs, docs, and one-off handoffs - and what temporary file sharing should mean.]]></description>
      <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
      <category>Guide</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[Converting code between languages - what actually works]]></title>
      <link>https://darkmintis.dev/blog/convert-code-between-languages</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/convert-code-between-languages</guid>
      <description><![CDATA[Realistic cross-language conversion: what converters are good for, where they fail, and a review workflow that keeps ports honest.]]></description>
      <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
      <category>Guide</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[How to generate MD5, SHA-256, and SHA-512 hashes (without shipping secrets to a server)]]></title>
      <link>https://darkmintis.dev/blog/generate-md5-sha256-sha512-hashes</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/generate-md5-sha256-sha512-hashes</guid>
      <description><![CDATA[A practical hash tutorial: what digests are for, when to use MD5 vs SHA-256 vs SHA-512, and how to hash safely in the browser.]]></description>
      <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
      <category>Tutorial</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[How to make a custom QR code with colors and a logo (and still scan)]]></title>
      <link>https://darkmintis.dev/blog/make-custom-qr-code-with-logo</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/make-custom-qr-code-with-logo</guid>
      <description><![CDATA[A step-by-step how-to for branded QR codes: contrast, logos, testing before print, and avoiding free-tool traps - without an account wall.]]></description>
      <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
      <category>Tutorial</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[Why does publishing something online require an account? It didn't used to.]]></title>
      <link>https://darkmintis.dev/blog/why-publishing-requires-an-account</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/why-publishing-requires-an-account</guid>
      <description><![CDATA[The account requirement for posting online is a relatively recent default. Here's why it happened, what it costs, and what no-account publishing looks like.]]></description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
      <category>Hot take</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[Why people want to be anonymous online: and when it's actually reasonable]]></title>
      <link>https://darkmintis.dev/blog/why-online-anonymity-is-reasonable</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/why-online-anonymity-is-reasonable</guid>
      <description><![CDATA[Anonymity online gets treated as suspicious. The reality is most reasons people want it are completely normal.]]></description>
      <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
      <category>Hot take</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[You're sharing more than you think: a practical guide to digital privacy]]></title>
      <link>https://darkmintis.dev/blog/practical-digital-privacy-guide</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/practical-digital-privacy-guide</guid>
      <description><![CDATA[Not a paranoia guide. Just a realistic look at what data you're giving away daily and which habits actually make a difference.]]></description>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <category>Guide</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[Why your Android app keeps getting rejected from the Play Store]]></title>
      <link>https://darkmintis.dev/blog/play-store-rejection-reasons</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/play-store-rejection-reasons</guid>
      <description><![CDATA[Play Store rejections are frustrating because the rejection reasons are vague. Here are the actual causes behind the most common ones and how to fix them.]]></description>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <category>Hot take</category>
      <comments>6 min read</comments>
    </item>
    <item>
      <title><![CDATA[Where Does Your WhatsApp Photo Actually Go After You Send It?]]></title>
      <link>https://darkmintis.dev/blog/where-whatsapp-photos-go</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/where-whatsapp-photos-go</guid>
      <description><![CDATA[You send a photo and move on. But that image may end up on phones, backups, and cloud storage you never think about. Here's what actually happens.]]></description>
      <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
      <category>Guide</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[SHA256 vs MD5 vs SHA512: which one should you actually use?]]></title>
      <link>https://darkmintis.dev/blog/sha256-vs-md5-vs-sha512</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/sha256-vs-md5-vs-sha512</guid>
      <description><![CDATA[A straightforward breakdown of the three most common hash algorithms, what makes them different, and when each one is the right choice.]]></description>
      <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
      <category>Guide</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[I got tired of chat apps keeping my files forever. So I built Blink.]]></title>
      <link>https://darkmintis.dev/blog/why-i-built-blink-file-sharing</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/why-i-built-blink-file-sharing</guid>
      <description><![CDATA[Most messengers treat every attachment like permanent data. Here is why I built an Android app for temporary file sharing instead.]]></description>
      <pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate>
      <category>Tool</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[AI can generate apps now. Here's what that actually means for Flutter developers.]]></title>
      <link>https://darkmintis.dev/blog/ai-generated-apps-for-flutter-developers</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/ai-generated-apps-for-flutter-developers</guid>
      <description><![CDATA[Google AI Studio and others can now spit out native app code. I've been watching this closely as someone who builds Flutter apps. My honest take.]]></description>
      <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
      <category>Hot take</category>
      <comments>4 min read</comments>
    </item>
    <item>
      <title><![CDATA[Why I built a blogging platform that doesn't know who you are]]></title>
      <link>https://darkmintis.dev/blog/why-i-built-anonymous-blogging</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/why-i-built-anonymous-blogging</guid>
      <description><![CDATA[Echo lets you publish without an account, email, or identity. Here's the thinking behind it and what I learned building something that intentionally forgets you.]]></description>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <category>Tool</category>
      <comments>3 min read</comments>
    </item>
    <item>
      <title><![CDATA[Cracking hashes in a CTF without setting up Hashcat]]></title>
      <link>https://darkmintis.dev/blog/crack-hashes-in-ctf-without-hashcat</link>
      <guid isPermaLink="true">https://darkmintis.dev/blog/crack-hashes-in-ctf-without-hashcat</guid>
      <description><![CDATA[How dictionary attacks work for beginner CTFs, when a browser cracker is enough, and when you still need Hashcat.]]></description>
      <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
      <category>Tutorial</category>
      <comments>4 min read</comments>
    </item>
  </channel>
</rss>