<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Building and Breaking things]]></title><description><![CDATA[Building and Breaking things]]></description><link>https://priyanshudotsol.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 08:13:51 GMT</lastBuildDate><atom:link href="https://priyanshudotsol.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[This Mac App Feels Illegal to Know About]]></title><description><![CDATA[Why Spotlight, Photos and Finder can't find your old screenshots, and how to search the text inside every screenshot on your Mac.]]></description><link>https://priyanshudotsol.hashnode.dev/this-mac-app-feels-illegal-to-know-about</link><guid isPermaLink="true">https://priyanshudotsol.hashnode.dev/this-mac-app-feels-illegal-to-know-about</guid><category><![CDATA[macOS]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Apple]]></category><category><![CDATA[tools]]></category><dc:creator><![CDATA[Priyanshu Tiwari]]></dc:creator><pubDate>Thu, 12 Nov 2026 06:10:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6af2c102860eb3f5ce736f23/eb6854ee-5a17-4396-bbc5-a850c19e5bfa.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It’s 11:40 PM. You’re tired, you want to sleep, and suddenly you need to find <strong>one screenshot.</strong></p>
<p>It has the final pricing a client sent you three weeks ago. You remember saving it. You remember exactly what was in it. You just have no idea where it is.</p>
<p>You open your Desktop.</p>
<p>Screenshot 2026-10-04. Screenshot 2026-10-06. Screenshot 2026-10-08.</p>
<p>Hundreds of them. All looking almost identical.</p>
<p>You open Downloads. Nothing.</p>
<p>You try Spotlight and type “pricing.” It shows you a PDF from last year, three random documents, and pretty much everything except the screenshot you actually need.</p>
<p>So you start opening them one by one.</p>
<p>Click. Nope.</p>
<p>Click. Nope.</p>
<p>Click. Wait, was this the one?</p>
<p>Nope.</p>
<p>Forty minutes later, you finally find it. The screenshot was there the whole time. You just had to waste nearly an hour looking for something that took two seconds to save.</p>
<p>And the worst part? You know you’ll do this again next week.</p>
<p>Because if you’re anything like me, screenshots have become your second memory. A payment confirmation, a tweet you want to revisit, a snippet of code, a client’s requirements, a random idea at 2 AM. You screenshot everything because you know you’ll need it someday.</p>
<p>But someday comes, and you can’t find a damn thing.</p>
<p><strong>Your Mac remembers the file. You remember the moment. And somewhere between the two, the information gets lost.</strong></p>
<p>The problem isn’t that you take too many screenshots. It’s that your Mac organizes them by when you took them, while you search for them by what they meant.</p>
<p>And once you understand that, there’s a much better way to find them.</p>
<p>Let’s talk about why your usual search tools fall short, and how you can turn that pile of screenshots into something you can actually search.</p>
<h2>Why your Mac can’t find the screenshot you’re thinking of</h2>
<p>Every screenshot gets a name like “Screenshot 2026-10-07 at 4.12.33 PM”. That name tells you when you took it, and nothing about what it shows.</p>
<p>So when you search, you’re searching the one thing you don’t remember: the date.</p>
<p>What you <em>do</em> remember is a word on the screen (“pricing”, “invoice”, the client’s name), roughly who or what was in it, or that it was “the one with the blue chart”. To find a screenshot, a search tool has to read the image itself.</p>
<p>Here’s how the built-in options handle that.</p>
<h2>1. Spotlight: fast, but it’s a file search</h2>
<p>Spotlight is great at finding apps, documents and anything with a useful name. Recent versions of macOS can also pick up some text inside images, so it’s worth trying first.</p>
<p>The catch: results are mixed in with every document, email and setting on your Mac, there’s no preview grid to scan, and it’s hit or miss on older screenshots. When you have hundreds of near-identical file names, a list of names doesn’t help much.</p>
<p><strong>Good for:</strong> finding a file when you remember its name.</p>
<h2>2. The Photos app: good search, wrong folder</h2>
<p>The Photos app has real search. It recognises objects, text and faces.</p>
<p>The catch is right there in the name: it only searches what’s <em>in your Photos library</em>. Screenshots on a Mac land on the Desktop (or wherever you pointed them), not in Photos. Unless you import them by hand every week, Photos never sees them. Same for images in Downloads, chat exports and screen recordings.</p>
<p><strong>Good for:</strong> photos from your iPhone that already sync to iCloud Photos.</p>
<h2>3. Finder: sorting, not searching</h2>
<p>Finder can sort by date, show a gallery view and filter by kind. If you know it was “early October”, you can narrow it down.</p>
<p>But you’re still scrolling and opening files one by one. That’s exactly the forty minutes you lost at 11:40 PM.</p>
<p><strong>Good for:</strong> cleaning up, not finding.</p>
<h2>The one idea: search what’s inside the image</h2>
<p>All three tools search around the image: its name, its folder, its date. The fix is a search that reads the image itself, the way you remember it:</p>
<ul>
<li><strong>The text on screen</strong> (every word, from every screenshot)</li>
<li><strong>The people</strong> in your photos</li>
<li><strong>Where it came from</strong>: Desktop, Downloads, iPhone, screen recordings</li>
</ul>
<p>And because these are your screenshots (bank pages, chats, passwords you shouldn’t have screenshotted), it should do all of that <strong>on your Mac</strong>, without uploading anything.</p>
<p>That’s exactly what <a href="https://photsy.app">Photsy</a> does.</p>
<h2>Photsy: a search engine for every screenshot, photo and video on your Mac</h2>
<img src="https://cdn-images-1.medium.com/max/1024/1*8nG4DrkFHSGwz4eW0K3z7Q.png" alt="Photsy library view" style="display:block;margin:0 auto" />

