Show HN: Mail Memories – A desktop app to rescue photos from Gmail
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.
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.
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.
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?
[1] https://github.com/mrtazz/maeI'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.
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.
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.
Deselect everything, select "Mail", create export, wait until it's done, and then download the zip.
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.
Also is it not doable with Google takeout ( with Gmail )?
> 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.
You can get a cert for $130-300/yr, and then you can use signtool to sign it.
The world needs more of this
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.
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.
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.
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"?
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?
I downloaded the installer, opened it with 7zip, and extracted the app.asar file from resources/app.asar. All Electron apps have this, it's where the app code really lives.
Then I used asar to extract it. That gives you a few folders, including dist, which contains 5 .jsc files. Nearly everything related to fetching is in a file called engine.jsc. The jsc files are bytecode instead of raw JS because he didn't want anyone to reverse it, but with a little work you can figure it out (or you can just dump the strings and see that imapflow is in there)
Didn't need to run it at all.
> However, from what you said here, it's a bit less sophisticated than that?
Indeed. And re the image fingerprinting, it just checks the file names of "message parts", not content-type or content-disposition (even though imapflow exposes those)
Thank You for the explanation. This sheds some light on why the OP kept saying this tool works only on GMail while also saying this is IMAP based. An IMAP solution should be mostly provider agnostic but because of all of this GMail filter business, it's not.
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.
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.
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.
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.
Yes, that was covered in the other thread. Presenting a backup as evidence has a lot less strength than the original.
If the other person doesn't have the email (they deleted it) and you don't have the original because Unattach deleted it to replace it with a different copy then we're only left with an offline backup on 1 person's machine. Who's to say that offline backup wasn't tampered with (modifying headers, etc.)?
You're trying to establish a chain of custody here. The only person who remotely cares about the forensic integrity of the message is the judge (and the jury if it's a jury trial) and it seems like an argument you would like to make is "this email came from Google's servers so we didn't tamper with it" - but the judge won't take your word for it, you will need Google to substantiate that and they won't unless it's a workspace account.
If it's a workspace account, then your org already has a retention policy.
So again, what problem are you trying to solve and in which jurisdiction?
I think the issue with localizing it to a specific state is oftentimes contracts or working agreements have jurisdiction locations that align with the company. In other words, it might not be in NY. It could be anywhere, including different countries.
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
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!
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.
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
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?