Why I Built SyncWatcher
Last year, I got laid off. Burned out, tired of the politics, and suddenly free. I spent six months interviewing, but the market has shifted. Maybe my salary expectations were stuck in the ZIRP era, or maybe I didn’t fit the “100% culture match” box perfectly.
Eventually, I realized I was done trying to prove my worth to HR departments. It was time to prove my worth to users.
I know B2C is hard mode. But if I’m going to survive in the wild, I need to ship. SyncWatcher is my warm-up lap—a way to shake off the rust (pun intended) and build something real.
Subscription Fatigue is Real
I enjoy photography, but the workflow is a pain.
- Plug in SD Card.
- Manually drag files.
- Wait.
- Eject.
The alternatives? Lightroom or Apple Photos. Both force you into their ecosystem, and Apple Photos pushes you toward paid iCloud storage. I’m already drowning in monthly subscriptions. I wanted out.
So I built SyncWatcher. It solves a specific pain point I have every time I pick up my camera.
The Strategy: Open Source & Sustainable
I’ve used free software my entire career. I want to give back, but I also need to eat. I’m experimenting with a Dual License model:
- AGPL-3.0: For the hackers, the students, and personal users. Free forever.
- Commercial License: For those who use it for business or want to support the development.
It’s similar to the WinRAR or Fork model—respect the user, and hope they respect the work.
Features: Zero Friction
- Auto-Backup: Detects SD card insertion and starts copying immediately.
- Redundancy: Mirrors data to multiple local destinations simultaneously.
- Set & Forget: Auto-ejects the card when the job is done.
The Stack: Rust + Tauri
I chose Tauri because I wanted the performance of a native app with the flexibility of a web UI.
- Rust: For low-level system control and safety.
- React: For the UI.
I’ll be honest—I couldn’t have moved this fast without AI tools. Even then, Rust is a harsh mistress. And trying to replicate that premium “Apple Native” feel with web technologies is… challenging. It’s not pixel-perfect native yet, but it’s fast and it works.
The Indie Hacker Dilemma
This is Step 1. SyncWatcher isn’t designed to be a unicorn; it’s designed to provide value and help me learn the ropes of shipping a polished macOS utility.
Current Status:
- Aiming for a stable v1.0 release by the end of January.
- Still polishing the edge cases.
I’m building this in public. If you’re interested in Rust, macOS tooling, or the indie hacker journey, follow along.
Note: I’m a solo developer based in Korea. To share my journey with a wider audience, I used AI to help translate my thoughts into English. If any phrasing feels a bit “too AI” or unnatural, please bear with me—I’m spending most of my energy on the code!