<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Zley</title>
    <description>The latest articles on Forem by Zley (@zley_34b5414ca5e486c1c333).</description>
    <link>https://forem.com/zley_34b5414ca5e486c1c333</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3661506%2F9e1adfdf-23f8-4d9c-abf5-71ca925c82df.png</url>
      <title>Forem: Zley</title>
      <link>https://forem.com/zley_34b5414ca5e486c1c333</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/zley_34b5414ca5e486c1c333"/>
    <language>en</language>
    <item>
      <title>I Built a GUID Generator Because Test IDs Shouldn't Slow Me Down</title>
      <dc:creator>Zley</dc:creator>
      <pubDate>Thu, 30 Apr 2026 02:12:52 +0000</pubDate>
      <link>https://forem.com/zley_34b5414ca5e486c1c333/i-built-a-guid-generator-because-test-ids-shouldnt-slow-me-down-i7o</link>
      <guid>https://forem.com/zley_34b5414ca5e486c1c333/i-built-a-guid-generator-because-test-ids-shouldnt-slow-me-down-i7o</guid>
      <description>&lt;p&gt;Sometimes the smallest dev chores are the ones that interrupt flow the most.&lt;/p&gt;

&lt;p&gt;I often need a few GUIDs while testing an API, preparing seed data, writing examples, or filling in mock payloads. It is not hard to generate one from the console, but doing it repeatedly gets annoying fast.&lt;/p&gt;

&lt;p&gt;So I turned that tiny workflow into a browser tool: &lt;a href="https://toolsonline.run/guid-generator" rel="noopener noreferrer"&gt;GUID Generator&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;The tool is intentionally simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate 1 to 20 GUIDs at once&lt;/li&gt;
&lt;li&gt;Switch between uppercase and lowercase&lt;/li&gt;
&lt;li&gt;Keep or remove hyphens&lt;/li&gt;
&lt;li&gt;Add braces when a format needs them&lt;/li&gt;
&lt;li&gt;Copy all generated values in one click&lt;/li&gt;
&lt;li&gt;Restore recent generated batches from local history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That covers most of the cases I run into when I need IDs for JSON payloads, SQL rows, config examples, or test fixtures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I made it a separate tool
&lt;/h2&gt;

&lt;p&gt;A GUID generator is not a big feature. But when a tiny task shows up many times a week, it is worth making it frictionless.&lt;/p&gt;

&lt;p&gt;I wanted the flow to be: open the page, choose the format, generate, copy, move on. No login. No backend roundtrip. No extra UI trying to be clever.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://toolsonline.run/guid-generator" rel="noopener noreferrer"&gt;try the GUID generator here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI helped
&lt;/h2&gt;

&lt;p&gt;AI was useful here in a practical way. I used it to map the small edge cases first: count limits, casing, hyphen handling, brace formatting, copy feedback, and local history.&lt;/p&gt;

&lt;p&gt;After that, I folded the implementation back into the existing Tools Online structure, tightened the TypeScript, and added the multilingual SEO page around it.&lt;/p&gt;

&lt;p&gt;For small tools like this, AI is not replacing the product decision. It is more like a checklist partner that helps catch the boring details before they become bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it is for
&lt;/h2&gt;

&lt;p&gt;This is for developers who need quick IDs while building, debugging, documenting, or testing. If you regularly paste GUIDs into API mocks, database seeds, sample configs, or test data, this should save a few small interruptions.&lt;/p&gt;

&lt;p&gt;It is a small tool, but that is the point. The best utility tools are the ones you can open, use, and forget about.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tools</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>I Built a Text Similarity Checker: Compare Two Texts Instantly in Your Browser</title>
      <dc:creator>Zley</dc:creator>
      <pubDate>Wed, 29 Apr 2026 03:11:49 +0000</pubDate>
      <link>https://forem.com/zley_34b5414ca5e486c1c333/i-built-a-text-similarity-checker-compare-two-texts-instantly-in-your-browser-2323</link>
      <guid>https://forem.com/zley_34b5414ca5e486c1c333/i-built-a-text-similarity-checker-compare-two-texts-instantly-in-your-browser-2323</guid>
      <description>&lt;p&gt;Recently I was working on my online tools website &lt;a href="https://toolsonline.run" rel="noopener noreferrer"&gt;toolsonline.run&lt;/a&gt; and decided to build a &lt;strong&gt;Text Similarity Checker&lt;/strong&gt; — a tool that compares two texts and shows you exactly how similar they are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I kept running into situations where I needed to compare two blocks of text:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Writing&lt;/strong&gt;: Checking if I accidentally repeated paragraphs in a long article&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO&lt;/strong&gt;: Detecting duplicate content across pages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translation&lt;/strong&gt;: Comparing different versions of a translated text&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code review&lt;/strong&gt;: Spotting similar code snippets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most existing tools require registration, file uploads, or charge a fee. I wanted something simpler: paste two texts, get instant results, no strings attached.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Paste your two texts into "Text A" and "Text B" fields, and the tool instantly calculates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Similarity percentage&lt;/strong&gt; — based on the Sørensen–Dice coefficient&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared word count&lt;/strong&gt; — how many identical words exist between the two texts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text overlap rate&lt;/strong&gt; — the coverage of content overlap&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Results update in real time as you type or edit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Challenge: Chinese Tokenization
&lt;/h2&gt;

&lt;p&gt;The biggest challenge was &lt;strong&gt;Chinese text segmentation&lt;/strong&gt;. English splits on spaces, but Chinese has no natural word boundaries. I used &lt;code&gt;Intl.Segmenter&lt;/code&gt; — a browser-native API that correctly handles tokenization for 15+ languages including Chinese, Japanese, Korean, and Thai. No backend needed.&lt;/p&gt;

&lt;p&gt;The algorithm uses the &lt;strong&gt;Sørensen–Dice coefficient&lt;/strong&gt;, a classic text similarity metric. It compares the intersection of word frequency distributions against their union, producing a 0–100% score.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-time processing&lt;/strong&gt; — results update as you type&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-language support&lt;/strong&gt; — works with CJK languages via &lt;code&gt;Intl.Segmenter&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100% client-side&lt;/strong&gt; — no data sent to any server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free &amp;amp; no registration&lt;/strong&gt; — just open and use&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://toolsonline.run/text-similarity" rel="noopener noreferrer"&gt;Text Similarity Checker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's completely free, open-source friendly, and respects your privacy. All calculations happen locally in your browser.&lt;/p&gt;

&lt;p&gt;If you find it useful, feel free to share it. Questions or suggestions? Drop a comment below!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I built a small Base64 tool because I was tired of opening the console</title>
      <dc:creator>Zley</dc:creator>
      <pubDate>Tue, 28 Apr 2026 05:59:09 +0000</pubDate>
      <link>https://forem.com/zley_34b5414ca5e486c1c333/i-built-a-small-base64-tool-because-i-was-tired-of-opening-the-console-3plf</link>
      <guid>https://forem.com/zley_34b5414ca5e486c1c333/i-built-a-small-base64-tool-because-i-was-tired-of-opening-the-console-3plf</guid>
      <description>&lt;p&gt;There are some developer tools that are not complicated at all, but still manage to interrupt your flow every time you need them.&lt;/p&gt;

&lt;p&gt;Base64 encoding and decoding is one of those for me.&lt;/p&gt;

&lt;p&gt;When I am debugging an API response, checking a payload, testing a data URI, or looking at a config value that someone encoded, I usually do not want to open a terminal, write a quick snippet, or search for a random converter. I just want to paste the text, see the result, copy it, and move on.&lt;/p&gt;

&lt;p&gt;So I built a small browser-based Base64 encoder and decoder for Tools Online:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://toolsonline.run/base64" rel="noopener noreferrer"&gt;https://toolsonline.run/base64&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It does the basic thing: encode text to Base64 and decode Base64 back to text. But I tried to make the workflow feel less annoying:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time conversion while typing&lt;/li&gt;
&lt;li&gt;Encode/decode mode switching&lt;/li&gt;
&lt;li&gt;UTF-8 support, including CJK text and emoji&lt;/li&gt;
&lt;li&gt;One-click copy and paste&lt;/li&gt;
&lt;li&gt;Decode error feedback&lt;/li&gt;
&lt;li&gt;Local conversion history in the browser&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One detail I wanted to make clear on the page is that Base64 is not encryption.&lt;/p&gt;

