Hacker Newsnew | past | comments | ask | show | jobs | submit | ltiger's commentslogin

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


> 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!


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.


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.


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


This place can get a little snarky but congrats on shipping!


Thanks so much! Definitely a trial by fire, but I'm glad I put it out here. 'Preciate the kind words.


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.


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.


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.


> 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"?


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?


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

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)


> 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.


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.


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).


Thanks!


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.


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.


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.


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


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: