<?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>DEV Community: wendygostudio</title>
    <description>The latest articles on DEV Community by wendygostudio (@wendygostudio).</description>
    <link>https://dev.to/wendygostudio</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4003595%2Fd0c466cf-949b-4064-8a21-89632a36cf16.png</url>
      <title>DEV Community: wendygostudio</title>
      <link>https://dev.to/wendygostudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wendygostudio"/>
    <language>en</language>
    <item>
      <title>Stop uploading your screenshots to resize them</title>
      <dc:creator>wendygostudio</dc:creator>
      <pubDate>Mon, 29 Jun 2026 14:54:15 +0000</pubDate>
      <link>https://dev.to/wendygostudio/stop-uploading-your-screenshots-to-resize-them-6ma</link>
      <guid>https://dev.to/wendygostudio/stop-uploading-your-screenshots-to-resize-them-6ma</guid>
      <description>&lt;p&gt;Every time you resize a thumbnail, you face a choice: upload it to Canva (or similar), or resize it locally. Most creators default to uploading without thinking about what that means.&lt;/p&gt;

&lt;p&gt;If you're publishing frequently — multiple videos a week, social posts, platform-specific sizes — you're sending a lot of images to third-party servers. Not because you have to, but because the tool you grabbed doesn't offer an alternative.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Upload Problem
&lt;/h2&gt;

&lt;p&gt;Canva is excellent at what it does: full-featured design from scratch. You add text, backgrounds, icons, brands. That power justifies the cloud requirement. But for the "I have a screenshot and need it at exactly 1200×627 for LinkedIn" task, you're paying a cost you might not need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time:&lt;/strong&gt; Open Canva → create design → upload image → position → download&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; Your image lives on Canva's servers for the duration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Account burden:&lt;/strong&gt; One more login to maintain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you already have the image, uploading it to resize is friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Local-First Alternative
&lt;/h2&gt;

&lt;p&gt;FrameForge works the opposite way. Open the extension, select your image, pick a platform preset (YouTube, Instagram, LinkedIn, X — dimensions lock automatically), adjust the crop, and export. No account. No upload. No internet needed after install.&lt;/p&gt;

&lt;p&gt;The step count is half. The image never leaves your machine. And it takes the same 30 seconds whether you're resizing for the first time or the hundredth.&lt;/p&gt;

&lt;p&gt;The real difference is the starting assumption. &lt;strong&gt;Canva assumes you're designing.&lt;/strong&gt; FrameForge assumes you already have the image.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Privacy Actually Matters
&lt;/h2&gt;

&lt;p&gt;For personal projects, uploading a screenshot might feel harmless. But if you're:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Working with client assets before they're public&lt;/li&gt;
&lt;li&gt;Resizing screenshots of unreleased products&lt;/li&gt;
&lt;li&gt;Publishing drafts that aren't ready to share with the world&lt;/li&gt;
&lt;li&gt;Building in restricted environments where file uploads trigger security reviews&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...then uploading each thumbnail becomes a problem. Not because the platform is untrustworthy, but because architectural constraints matter.&lt;/p&gt;

&lt;p&gt;FrameForge processes everything in your browser. Your files stay on your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Honest Take
&lt;/h2&gt;

&lt;p&gt;Canva and FrameForge solve different problems. Many creators use both:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Canva&lt;/strong&gt; for designed thumbnails where the layout is the work (text, brand colors, composed elements)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FrameForge&lt;/strong&gt; for quick adaptation (you have the image, you need specific dimensions)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But if you're in the second camp — "I publish frequently and just need to resize" — you might be using a sledgehammer for a nail.&lt;/p&gt;

&lt;p&gt;📖 Read the full guide with more details on &lt;a href="https://wendygostudio.com/blog/frameforge-vs-canva-thumbnails/" rel="noopener noreferrer"&gt;wendygostudio.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>extension</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Stop Sorting Lists by Hand: A Browser Extension That Does It in One Click</title>
      <dc:creator>wendygostudio</dc:creator>
      <pubDate>Sun, 28 Jun 2026 11:37:35 +0000</pubDate>
      <link>https://dev.to/wendygostudio/stop-sorting-lists-by-hand-a-browser-extension-that-does-it-in-one-click-42bh</link>
      <guid>https://dev.to/wendygostudio/stop-sorting-lists-by-hand-a-browser-extension-that-does-it-in-one-click-42bh</guid>
      <description>&lt;h1&gt;
  
  
  The Sorting List Bottleneck
&lt;/h1&gt;

&lt;p&gt;You pull a list of hostnames from your monitoring dashboard. A dependencies export from your package manager. Error codes from logs. Config keys from an env dump. And every single time, they come out in insertion order — not alphabetical.&lt;/p&gt;

&lt;p&gt;So what do you do?&lt;/p&gt;

&lt;p&gt;Most developers reach for Excel or Google Sheets: paste, click Data &amp;gt; Sort, copy back. Others open the terminal, save to a file, run &lt;code&gt;sort&lt;/code&gt;, capture the output. Some paste into a random online sorter and hope their internal hostnames don't end up in someone's database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All three options suck for the same reason: friction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The task is trivial — alphabetize a list. But the ceremony around it isn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters More Than It Sounds
&lt;/h2&gt;

&lt;p&gt;Sorted lists aren't just neat. They're:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Faster to scan:&lt;/strong&gt; Configs, dependency lists, and server inventories are easier to audit when entries cluster together alphabetically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cleaner diffs:&lt;/strong&gt; When you sort before committing, reviewers see what was added/removed, not a jumbled re-order&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Less error-prone:&lt;/strong&gt; Manual eye-sorting over 10+ items is a recipe for transpositions you'll catch at 3am&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The One-Click Alternative
&lt;/h2&gt;

&lt;p&gt;A browser extension that sorts text locally in your browser changes this completely. No copy-paste shuffling. No file saves. No terminal flags to remember. One click from your toolbar, and your list is sorted — without leaving your browser.&lt;/p&gt;

&lt;p&gt;The beauty is that everything stays local. Your server hostnames, API paths, or sensitive config keys never touch an external server. It's just you, your browser, and your list.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Real Example
&lt;/h2&gt;

&lt;p&gt;Say you pull this server inventory from a dashboard:&lt;/p&gt;

&lt;p&gt;Paste it in, apply the sort, and instantly get:&lt;/p&gt;

&lt;p&gt;Six hostnames sorted in under two seconds. Ready to paste into your runbook, your Terraform config, or your code review.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Browser Extension Wins
&lt;/h2&gt;

&lt;p&gt;Beyond sorting, a good extension can also extract emails, URLs, and IPs from mixed text — pull them all from a log file without regex. Encode/decode Base64 for JWT inspection. Generate UUIDs on the fly. All free, all local, all one click away.&lt;/p&gt;

&lt;p&gt;This is the kind of tool that saves 30 seconds here, a minute there — but over a year, it compounds into actual time back in your life.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;If you manage lists, hostnames, configs, or logs as part of your workflow, try sorting with a browser extension instead of the next manual method. You might be surprised how much friction disappears.&lt;/p&gt;

&lt;p&gt;📖 Read the full guide with more details on &lt;a href="https://wendygostudio.com/blog/sort-lines-alphabetically-online/" rel="noopener noreferrer"&gt;wendygostudio.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>productivity</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why X is Cropping Your Tweet Images (And How to Fix It)</title>
      <dc:creator>wendygostudio</dc:creator>
      <pubDate>Sat, 27 Jun 2026 10:31:22 +0000</pubDate>
      <link>https://dev.to/wendygostudio/why-x-is-cropping-your-tweet-images-and-how-to-fix-it-13om</link>
      <guid>https://dev.to/wendygostudio/why-x-is-cropping-your-tweet-images-and-how-to-fix-it-13om</guid>
      <description>&lt;p&gt;Your carefully chosen tweet image just went live—and it looks like it got decimated in the X feed preview. The top and bottom are missing. Portrait shots are squeezed into a weird vertical strip. &lt;/p&gt;

&lt;p&gt;If this sounds familiar, X is doing what it's designed to do: center-crop your image to a 2:1 aspect ratio in the timeline feed. It's not a bug. It's the platform's image rendering behavior, and once you know the target dimensions, it's trivial to work around.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Crop Problem
&lt;/h2&gt;

&lt;p&gt;X applies a center-crop to inline images in the feed. A square photo (1:1) becomes a 2:1 slice—goodbye top quarter, goodbye bottom quarter. Portrait images (9:16, the default from most phone cameras) get hit even harder: roughly 80% of the vertical height disappears in the feed preview alone.&lt;/p&gt;

&lt;p&gt;So your carefully framed smartphone photo or custom graphic gets butchered before most people even click to expand it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The One-Size Solution
&lt;/h2&gt;

&lt;p&gt;Post at &lt;strong&gt;1200×675 px&lt;/strong&gt; (16:9 aspect ratio) and none of this happens.&lt;/p&gt;

&lt;p&gt;Why? Because 1200×675 is already 16:9. When X's 2:1 feed preview tries to crop it, there's no excess to remove—the image already fills the exact space. You get no surprise cropping in the feed, and the full image displays without letter-boxing or awkward padding when someone expands it.&lt;/p&gt;

&lt;p&gt;This is the same 16:9 ratio used by YouTube thumbnails (1280×720), so if you cross-post video previews to both platforms, the composition stays consistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Resize Without Breaking Your Workflow
&lt;/h2&gt;

&lt;p&gt;If you're doing this manually with PIL, ImageMagick, or desktop software, it works—but you're stuck uploading files, opening tools, waiting for batch processing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FrameForge&lt;/strong&gt; is a Chrome extension that does this in-browser with no upload, no account, no server. You get platform presets (X Post, YouTube, Instagram, Twitch) that lock the canvas to the right dimensions. Drag your crop overlay to frame what matters. Export. Done.&lt;/p&gt;

