Product Release

Lsyncer: a small macOS fix for a very annoying iCloud problem

iCloud Drive does not know what to do with node_modules. Lsyncer keeps the useful sync, skips the junk, and stays out of your way.

Syntanea
Lsyncer: a small macOS fix for a very annoying iCloud problem

iCloud is fine until it meets node_modules

If you build Node.js projects on a Mac and keep work folders in iCloud Drive, you probably know the feeling. You save a file, open Finder, or run npm install, and the whole machine starts acting tired. Fans spin up. Finder beach-balls. iCloud decides that yes, every tiny file in node_modules deserves attention.

That folder can easily hold tens of thousands of files. iCloud Drive treats them like vacation photos or PDFs, so it tries to watch, index, and sync the lot. Technically understandable. Practically miserable.

iCloud freezing macOS with node_modules sync

The usual workarounds are awkward

Most developers end up doing one of these things:

  • Move projects out of iCloud Drive and lose the convenience of having them available elsewhere
  • Use symlinks and hope nothing breaks later
  • Keep deleting generated folders before sync gets angry
  • Accept that Finder will freeze whenever a dependency tree changes
  • I have used versions of these hacks. They work until they do not. The annoying part is that the idea is simple: sync the code, do not sync the disposable stuff.

    Lsyncer keeps the useful sync and skips the junk

    Lsyncer is a small macOS app built around that exact idea. It helps you keep development folders where you want them while excluding folders like node_modules, .next, dist, build, and .cache from the iCloud mess.

    Lsyncer app logo

    You do not have to rearrange your projects or remember another manual cleanup step. Set the rules once, then let Lsyncer keep the noisy generated files out of the way.

    Lsyncer smart sync interface

    What you can exclude

    Lsyncer lets you exclude folders by name, file type, or size. The common developer folders are the obvious ones, but the same idea works for caches, build output, logs, test artifacts, and anything else that should not be synced across devices.

    A few examples:

  • Exclude every node_modules folder across your projects
  • Skip .next, dist, build, and .cache
  • Ignore very large files that do not belong in iCloud
  • Use rules globally or tune them per project
  • Scheduled sync when you actually want it

    Sometimes you do want a folder synced, just not while you are trying to work. Lsyncer can schedule heavier sync jobs for quieter hours, so your Mac is not fighting iCloud while you are coding.

    A one-time Mac app, not another subscription

    Lsyncer is available on the Mac App Store as a one-time purchase. No monthly plan, no account system, no dashboard to babysit.

    Why we made it

    We ran into this problem ourselves while working across macOS machines with Node.js and Python projects. iCloud was useful for the things that mattered, but awful at ignoring generated files. We wanted a native Mac utility that solved that one problem cleanly and then stayed quiet.

    That is what Lsyncer is: a focused fix for developers who like iCloud Drive but hate what it does to dependency folders.

    If your Mac has ever frozen because iCloud got obsessed with node_modules, take a look at the Lsyncer homepage or get it directly from the App Store.