&lt;p&gt;That sounds obvious, but I still see Base64 used in places where people treat "not immediately readable" as "secure". Base64 is just an encoding format. Anyone can decode it. If the data is sensitive, it needs real encryption, not a different text representation.&lt;/p&gt;

&lt;p&gt;I also added a short explanation of how Base64 works: 3 bytes become 24 bits, those bits get split into 4 groups of 6 bits, and each group maps to the Base64 alphabet. Padding with &lt;code&gt;=&lt;/code&gt; is added when the input length does not fit cleanly into groups of 3 bytes.&lt;/p&gt;

&lt;p&gt;The implementation is intentionally simple. The conversion runs in the browser, so the text never needs to be sent to a server. For a tool like this, that matters more to me than adding extra features.&lt;/p&gt;

&lt;p&gt;AI helped with the early checklist: edge cases, UX states, page copy, FAQ structure, and multilingual SEO content. The actual implementation still needed manual cleanup around TypeScript types, browser APIs, error handling, and keeping the UI consistent with the rest of the site.&lt;/p&gt;

&lt;p&gt;It is a small tool, but I like small tools that remove repeated friction.&lt;/p&gt;

&lt;p&gt;If you deal with Base64 often while debugging APIs or frontend data, you can try it here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://toolsonline.run/base64" rel="noopener noreferrer"&gt;Base64 Encode &amp;amp; Decode Online&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tools</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I Built My URL Decode Tool</title>
      <dc:creator>Zley</dc:creator>
      <pubDate>Fri, 13 Mar 2026 11:31:06 +0000</pubDate>
      <link>https://forem.com/zley_34b5414ca5e486c1c333/how-i-built-my-url-decode-tool-56on</link>
      <guid>https://forem.com/zley_34b5414ca5e486c1c333/how-i-built-my-url-decode-tool-56on</guid>
      <description>&lt;p&gt;I have been filling out Tools Online with the kind of developer utilities that are small, boring, and incredibly useful when you need them right now. A URL decode and encode tool was an obvious one to build. When you are debugging API calls, checking callback URLs, or trying to read a string full of &lt;code&gt;%E4%B8%AD%E6%96%87&lt;/code&gt;, you usually do not want to open DevTools and write one more line of JavaScript. You just want a page that works immediately and keeps your data in the browser.&lt;/p&gt;

&lt;p&gt;That was the whole goal here: make it fast, make it clear, and make it convenient enough that I would actually use it myself. If you want to see the finished version first, you can try it here: &lt;a href="https://toolsonline.run/urldecode" rel="noopener noreferrer"&gt;URL Decode tool&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0k0jl1ye1wrybp9n2gr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0k0jl1ye1wrybp9n2gr3.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What this tool does
&lt;/h2&gt;

&lt;p&gt;The tool handles both sides of the workflow.&lt;/p&gt;

&lt;p&gt;On the decode side, it takes percent-encoded content and turns it back into readable text with &lt;code&gt;decodeURIComponent&lt;/code&gt;, which is useful when I am checking query params, callback links, or encoded values from logs.&lt;/p&gt;

&lt;p&gt;On the encode side, I decided not to stop at a single output. The page shows both:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;encodeURI&lt;/code&gt;, for full URLs where the URL structure should stay intact&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;encodeURIComponent&lt;/code&gt;, for parameter values where special characters should be fully escaped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That distinction matters a lot in real use. People often know they need “URL encoding,” but the difference between those two JavaScript APIs is exactly where mistakes happen. So the tool does not just convert text. It also explains the difference and shows when each option makes sense.&lt;/p&gt;