&lt;p&gt;For developers, the appeal is obvious: resize once per platform, export each variant in seconds, move on. No switching tools. No waiting for external services. Image processing stays local.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Multi-Platform Angle
&lt;/h2&gt;

&lt;p&gt;If you're the type who posts the same content to Twitter, YouTube thumbnails, and Instagram in one sitting, FrameForge handles all three presets from one extension. Set your source image, select the platform, crop once, export. Repeat for the next platform. It's faster than uploading to three different online tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Takeaway
&lt;/h2&gt;

&lt;p&gt;Post X images at 1200×675 px and the 2:1 feed crop won't steal your content. If you're doing this repeatedly, automate it: FrameForge, command-line tools, or whatever fits your workflow. Just stop letting the platform's default center-crop drive the design.&lt;/p&gt;




&lt;p&gt;📖 Read the full guide with more details on &lt;a href="https://wendygostudio.com/blog/resize-image-for-x-twitter-post/" rel="noopener noreferrer"&gt;wendygostudio.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>twitter</category>
      <category>tools</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop Pasting Your Contact Data Into Random Websites</title>
      <dc:creator>wendygostudio</dc:creator>
      <pubDate>Fri, 26 Jun 2026 12:34:51 +0000</pubDate>
      <link>https://dev.to/wendygostudio/stop-pasting-your-contact-data-into-random-websites-4if0</link>
      <guid>https://dev.to/wendygostudio/stop-pasting-your-contact-data-into-random-websites-4if0</guid>
      <description>&lt;h1&gt;
  
  
  Stop Pasting Your Contact Data Into Random Websites
&lt;/h1&gt;

&lt;p&gt;You've all been there: a forwarded email chain with contact information scattered everywhere, a CRM export that's one giant mess, or a log file where email addresses are buried in timestamps and server IPs.&lt;/p&gt;

&lt;p&gt;Your first instinct? Fire up Google, find an "email extractor" website, paste your text, and hope nobody is logging what you just sent.&lt;/p&gt;

&lt;p&gt;But here's the thing: &lt;strong&gt;why are you uploading contact data to a third-party server when you don't have to?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Privacy Problem With Online Extractors
&lt;/h2&gt;

&lt;p&gt;Online email extraction tools are convenient, sure. But they require uploading your data to someone else's server. If you're extracting contact lists from a CRM, customer emails, internal team rosters, or log files with sensitive information, you're creating a data handling risk.&lt;/p&gt;

&lt;p&gt;Sure, they probably aren't storing anything. &lt;em&gt;Probably.&lt;/em&gt; But why take the chance?&lt;/p&gt;

&lt;h2&gt;
  
  
  A Better Approach: Local Extraction in Your Browser
&lt;/h2&gt;

&lt;p&gt;What if you could extract emails in seconds, &lt;strong&gt;entirely in your browser&lt;/strong&gt;, without uploading anything? That's exactly what TextForge does. It's a free Chrome extension that pulls email addresses from any text block, locally, on your machine.&lt;/p&gt;

&lt;p&gt;No servers involved. No data in transit. No terms of service you didn't read.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works (5 Simple Steps)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install TextForge&lt;/strong&gt; — Grab it from the Chrome Web Store, pin it to your toolbar&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click the extension&lt;/strong&gt; — Opens instantly in a side panel&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paste your text&lt;/strong&gt; — Drop in your log file, email export, document text, whatever&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select "Extract Emails"&lt;/strong&gt; — TextForge scans the input and pulls out every email address&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy and go&lt;/strong&gt; — Instant results, copy to your clipboard, done&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Real Example
&lt;/h2&gt;

&lt;p&gt;Say you get a chunk of contact text like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Our event contacts: Alice Mora (alice.mora@example.com), facilities coordinator; 
Robert Kim &amp;lt;r.kim@venue-partners.org&amp;gt;; billing enquiries to billing@acme-ltd.co.uk. 
CC the team at events@example.com for all confirmations.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hit "Extract Emails" in TextForge and you get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alice.mora@example.com
r.kim@venue-partners.org
billing@acme-ltd.co.uk
events@example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Four addresses, instantly, from a paragraph of mixed text. No regex patterns to remember, no copy-paste hunting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Actually Matters
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Speed:&lt;/strong&gt; No server round trip, no loading spinner waiting for a response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy:&lt;/strong&gt; Literally nothing leaves your machine. Processing happens entirely in your browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simplicity:&lt;/strong&gt; One click from your toolbar. No opening a new tab, no "accept our cookies" modal, no account signup.&lt;/p&gt;

&lt;p&gt;TextForge also handles extraction for URLs and IP addresses — useful if you're parsing logs where multiple data types are mixed together.&lt;/p&gt;

&lt;p&gt;The free version includes all extraction functions. No account needed, no premium upsell.&lt;/p&gt;




&lt;p&gt;📖 &lt;strong&gt;Read the full guide with more details on &lt;a href="https://wendygostudio.com/blog/extract-emails-from-text/" rel="noopener noreferrer"&gt;wendygostudio.com/blog/extract-emails-from-text/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>productivity</category>
      <category>devtools</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
