frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Claude, please stop trying to memorize random crap

https://12gramsofcarbon.com/p/agentics-memorizing-session-transcripts
140•theahura•3h ago•101 comments

Half-Baked Product

https://weli.dev/blog/half-baked-product/
1040•weli•10h ago•306 comments

The Life and Times of Maxis, Part 1: SimEverything

https://www.filfre.net/2026/07/the-life-and-times-of-maxis-part-1-simeverything/
61•doppp•2h ago•1 comments

AI saves about 3% of your hours, and almost none of it reaches the money

https://okaneland.com/study/ai-productivity-roi-at-work/
29•ermantrout•1h ago•12 comments

Jamesob's guide to running SOTA LLMs locally

https://github.com/jamesob/local-llm
94•livestyle•3h ago•36 comments

International chess federation sanctions Kramnik

https://www.fide.com/fide-ethics-disciplinary-commission-issues-a-decision-in-case-involving-gm-v...
39•DarkContinent•1h ago•18 comments

Factories Are Just Rooms

https://interconnected.org/home/2026/07/03/factories
73•arbesman•3h ago•27 comments

Hunting a 16-year-old SQLite WAL bug with TLA+

https://ubuntu.com/blog/hunting-a-16-year-old-sqlite-bug-with-tla-is-dqlite-affected
80•peterparker204•3d ago•2 comments

PostgreSQL and the OOM Killer: Why We Use Strict Memory Overcommit

https://www.ubicloud.com/blog/postgresql-and-the-oom-killer-why-we-use-strict-memory-overcommit
108•furkansahin•5h ago•36 comments

My Dad Helped Build North America's Oat Supply Chain: Can It Be Remade?

https://ambrook.com/offrange/perspective/how-we-lost-our-oats
46•surprisetalk•3d ago•7 comments

Valve open source the Steam Machine e-ink screen so you can make your own

https://www.gamingonlinux.com/2026/07/valve-open-source-the-steam-machine-e-ink-screen-so-you-can...
375•ahlCVA•5h ago•65 comments

The Fall and Rise of Screwworm

https://www.construction-physics.com/p/the-fall-and-rise-of-screwworm
83•crescit_eundo•5h ago•30 comments

Wordgard: The new in-browser rich-text editor from the creator of ProseMirror

https://wordgard.net/
178•indy•9h ago•74 comments

Best Simple System for Now

https://dannorth.net/blog/best-simple-system-for-now/
42•daan-k•3h ago•10 comments

Show HN: ctx – Search the coding agent history already on your machine

https://github.com/ctxrs/ctx
40•luca-ctx•1d ago•17 comments

Right to Local Intelligence

https://righttointelligence.org/
450•thoughtpeddler•18h ago•158 comments

America, 1926: What a Forgotten 100-Year-Old Report Says About Who We Are

https://www.derekthompson.org/p/america-1926-an-absurdly-deep-dive
86•momentmaker•3h ago•90 comments

Supersonic flight returning to US after half-century ban

https://www.forbes.com/sites/suzannerowankelleher/2026/06/30/faa-supersonic-flight-no-boom/
106•lobbly•2d ago•119 comments

CarPlay Is Additive

https://www.caseyliss.com/2026/7/2/carplay-is-additive-you-dolts
513•sprawl_•17h ago•653 comments

60% Fable cost cut by converting code to images and having the model OCR it

https://github.com/teamchong/pxpipe
61•dimitropoulos•2h ago•22 comments

US residents angry datacenters 'shoved down our throats' are recalling officials

https://www.theguardian.com/us-news/2026/jul/03/datacenter-recall-elections
68•beardyw•2h ago•41 comments

Show HN: Mcpsnoop – Wireshark for MCP (transparent proxy and live TUI)

https://github.com/kerlenton/mcpsnoop
5•kerlenton•1h ago•2 comments

Anatomy of Persistent Memory's 3 Layers: Comparing ContextNest, Mem0 and Zep

https://promptowl.ai/resources/persistent-memory-ai-agents/
18•sparkystacey•4h ago•0 comments

I Wasn't Allowed Prompting ChatGPT During My Chalk Talk: This Is Discrimination

https://inpreparation.substack.com/p/opinion-i-was-not-allowed-to-type
17•theanonymousone•46m ago•10 comments

The Safari MCP server for web developers

https://webkit.org/blog/18136/introducing-the-safari-mcp-server-for-web-developers/
224•coloneltcb•16h ago•63 comments

How working with a blind client revealed invisible accessibility gaps

https://iinteractive.com/resources/blog/read-only
76•fortyseven•3d ago•60 comments

Program-as-Weights: A Programming Paradigm for Fuzzy Functions

https://arxiv.org/abs/2607.02512
32•simonpure•5h ago•4 comments

crustc: entirety of `rustc`, translated to C

https://github.com/FractalFir/crustc
364•Philpax•19h ago•81 comments

Commodore 64 Basic for PostgreSQL

https://thombrown.blogspot.com/2026/07/load-plcbmbasic81-commodore-64-basic.html
54•hans_castorp•9h ago•8 comments

Reality has a surprising amount of detail (2017)

https://johnsalvatier.org/blog/2017/reality-has-a-surprising-amount-of-detail
351•vinhnx•5d ago•134 comments
Open in hackernews

Show HN: Mail Memories – A desktop app to rescue photos from Gmail

https://mailmemories.com
101•ltiger•1d ago
Hey HN, I’m the creator of Mail Memories. Like many of you, I've had my Gmail address for more than 20 years. A few years ago, I got curious and wanted to see what photos were buried deep in my account. I ended up finding lots of "lost" pictures of old friends, family members, and a ridiculous number of vintage memes.

I originally built and launched this as a SaaS, but even with code and policies in place that kept users' photos private, I figured everyone would feel more comfortable with a desktop app.

So, I threw out the server architecture and completely rewrote it as a 100% local desktop app for Mac and Windows.

How it works now: The app connects directly to Google's server from your computer, processes everything entirely on your system, and saves photos straight to your hard drive.

You can download your 50 oldest photos for free (no credit card required) just to see what's in there. If you want to download all the pictures in your account, it's a one-time payment of $29. No subscriptions.

If you have an old, pre-2010 Gmail account, definitely give it a spin. You'll be surprised at what you find deep in your archive.

I'd love to hear your feedback on the layout, scanning performance, or anything else.

TL;DR: I turned my SaaS into a local desktop app (Mac/Windows) that recovers decades of forgotten photos from your Gmail. 100% local, no cloud, no subscriptions, no AI.

Comments

tribal808•1d ago
idk if other tools do it for free, but cool idea, hope that it gains the deserved visibility
baron3dl•1d ago
First, I really love this idea, and I thank you for getting it into my head.

That said, if no AI is really important, I guess it's worth $29, though I can't tell if you used AI to build it or not from here.

Like, I just one-shot a script that does the same with Claude, after it listed 5 free projects that do the same, including one GUI. The whole thing took less time than writing this comment.

Now, if it were $2.99, I probably would have just paid you.

Tiberium•1d ago
The website is clearly AI-written (along with the text), and the screenshot also looks quite like the styles that LLMs love
ltiger•23h ago
You're half right. The HTML and CSS are from a standard template that I imagine exists in just about every LLM's dataset, since they've scraped an internet's worth of them. I wrote (and rewrote and rewrote...) and edited every single word on the page, though.
abirch•1d ago
My question is why not use IMAP?
subhobroto•1d ago
That's what they used to do: https://news.ycombinator.com/item?id=48708270

The OP had posted a detailed reply here as well, that they since deleted - I think because they didn't want to deal with all the pushback here.

ltiger•1d ago
No, I'm not afraid of pushback at all. I'm actually really glad I used IMAP.

Building on top of it let me solve a few major protocol headaches directly in the client:

The app filters out signature junk (like tiny social media and logo icons), pulls down just the raw attachments instead of downloading entire 20-year-old message threads, and handles thousands of images while gracefully managing Google's rate limits (to avoid connection drops).

KomoD•1d ago
Or you can just use Google Takeout: https://takeout.google.com

Deselect everything, select "Mail", create export, wait until it's done, and then download the zip.

ltiger•1d ago
Takeout is great for a total archive backup, but using it just to extract photos is where the UX breaks down for most people.

When you export Mail with Takeout, Google dumps your entire history into a huge .mbox file. If you have a 20-year-old account, you're downloading tens of gigabytes of raw text data, headers, and metadata just to get to the images. Once you have that huge file, you still have to figure out a way to extract and decode the image attachments from the raw email text.

Mail Memories just gives you what you want: the photos.

nuclearsugar•1d ago
This script will extract all of the attachments from a MBOX file - https://gist.github.com/georgy7/3a80bce2cd8bf2f9985c
threecheese•1d ago
I think the target market isn’t doing this; heck, I’d normally be like you, but the price is low enough here to “one and done and forget it” here.
skzo•23h ago
Thank you Claude
Thaxll•1d ago
For $30 you should sign your binary so you don't have a UAC popup.

Also is it not doable with Google takeout ( with Gmail )?

subhobroto•1d ago
I have not used Windows for decades. With that context:

> For $30 you should sign your binary so you don't have a UAC popup.

How much does it cost to be able to sign a binary so you can deploy it on Windows without a UAC popup? How arduous is it?

> Also is it not doable with Google takeout ( with Gmail )?

It sure is. You do a takeout and iterate over the compressed mbox looking for media attachments. Then you write them out. The edge cases, and the actual value is ensuring you properly grab all the media dispositions.

I also have emails from people who like to zip up a bunch of pictures and then email them to me - my own script takes care of this detail but I wonder if most other tools, including this one does.

KomoD•1d ago
> How much does it cost to be able to sign a binary so you can deploy it on Windows without a UAC popup?

You can get a cert for $130-300/yr, and then you can use signtool to sign it.

murats•1d ago
I like the idea. Google Takeout works, but a focused app that helps you actually find and recover old photos could still be useful.
ltiger•1d ago
Thanks!

Yes, use Google Takeout if you want a full account archive. It's a pain if you just want to get your photos, though.

You have to deal with huge .mbox files, download gigabytes of unnecessary text, and sometimes you have to wait days for the export.

The short version is that Mail Memories lets you get the images you want instead of an all-or-nothing data dump.

shuirong•1d ago
I like your idea. While installing the app, I suddenly had an idea for the logo: what do you think about using a tilted old photo of a child as the app icon?
ltiger•1d ago
Thanks!
artisinal•1d ago
> 100% local, no cloud, no subscriptions, no AI.

The world needs more of this

ltiger•1d ago
Thanks, that means a lot.

I rebuilt the app because I was feeling that same fatigue. It felt like every cool new tool I looked at wanted to upload personal data to a remote server, hook it up to a third-party AI API, or charge a recurring fee.

The original version of the app actually was a cloud-based SaaS. But I figured people would feel significantly more comfortable having a sensitive tool like this run entirely on their own hardware instead of in the cloud like everything else. Making it local-first also makes it easier for people to download and try it out.

TazeTSchnitzel•1d ago
If I have to look at yet another website with this same fucking AI-generated theme I'm gonna have to kill somebody.
ltiger•1d ago
Nah, don't do that.

Totally fair, though. In my defense, 98% of my time went into wrestling with IMAP parsing architectures, optimizing memory, and code-signing certificates instead of designing custom CSS layouts from scratch. I'll finesse the design in the future.

KomoD•1d ago
> 98% of my time went into wrestling with IMAP parsing architectures, optimizing memory, and code-signing certificates instead of designing custom CSS layouts from scratch

You're just using imapflow and their Gmail search method. Why are you making things up? https://imapflow.com/docs/guides/fetching-messages#gmail-spe...

You call that function with this query over and over again:

filename:(jpg OR jpeg OR png OR gif OR webp OR heic OR tif) after:${year}/01/01 before:${year + 1}/01/01

And then you call their download method: https://imapflow.com/docs/guides/fetching-messages#downloadi...

All you did was throw together a frontend, package it into Electron, paywall it, and try to obfuscate the code.

What part of that is "wrestling IMAP parsing architectures"?

subhobroto•2h ago
The details are interesting! How did you find all of this out? Did you download the tool in a VM and disasm it?

I assumed the OP was literally making throttled, batched, parallel IMAP FETCH calls with the BODYSTRUCTURE parameter to the mailbox, inspecting the `Content-Type` and/or `Content-Disposition` for image fingerprints and then grabbing the real payload.

However, from what you said here, it's a bit less sophisticated than that?

ks2048•1d ago
“I found photos of my niece I thought were lost forever. Thank you so much!” Emily D.

Be honest, is "Emily D" a real person you got organic feedback from? Small thing that makes the vibed site off-putting.

It says "Storage: 1.3 GB saved", but then says it is Read-only.

ltiger•1d ago
Just pushed an update to the site around this. Changing the text to "Downloaded" still might confuse someone, so I removed that line from the illustration altogether.
t_mahmood•1d ago
Interesting! I already have a Python script that can download anything from Gmail. Making it a product?! Really have not thought about it! Which is why I am probably broke Ha Ha
nickjj•1d ago
I'd love to somehow do the opposite of this but I don't think it's possible? It would be deleting attachments from emails without deleting the email thread.

For example I'm always 1-2 GB away from my Google account being full. I've pruned Google Drive to the absolute bare minimum.

I've had my Google account for a really long time. There's tens of thousands of emails since day 1. However, there's many emails that have attachments.

For example my friends or someone might have sent me a bunch of images and there's a very long email thread going on with them. I want to delete the 300 MB of photos without deleting the email thread. I don't think Google has a way to do this. I'd easily be able to free up multiple gigs of space if this were possible.

I've already bit the bullet and deleted the biggest offenders but I have a ton of emails with 1-2 attachments (pdfs, zip files, some images, etc.) that might "only" be 15 MB but I definitely don't want to delete the email since it has a record of something. Not just the attachment but the corresponding email chain.

zazerr•1d ago
I have the same issue and found this worked great https://unattach.com/ (no affiliation, just a user)
nickjj•1d ago
Oh nice, if everything they say is true, this seems like a good match but it seems like it has 1 big potential downside.

THE GOOD:

Their FAQ says it uses OAuth to connect to your Google account and the emails never leave your browser.

It also costs 83 cents for 1 month so you can go nuts. Alternatively you can pay 1 cent per email if you have a handful.

I see another HN thread about it here from a few years ago: https://news.ycombinator.com/item?id=32462878

THE BAD:

I don't know if it can be used with total confidence because that HN thread makes it sound like they delete the original email and create a new email with the same meta data but some of the comments indicate that's not quite the same as the original. If you had to present this email as evidence, you could run into friction since the original no longer exists. Technically it looks like you can back the original up but as someone mentioned in a comment that seems like it would add a lot of friction in a legal case.

I have no intent on ever needing to use old emails with large attachments in a legal case but knowing this could be a problem makes me hesitant. Although on the bright side, it would be fine to use for anything you 100% know won't ever be used legally.

benzofuran•1d ago
Here's a gmail extractor google apps script that does the same thing, but for not $30!

function autoExtractGmailMedia() { const START_TIME = Date.now(); const TIME_LIMIT = 1000 * 60 * 5; // 5 minutes (leaves a 1-minute safety buffer) const BATCH_SIZE = 50; const FOLDER_NAME = "Gmail_Media_Export";

  // 1. Retrieve our current position from the script's property store
  const scriptProperties = PropertiesService.getScriptProperties();
  let startIndex = parseInt(scriptProperties.getProperty('START_INDEX')) || 0;

  // Locate or create the destination folder
  let folder;
  const folders = DriveApp.getFoldersByName(FOLDER_NAME);
  if (folders.hasNext()) {
    folder = folders.next();
  } else {
    folder = DriveApp.createFolder(FOLDER_NAME);
  }

  // 2. Process batches in a loop
  // Updated search query to ignore USPS and non-primary tabs
  const searchQuery = 'has:attachment -from:usps.gov -category:promotions -category:updates -category:social (filename:jpg OR filename:jpeg OR filename:png OR filename:zip)';
  
  while (true) {
    const threads = GmailApp.search(searchQuery, startIndex, BATCH_SIZE);
    
    // If the search returns empty, we've hit the end of the inbox
    if (threads.length === 0) {
      console.log("Extraction completely finished.");
      scriptProperties.deleteProperty('START_INDEX');
      deleteTriggers(); // Clean up so it doesn't keep running
      return;
    }

    for (let i = 0; i < threads.length; i++) {
      const messages = threads[i].getMessages();
      for (let j = 0; j < messages.length; j++) {
        const attachments = messages[j].getAttachments();
        for (let k = 0; k < attachments.length; k++) {
          const attachment = attachments[k];
          const name = attachment.getName().toLowerCase();
          const type = attachment.getContentType();
          const size = attachment.getSize();
          
          // Apply size threshold (102,400 bytes = 100KB) and file type filter
          if (size > 102400) {
            if (type.includes('image/') || name.endsWith('.zip')) {
              folder.createFile(attachment);
            }
          }
        }
      }
    }

    // Increment our starting index for the next batch
    startIndex += BATCH_SIZE;

    // 3. The Stopwatch Check
    if (Date.now() - START_TIME > TIME_LIMIT) {
      console.log(`Approaching timeout at index ${startIndex}. Saving state and passing the baton...`);
      scriptProperties.setProperty('START_INDEX', startIndex.toString());
      scheduleNextRun();
      return; // Exit to avoid the hard timeout exception
    }
  }
}

function scheduleNextRun() { deleteTriggers(); // Prevent duplicate overlapping triggers ScriptApp.newTrigger("autoExtractGmailMedia") .timeBased() .after(60 * 1000) // Fire a new execution 1 minute from now .create(); }

function deleteTriggers() { const triggers = ScriptApp.getProjectTriggers(); for (let i = 0; i < triggers.length; i++) { if (triggers[i].getHandlerFunction() === "autoExtractGmailMedia") { ScriptApp.deleteTrigger(triggers[i]); } } }

ksajadi•23h ago
Meta: Can someone more familiar with the rules of HN please tell me why some Show HN posts get immediately “flagged” while others don’t? I have seen commercial entires like this be flagged while this one is on the first page.
ltiger•22h ago
Just wanted to take a moment to say thank you to everyone who commented today. Launching on HN isn't for the faint of heart, but it’s been really valuable.

What a day. I was told my landing page looks like an AI wrote it, got roasted for a confusing illustration metric (and rightly so), and received the ultimate rite of passage: being told my app could be replaced by a couple of Linux CLI commands.

Unironically, thanks everyone. Because of your feedback, the site copy's a little tighter, and the Windows installer no longer throws a scary UAC prompt. I couldn't have asked for a better (or more intense) test.

jborichevskiy•20h ago
This place can get a little snarky but congrats on shipping!
ltiger•20h ago
Thanks so much! Definitely a trial by fire, but I'm glad I put it out here. 'Preciate the kind words.
subhobroto•1h ago
I was monitoring this thread because of the comments. Unsure how I came across this post to begin with! (was it on the FP?)

You really handled all the feedback well and if you wouldn't mind answering (email works too), I had some followups:

1. Did you get a boost in sales from this post?

2. What's your typical customer like and do they email you questions/support?

3. If you had provided this as a hosted service and continued to use IMAP, would you have had to ask for the user's GMail password?

4. I see you had toyed with the idea of $5/yr - why did you withdraw it and go $30 flat rate?

5. Any idea how many customers you're leaving on the table with the $30 flat rate that would have converted at a lower price?

6. Did HN throttle your ability to respond to comments ("slow down...") during this episode?

I learned a lot from your thread - Thank You for keeping up with it

adamtheturtle•20h ago
Whether or not I could have got this stuff out without the app, I wasn't going to, and I already have $29 worth of nostalgia out of it. Thank you
subhobroto•2h ago
Watching this thread unfold over 24h was illuminating.

The biggest pushback seemed to be the price: people are upset it's priced at $30. Some suggested $3. A few suggested open sourcing it under MIT and moving on.

The primary argument was that there are already existing, free tools that can be chained together to do exactly what Mail Memories does. The secondary argument was that LLMs can already code this up, implying the OP was rentseeking.

IMHO, this comment (now dead) from the OP was on point and ironic:

> My target audience isn't engineers who know how to parse maildirs, it's everyday people (and busy devs) who just want a secure, 1-click interface that downloads their family photos into a folder on their computer (without touching a terminal).

This is entirely true - this thread is strong indication that this tool wasn't appreciated by the HN crowd (lots of engineers and technical people)! I noticed most of OP's comment went gray and then dead in a matter of minutes. The OP must have had a real hard time even responding to comments before HN throttled them from responding, asking them to "slow down".

But this raises a question - what if I one-shot something that my non-technical parents and family members would find incredibly valuable and so I'm hoping yours does as well? If an LLM could absolutely one shot it, perfectly, should I never post it on HN at all, in fear of the wrath that would be unleashed?

Anyone here can slap together a breakfast sandwich for ~$3 in ingredients. Is it blasphemy that you can't buy the same from a McDonald's or your neighborhood Deli for less than $15?

ltiger•1d ago
It actually does use IMAP! The app connects directly to Google's IMAP servers via SSL straight from your machine.

I intentionally chose a local IMAP pipeline over the official Gmail API because of platform gatekeeping. To use the API for this, Google forces independent developers into a "Restricted Scope" tier, which requires an annual $15,000+ third-party security assessment.

Going the local IMAP route lets me bypass that completely while keeping user data 100% local and secure.

kbelder•1d ago
I don't like how somebody is flagging/downvoting all your comments. This is about your product; it's highly relevant, whatever somebody might think about it.
mmh0000•1d ago
I don't think it's just "somebody"; I think it's a lot of bodies. I'm downvoting him too because he vibe-coded a super simple "app", then is trying to sell it here as some life-saving tool .

My main complaints:

- Why is this $30?

- Why is it Windows/Mac only?

- Why is it Gmail only when it's using IMAP?

But what really irks me is that you know you can do this exact thing with like two Linux CLI commands?

  ``` 
  $ offlineimap -c <configfile with credentials>
  $ mae export --maildir=test/fixtures/simple --output-dir=test/tmp_output
  ```


[1] https://github.com/mrtazz/mae
subhobroto•1d ago
> Like, I just one-shot a script that does the same with Claude, after it listed 5 free projects that do the same, including one GUI. The whole thing took less time than writing this comment.

I'm assuming the author put in the effort to validate their program handles all kinds of pictures. With that assumption:

- how did *you* validate the one-shot script that Claude handed you works correctly?

- after all said and done, and getting it to work correctly, did you end up spending atleast $30 in time, effort and money?

I am curious how coding agents would affect the future of "micro apps" - apps/scripts that do one thing and just one thing very well.

boca_honey•1d ago
The website is clearly vibecoded, and that makes me assume the app is also vibecoded. When I open the installer, Edge gives me a warning that the file is not safe. I know that just means the dev hasn't purchased a certificate, but it adds to the general feeling that this is a rushed project that asks 30 dollars for something that I can make with Gemini in about the time it took to write this comment.

I'm pretty sure the dev has good intentions, the app is safe, and it works... but I'm not going to find out because it's too much money and too risky.

It is a good idea, though. I'll check the comments for free, open-source alternatives, but if I don't find one, I'll probably just generate a script that does this when I get back home.

baron3dl•23h ago
It worked fist shot, and found 3k+ photos, which feels about right. Validated with Vibes. It's going to take more than $30 in time to look at them all, and it's 3k+ more photos than I had before. So, I'm satisfied.

For apps without a network-effect, or highly specialized domains, coding agents are driving a convergence of the cost of software toward the cost of tokens to generate it. OP should have MIT licensed this, collected his 15m, and moved on to the next idea.

ltiger•1d ago
Thanks for the feedback! You're right, if you know how to write a script or prompt Claude, you can absolutely spin up a quick tool to scrape attachments in a few minutes.

That said, the $29 price point is for the execution and friction-removal. Turning a raw script into a compiled, code-signed desktop app that handles OS security gates (Mac Dev ID and Windows Smartscreen), dynamically manages Google rate limits, and a provides a beautiful UI for non-technical users takes a lot of effort.

For people who want to rescue their photos without opening a terminal - or who don't even know what a terminal is - this app is a huge win for them.

ltiger•21h ago
Nah, but thanks. I actually spent a lot of time checking out Takeout, shell scripts, and existing options before writing a single line of code for the app.

Non-technical users don't want to deal with mbox files no matter how many scripts someone recommends. And shell shells scripts...

I made this to bridge the gap. I wanted a utility that handles the protocol mess locally, avoids downloading gigabytes of metadata, skips the cloud, and just gives you your own photos back.

strnisa•7h ago
Founder of Unattach here.

Just to clarify: Unattach does not corrupt or mangle emails. Because Gmail does not expose an API for modifying the original email in place, Unattach creates a new version of the email with attachments removed/downsized while preserving the email's content and metadata.

If you need the original email for legal/evidence purposes, you can back it up first, either through Gmail or Unattach.

Grombobulous•22h ago
I will tell you who this is for: my parents who “back up” their photos by emailing them to themselves, and finally get convinced to use a real cloud photo solution.
ltiger•21h ago
Clever. But Gmail and Google Drive share the exact same 15 gb storage quota. If a user has 10 gigs of photos in their Gmail and runs this script, it'll create another 10 gb of files in their Drive.

Instead of saving space, this script doubles their storage usage to 20 gb, breaking through the 15 gb free tier and forcing them to buy a Google One subscription.

That’s one of the reasons this desktop app exists, it streams the files straight to your hard drive so you can avoid this

KomoD•20h ago
> breaking through the 15 gb free tier and forcing them to buy a Google One subscription

Which is like... $2 for 100GB and you can cancel immediately after, or if you get the same offer I got: $0.50.

$27 in savings and 100GB of storage, sounds like a good deal to me!

benzofuran•19h ago
I'm stuck enough in the gecosystem that the storage is of small worry there but good point. It's a cute idea for the main topic - I saw some pictures I'd forgotten about for 20 years so that was fun.