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

mailmemories.com

83 points by ltiger 4 hours 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.

KomoD 3 hours 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 3 hours 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.

baron3dl 3 hours 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 3 hours ago

    The website is clearly AI-written (along with the text), and the screenshot also looks quite like the styles that LLMs love

  • abirch 3 hours ago

    My question is why not use IMAP?

    • ltiger 3 hours 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 an hour 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 18 minutes 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 3 hours 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.

nickjj an hour 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 33 minutes ago

    I have the same issue and found this worked great https://unattach.com/ (no affiliation, just a user)

    • nickjj 16 minutes 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.

t_mahmood an hour 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

artisinal 2 hours ago

> 100% local, no cloud, no subscriptions, no AI.

The world needs more of this

  • ltiger 2 hours 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.

Thaxll 3 hours 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 3 hours 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 3 hours 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.

ks2048 2 hours 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 16 minutes 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.

shuirong 3 hours 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?

murats 3 hours 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 2 hours 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.

tribal808 4 hours ago

idk if other tools do it for free, but cool idea, hope that it gains the deserved visibility

TazeTSchnitzel 2 hours 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 2 hours 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 an hour 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"?

      • ltiger 33 minutes ago

        [flagged]