&lt;p&gt;I also added the smaller quality-of-life pieces that make a tool like this feel complete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real-time conversion while typing&lt;/li&gt;
&lt;li&gt;a switch for turning real-time mode on or off&lt;/li&gt;
&lt;li&gt;one-click copy and paste support&lt;/li&gt;
&lt;li&gt;local history for recent conversions&lt;/li&gt;
&lt;li&gt;clear error feedback for invalid encoded input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that is flashy, but together it is much nicer than opening the console every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;My usual approach for tools like this is to build the smallest working loop first: input, processing, output. Once that works, I add the interaction details that actually affect usability.&lt;/p&gt;

&lt;p&gt;The main component is a client-side React component. The logic is straightforward, but I still wanted the state model to be clean. I split state across the input value, decode output, encode output, current mode, error message, copy feedback, real-time toggle, and history. For the encode flow, I keep both &lt;code&gt;uri&lt;/code&gt; and &lt;code&gt;uriComponent&lt;/code&gt; outputs so the user does not need to make that choice after the fact.&lt;/p&gt;

&lt;p&gt;History is stored in &lt;code&gt;localStorage&lt;/code&gt;, capped at 20 entries. I also made sure it does not get noisy. If the latest entry is effectively the same input in the same mode, it is ignored. In real-time mode, I do not immediately save every keystroke either. I delay history writes slightly so the tool feels like a practical utility instead of a key logger with a UI.&lt;/p&gt;

&lt;p&gt;On the page itself, I did not want a bare input box and a button. I wanted the landing page to be useful on its own, so I included content that explains the context around the tool:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why URL encoding matters&lt;/li&gt;
&lt;li&gt;what RFC3986 allows and reserves&lt;/li&gt;
&lt;li&gt;common failure cases when text is not encoded properly&lt;/li&gt;
&lt;li&gt;the difference between &lt;code&gt;encodeURI&lt;/code&gt; and &lt;code&gt;encodeURIComponent&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;a quick reference table for common encoded characters&lt;/li&gt;
&lt;li&gt;FAQ, how-to content, and structured SEO metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the end result is not just a working widget. It is a tool page that helps people use the feature and understand the concept.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI helped
&lt;/h2&gt;

&lt;p&gt;This was not a one-prompt, fully automated build. I used AI more like a fast development partner. It helped me move faster, but I still made the decisions that shaped the final result.&lt;/p&gt;

&lt;p&gt;The first place AI helped was requirement breakdown. I used it to quickly explore which interactions were worth including beyond basic encode and decode. Real-time conversion, clipboard actions, history, and dual encode outputs all came out of that early exploration phase.&lt;/p&gt;

&lt;p&gt;Then I used AI to help draft an initial component structure. That is where it saves the most time for me: getting a first pass on state layout, processing flow, and UI structure so I can start refining instead of staring at a blank file.&lt;/p&gt;

&lt;p&gt;After that, I tightened the implementation myself. Type details, state behavior, duplicate-history filtering, error handling, and the final interaction choices all needed manual judgment. This project also has real constraints around strict TypeScript, Radix UI usage, i18n file organization, and SEO page structure, so I treat AI output as a draft, not a final answer.&lt;/p&gt;

&lt;p&gt;I also use AI later in the process for cleanup work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;checking whether the copy reads naturally&lt;/li&gt;
&lt;li&gt;filling in page content that users and search engines actually benefit from&lt;/li&gt;
&lt;li&gt;catching obvious edge cases or missing explanations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the workflow I like most. AI handles the repetitive and exploratory parts. I keep control over the parts that determine quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  The parts I like most in this tool
&lt;/h2&gt;

&lt;p&gt;The first one is privacy. Everything runs in the browser. Nothing needs to be sent to a server. For a developer tool that often touches callback URLs, temporary tokens, or debugging data, that boundary matters.&lt;/p&gt;

&lt;p&gt;The second one is that the page explains things instead of only outputting a result. I do not like tools that give you an answer without helping you understand why it works. So I added the &lt;code&gt;encodeURI&lt;/code&gt; vs &lt;code&gt;encodeURIComponent&lt;/code&gt; comparison, an encoding reference, and enough surrounding context to make the page useful even before someone clicks copy.&lt;/p&gt;

&lt;p&gt;The third one is the multilingual and SEO work around it. The site supports 15 languages, so even a “small” utility ends up needing full component copy, landing-page content, FAQ, metadata, alternates, and JSON-LD. It is a lot of detail work, but it is worth it because a useful tool should be discoverable and understandable, not just functional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is for
&lt;/h2&gt;