<p><em>Photsy’s library: every screenshot, photo and video on the Mac in one searchable place.</em></p>
<p>Photsy indexes the screenshots, photos and videos across your Mac and lets you search them by what’s in them. Type “pricing” and you get every screenshot with the word “pricing” on screen, as a grid you can scan in a second. Your forty minutes become ten seconds.</p>
<p>What it does:</p>
<ul>
<li><strong>Reads the text inside every image</strong>, so you search by what was on screen, not by file name</li>
<li><strong>Groups faces into people</strong>, so “every photo with Riya” is one click</li>
<li><strong>Covers the folders Photos ignores</strong>: Desktop, Downloads and the rest, not just your Photos library</li>
<li><strong>Imports straight from an iPhone</strong></li>
<li><strong>Everything runs on your Mac.</strong> Your screenshots never leave it</li>
</ul>
<p>It also fixes the small annoyances that usually send you to a converter website:</p>
<ul>
<li><strong>HEIC to JPG</strong> and <strong>MOV to MP4</strong> in one click (iPhone photos and screen recordings that won’t upload anywhere)</li>
<li><strong>Make a PDF</strong> from a set of screenshots (receipts, notes, a bug report)</li>
<li><strong>Build a collage</strong> without opening a design app</li>
</ul>
<p><strong>Price:</strong> one-time, <strong>$9 for 1 Mac or $19 for 3 Macs</strong> for the first 50 buyers. No subscription.</p>
<p><strong>Try it here:</strong> <a href="https://photsy.app">Photsy</a></p>
<h2>How to set it up so this never happens again</h2>
<ol>
<li><strong>Install Photsy</strong> and let it index your Desktop, Downloads and screenshot folder. The first index takes a while if you have years of screenshots; after that it keeps up on its own.</li>
<li><strong>Search by what you remember</strong>, not the date: a word on screen, a person, a site name.</li>
<li><strong>Keep taking screenshots.</strong> That’s the point. Screenshots are the fastest way to save something, as long as you can get them back.</li>
<li><strong>Clear out the junk</strong> once a month: search for things you know are useless (“captcha”, “loading”) and delete them in bulk.</li>
</ol>
<h2>Which one should you pick?</h2>
<p>If you remember the <strong>file name</strong>, Spotlight is already on your Mac and it’s instant.</p>
<p>If everything you care about is <strong>iPhone photos synced to iCloud</strong>, the Photos app’s search is good enough.</p>
<p>If you take <strong>screenshots to remember things</strong> (chats, prices, receipts, error messages, ideas) and they live on your Desktop and in Downloads, you need search that reads the image. That’s <a href="https://photsy.app/?utm_source=hashnode&amp;utm_campaign=how-to-find-a-screenshot-on-mac">Photsy</a>.</p>
<p>So next time it’s 11:40 PM, you type “pricing” and the screenshot is the first result. You’re asleep by 11:45.</p>
<h2>Quick answers</h2>
<p><strong>How do I find an old screenshot on Mac?</strong> Search by what was on screen, not by name. Spotlight sometimes finds text inside images, but for screenshots on your Desktop and in Downloads, an app like Photsy that reads the text in every image finds it in seconds.</p>
<p><strong>Can I search the text inside images on a Mac?</strong> Yes. Photsy reads the text in every screenshot and photo on your Mac and makes it searchable, all on-device.</p>
<p><strong>Where do screenshots go on a Mac?</strong> By default, to the Desktop, named “Screenshot at ”. You can change the folder from the Screenshot app (press Shift-Command-5, then Options).</p>
<p><strong>How do I convert HEIC to JPG on a Mac?</strong> Preview can export one file at a time (File → Export → JPEG). Photsy converts HEIC to JPG, and MOV to MP4, in one click, for one file or many.</p>
]]></content:encoded></item><item><title><![CDATA[Don't Delete Docker.raw. The 1 TB File on Your Mac Is Lying to You.]]></title><description><![CDATA[My 228 GB Mac had a 1 TB Docker.raw file. It was using 1.8 GB. One command shows the real size, and here's what to do when your disk really is full.]]></description><link>https://priyanshudotsol.hashnode.dev/docker-raw-1tb-mac</link><guid isPermaLink="true">https://priyanshudotsol.hashnode.dev/docker-raw-1tb-mac</guid><category><![CDATA[Docker]]></category><category><![CDATA[macOS]]></category><category><![CDATA[Devops]]></category><category><![CDATA[linux-commands]]></category><category><![CDATA[Programming Blogs]]></category><dc:creator><![CDATA[Priyanshu Tiwari]]></dc:creator><pubDate>Wed, 11 Nov 2026 16:11:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6af2c102860eb3f5ce736f23/bb088357-f744-436c-a949-4cad4c692e04.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My Mac was down to 7.3 GB of free space last week, so I went looking for what was eating it. The biggest file on the machine was easy to spot: a Docker.raw file with a size of 1 TB.</p>
<p>My SSD is 228 GB.</p>
<p>If you searched "Docker.raw 1TB" because your Mac showed you the same thing, you probably had the same moment. A file four times bigger than the disk it lives on, and your first instinct is to delete it.</p>
<p>Don't. Here's the output that changed my mind:</p>
<pre><code class="language-bash">$ cd ~/Library/Containers/com.docker.docker/Data/vms/0/data
$ ls -klsh Docker.raw
1844848 -rw-r--r--@ 1 priyanshutiwari  staff   1.0T Oct 30 07:48 Docker.raw
</code></pre>
<p>Two sizes on one line. The <code>1.0T</code> near the end is what the file claims. The <code>1844848</code> at the start is what it actually uses, in kilobytes. That's about 1.8 GB.</p>
<p>So the scariest file on my Mac was innocent. This is what I learned chasing it, and where my space really went.</p>
<h2>The one idea: a file has two sizes</h2>
<p>Most of us think of a file's size as one number. It's really two:</p>
<ul>
<li><strong>Logical size:</strong> how long the file says it is.</li>
<li><strong>Physical size:</strong> how much of the disk it actually occupies.</li>
</ul>
<p>For nearly every file you own, those match, give or take. A <strong>sparse file</strong> is one where they don't. The file says "I'm 1 TB long", but the filesystem only stores the parts that have been written. The empty stretches aren't stored anywhere. They just read back as zeros.</p>
<p>Think of a 1,000-page notebook where only the 2 pages you wrote on physically exist. The page numbers still go up to 1,000.</p>
<p>macOS will show you both numbers for my Docker.raw if you ask it directly:</p>
<pre><code class="language-bash">$ mdls -name kMDItemFSSize -name kMDItemPhysicalSize Docker.raw
kMDItemFSSize       = 1099511627776
kMDItemPhysicalSize = 1889124352
</code></pre>
<p>That's 1,099,511,627,776 bytes claimed and 1,889,124,352 bytes used. Under 0.2% of what it says it is.</p>
<h2>Make your own fake 10 GB file</h2>
<p>I didn't fully believe this until I made one. It takes 10 seconds and costs you no space. Run it in a temp folder:</p>
<pre><code class="language-bash">cd "$(mktemp -d)"
dd if=/dev/zero of=sparse.img bs=1 count=0 seek=10g
ls -lh sparse.img   # says 10G
du -h sparse.img    # says 0B
</code></pre>
<p>On my Mac, <code>ls</code> said 10G and <code>du</code> said 0B. A 10 GB file on a disk with 5.9 GB free, using nothing.</p>
<p>Then I wrote 2 bytes into the middle of it, 5 GB in:</p>
<pre><code class="language-bash">printf hi | dd of=sparse.img bs=1 seek=5368709120 conv=notrunc
du -h sparse.img    # says 16K
</code></pre>
<p>16K. The filesystem stored one small block for those 2 bytes and still didn't bother with the other 10 GB. A plain <code>cp</code> on the same disk kept the copy sparse too, at 0B.</p>
<p>That's the whole trick. <code>ls</code> reports the claim. <code>du</code> reports the disk. When they disagree, believe <code>du</code>.</p>
<p>One limit on what I tested: all of this was on APFS, on one Mac. I didn't try zipping the file, uploading it or copying it to another drive, so don't assume it stays small on those trips.</p>
<h2>Why Docker does this on a Mac</h2>
<p>Containers need Linux, and a Mac isn't Linux. So Docker Desktop runs a Linux VM and, as its <a href="https://docs.docker.com/desktop/troubleshoot-and-support/faqs/macfaqs/">Mac FAQ</a> puts it, keeps your containers and images in one large disk image file instead of a folder like <code>/var/lib/docker</code>.</p>
<p>The VM wants to see a big disk. Your Mac doesn't want to give up that space on day one. Sparse storage solves both: the VM sees the full size, and the Mac only pays for what's been written.</p>
<p>The same FAQ warns about the exact thing that scared me. Many tools report the maximum size of that file, not the size it's really using.</p>
<p>So the 1 TB is a ceiling, not a bill. That also means it isn't a reservation. With a 1 TB ceiling on a 228 GB disk, nothing in that number stops Docker from filling my drive first. The ceiling tells you nothing about your free space. Only <code>du</code> does.</p>
<h2>When Docker really is the problem</h2>
<p>Sometimes the physical size is the big one. A real image-heavy setup can use tens of GB. Check the physical number first, then use these, in this order.</p>
<p><strong>1. See what's inside.</strong> With Docker running:</p>
<pre><code class="language-bash">docker system df
</code></pre>
<p>This breaks usage down into images, containers, volumes and build cache.</p>
<p><strong>2. Prune what's unused.</strong></p>
<pre><code class="language-bash">docker system prune
</code></pre>
<p>Docker's FAQ says this removes stopped containers, unused networks, dangling images and build cache, and that it can take a few minutes for the space to come back on the Mac. So don't panic if <code>du</code> doesn't drop right away. Read the confirmation prompt before you say yes, especially if a stopped container holds something you care about.</p>
<p><strong>3. Know what doesn't help.</strong> The FAQ says deleting files inside a running container doesn't free the space automatically. It lists a command to trigger that:</p>
<pre><code class="language-bash">docker run --privileged --pid=host docker/desktop-reclaim-space
</code></pre>
<p><strong>4. Treat the disk limit as a last resort.</strong> The setting lives under Settings &gt; Resources &gt; Advanced, called <strong>Disk usage limit</strong> on the current settings page. The FAQ, which calls it the disk image size, warns that reducing it deletes the current disk image, and all your containers and images go with it.</p>
<p>And two things not to do. Don't drag Docker.raw somewhere else in Finder, because the FAQ says Docker Desktop can lose track of it. Use the Browse option in settings. And don't delete it to "fix" a 1 TB reading, because you'd be wiping your local containers and images to recover whatever <code>du</code> says it was using. For me, that's 1.8 GB.</p>
<p>A note on what I ran: the <code>ls</code>, <code>mdls</code>, <code>dd</code> and <code>du</code> output above is from my Mac. I didn't run the prune commands for this piece, because with 1.8 GB in there I had nothing worth pruning. Those steps come from Docker's docs.</p>
<h2>Where my space actually was</h2>
<p>Once Docker was cleared, I had to find the real culprits. Measure the folders, not the file list:</p>
<pre><code class="language-bash">du -xh -d 1 ~ 2&gt;/dev/null | sort -h | tail -15
</code></pre>
<p>Because <code>du</code> counts physical size, a sparse file can't fool it. On my Mac the real weight was in two places: <code>codes</code> at 59 GB and <code>Group Containers</code> at 28 GB.</p>
<p>I'd spent my time staring at a 1 TB file using 1.8 GB. The actual problem was 87 GB sitting in two folders I never look at.</p>
<p>I got from 7.3 GB free to 17 GB, stopping before anything I couldn't get back. WhatsApp media, for one, is something to look through yourself, not bulk-delete.</p>
<p>And two days later, I was back down to 5.9 GB free. So the honest lesson isn't "I fixed it". It's that the number you stare at should be the right number.</p>
<h2>Quick answers</h2>
<p><strong>Why is Docker.raw so big on my Mac?</strong> It usually isn't. It's a sparse file, so tools like <code>ls</code> show the maximum size while the disk stores far less. Run <code>ls -klsh Docker.raw</code> or <code>du -h Docker.raw</code> to see the real number.</p>
<p><strong>Why does Docker.raw say 1 TB?</strong> 1 TB is the ceiling Docker set for its Linux VM's disk, not what it's using. The VM sees the full size, and your Mac only stores what has been written.</p>
<p><strong>Is Docker why my Mac's System Data is so big?</strong> It can be part of it. Before deleting anything, check the physical size of Docker.raw with <code>du</code>, then measure your home folder the same way. Mine turned out to be 1.8 GB, and the real weight was elsewhere.</p>
<p><strong>Where is Docker.raw on a Mac?</strong> Docker's FAQ uses <code>~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw</code> as its example, and mine is there too. Settings &gt; Resources &gt; Advanced shows the exact location for your install.</p>
<p><strong>Can I delete Docker.raw?</strong> You'll lose your local containers and images, so only do it if you're fine rebuilding them. Try <code>docker system df</code> and <code>docker system prune</code> first.</p>
<p><strong>Why doesn't my disk space come back straight after pruning?</strong> Docker's FAQ says it can take a few minutes for the Mac to get the space back.</p>
<p><strong>What's the difference between ls and du?</strong><code>ls -l</code> shows how long a file claims to be. <code>du</code> shows how much disk it occupies. They only disagree in a big way on sparse files, and that's when <code>du</code> is the one to trust.</p>
<p>I write about what I run into while building things, usually at 4 am and usually on a full disk. If that's your kind of problem, <a href="https://x.com/priyanshudotsol">follow me on X</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Selling Has No Error Message]]></title><description><![CDATA[I shipped the product with no degree. 10,000 visitors later, one paid. Code throws an error when it breaks. Selling tells you nothing at all.]]></description><link>https://priyanshudotsol.hashnode.dev/selling-has-no-error-message</link><guid isPermaLink="true">https://priyanshudotsol.hashnode.dev/selling-has-no-error-message</guid><category><![CDATA[indie-hacker]]></category><category><![CDATA[Startups]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[side project]]></category><category><![CDATA[Entrepreneurship]]></category><dc:creator><![CDATA[Priyanshu Tiwari]]></dc:creator><pubDate>Tue, 10 Nov 2026 08:35:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6af2c102860eb3f5ce736f23/9b9f7c24-13a2-4207-90af-eabf6ac2e9f4.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One paying user for every 10,000 visitors. That is a 0.01% conversion rate, and it is mine.</p>
<p>I never went to college. Everything I know, I learned by building things and breaking them — 84 public repos: Solana programs, a Polymarket bot, a memecoin betting app, and now AI products and Mac apps. That path teaches you one thing very well: how to make something exist.</p>
<p>It teaches you nothing about getting someone to pay for it.</p>
<h2>When something breaks, you get an error</h2>
<p>You read it, you fix it, and it works. Effort goes in and a result comes out, usually the same night.</p>
<p>Selling has no error message.</p>
<p>My product got visitors, and they looked around and left. No stack trace told me why. For someone who learned everything by debugging, that is a strange feeling.</p>
<h2>Why the traffic fooled me</h2>
<p>When I launched Actuity on X, the post did 8,100 views, 107 likes and 58 replies. For my account, that was huge. I felt like the hard part was over.</p>
<p>Views feel like progress because they arrive fast and they have a number on them. So does a commit graph. Both tell you that you were busy. Neither tells you that someone needed the thing enough to take out a card.</p>
<p>Then I looked at one week of my own numbers:</p>
<ul>
<li>A five-word post with a photo, "new toy in the house", got the most likes of the week: 108.</li>
<li>My post asking for help with distribution got 4,600+ views, far more than most posts about what I actually built.</li>
<li>My posts that tagged a real person had a median of 2,362 views. The rest had 433.</li>
</ul>
<p>People were happy to watch me. Watching costs nothing.</p>
<h2>Three things I confused</h2>
<p><strong>An audience is not a market.</strong> The people who follow me are mostly builders. They like seeing someone ship. Most of them are not looking for what I am selling that day. A like from another developer feels great, and it pays nothing.</p>
<p><strong>Reach is not intent.</strong> Someone scrolling X at midnight is not shopping. Someone who types their exact problem into Google is much closer to paying. I spent my energy on the first group because the feedback is instant.</p>
<p><strong>A launch is not distribution.</strong> A launch is one day. Distribution is whatever still brings people in on an ordinary Tuesday, three weeks later, when you have stopped talking about it.</p>
<p>I would have told you all three of these sounded obvious. I still got them wrong.</p>
<h2>What I am doing about it</h2>
<p>No guru steps here, because I do not have the result yet. These are the questions I am working through now:</p>
<ul>
<li><strong>Who paid, and where did they come from?</strong> Before I chase more traffic, I want to know what the few buyers have in common.</li>
<li><strong>Where do people who already have this problem go looking?</strong> That is search, communities and comparison pages, not my timeline.</li>
<li><strong>What would I say to one person?</strong> A post has to work for everyone. A conversation only has to work for one person, and you hear the objection directly.</li>
</ul>
<p>My next launch is Actuity v1.1. This time I want to judge it by what happens the week after, not by the view count on launch day.</p>
<h2>The part nobody puts on a roadmap</h2>
<p>I am 22 and I have said publicly that I think I found my way to $100k in six months. A 0.01% conversion rate is a useful thing to look at when you have said something like that out loud.</p>
<p>The good news is that this is a skill too. I learned Solana with no syllabus, and I learned Mac apps with no syllabus. I can learn why people buy the same way: try something, read what comes back, fix it, try again.</p>
<p>The only difference is that this time the error messages are silence, so I have to go and ask.</p>
<p>If you have got past this stage, I would really like to hear what changed for you.</p>
]]></content:encoded></item></channel></rss>