&lt;p&gt;This tool is especially handy if you regularly do things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;debug API parameters&lt;/li&gt;
&lt;li&gt;inspect OAuth or payment callback URLs&lt;/li&gt;
&lt;li&gt;deal with spaces, non-ASCII text, or special characters in query strings&lt;/li&gt;
&lt;li&gt;generate safe parameter values for URLs&lt;/li&gt;
&lt;li&gt;quickly decide whether a full URL or a single value should be encoded&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is the kind of page that saves time when you need a quick answer and do not want to drop into code just to inspect one string.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final note
&lt;/h2&gt;

&lt;p&gt;I do not think developer tools need to be complicated to be valuable. A lot of the time, the best ones are the pages you remember at exactly the moment you need them.&lt;/p&gt;

&lt;p&gt;That is what I wanted this URL Decode and Encode tool to be. Not flashy, not overloaded, just fast, clear, and complete enough to be genuinely useful. AI helped me speed up parts of the build, which let me spend more time on the interaction details, page content, and overall polish.&lt;/p&gt;

&lt;p&gt;If you spend any amount of time bouncing between encoded strings and readable URLs, this one should fit nicely into your workflow. If you want to open it right away, you can &lt;a href="https://toolsonline.run/urldecode" rel="noopener noreferrer"&gt;try it here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Built a tool to generate beautiful Prompt Cards over the weekend, no login required</title>
      <dc:creator>Zley</dc:creator>
      <pubDate>Sat, 20 Dec 2025 05:35:36 +0000</pubDate>
      <link>https://forem.com/zley_34b5414ca5e486c1c333/built-a-tool-to-generate-beautiful-prompt-cards-over-the-weekend-no-login-required-4ope</link>
      <guid>https://forem.com/zley_34b5414ca5e486c1c333/built-a-tool-to-generate-beautiful-prompt-cards-over-the-weekend-no-login-required-4ope</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;I spent the weekend building a small tool. The idea came from my own frustration: whenever I shared AI Prompts in tech groups or on social media, copy-pasting raw text looked messy, and screenshots of ChatGPT interface were cluttered with UI elements.&lt;/p&gt;

&lt;p&gt;I wanted a simple, pure tool to turn boring text into beautiful cards, so I built &lt;strong&gt;AI Prompt Card&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;strong&gt;&lt;a href="https://aipromptcard.app" rel="noopener noreferrer"&gt;https://aipromptcard.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4yycper9airdk0fu3gdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4yycper9airdk0fu3gdf.png" alt=" " width="800" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does it do?&lt;/strong&gt;&lt;br&gt;
Simply put, it "beautifies your prompts". Paste your prompt, and it automatically parses Markdown (with code highlighting) to generate a well-designed image.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;WYSIWYG&lt;/strong&gt;: Edit on the left, preview on the right. No guessing.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Markdown Support&lt;/strong&gt;: Optimized for code blocks and lists. Developer friendly.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Aesthetics&lt;/strong&gt;: 10+ carefully crafted themes, supporting Dark/Light modes.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Privacy First&lt;/strong&gt;: &lt;strong&gt;No backend account system&lt;/strong&gt;. All history is saved in your browser's LocalStorage. I don't want your data.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Ultra Lightweight&lt;/strong&gt;: No bloat. Open, generate, and go.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A bit about the dev process:&lt;/strong&gt;&lt;br&gt;
There are similar tools out there, but they often require login, produce low-res images, or have poor typography support. As someone with a bit of "pixel OCD", I tweaked the letter spacing and line height specifically to ensure the cards look great when shared on Twitter or mobile.&lt;/p&gt;

&lt;p&gt;The project has no paid features and is purely a labor of love (I even paid for the domain 😂).&lt;/p&gt;

&lt;p&gt;Let me know what you think! If you have any color themes you'd like to see, tell me in the comments and I'll add them!&lt;/p&gt;

</description>
      <category>promptengineering</category>
    </item>
  </channel>
</rss>
