CleanRushFun – From Bash One‑Off to macOS Game

Piotr ZientaraAugust 5, 2025

We took a 120‑line shell script that sorted my messy Desktop and turned it into a notarised, privacy‑first game on the Mac App Store. Here’s the short version of how—and why—it happened. Published 6 August 2025 – by Piotr Zientara, CEO @ Xfaang

Download: https://apps.apple.com/app/cleanrushfun/id6749022893 Source: https://github.com/Tuhaj/clean_rush_fun


1. It started at 2 a.m. One night I wrote a loop that asked one key per file: o = other, d = delete, s = skip. Friends tried it, we added a point counter, and suddenly Desktop‑cleaning felt like a speed‑run.

2. Why gamify? • Points beat will‑power. • 30‑second micro‑flow sessions feel good. • Xfaang’s motto: frustration → tool.

3. Porting to SwiftUI – highlights • Gave the app a Desktop‑only sandbox. • Used NSWorkspace.recycle instead of moving to ~/.Trash. • Stored sessions + scores in a single Core Data entity. • Icon: SVG → 1024 png → Xcode slices everything else.

4. Privacy by design No network calls. No analytics SDKs. One optional link to our site that opens in the user’s browser. That’s it.

5. Shipping – the reality 5 Jul First build → rejected for wide file‑system access. • 8 Jul Limited to ~/Desktop, resubmitted. • 25 Jul Stuck in human‑review queue. • 3 Aug Metadata fix (extra screenshot). • 5 Aug Approved. Total: ~1 month.

6. Next steps • AI‑suggested destination folders. • GPT‑powered shortcut hints. • Group similar images for one‑tap delete. • Menu‑bar mini‑game. • Optional iCloud sync. • Windows/Linux port with Tauri.

Bring Inbox‑Zero to your Desktop Aim for zero files every day. Use CleanRushFun’s Go Mode. Ready? https://cleanrush.fun

Tags:

    Marcin Hagmajer

    Piotr Zientara

    CEO at Xfaang, leader of the WarsawJS Community

    Let's chat about your project

    We respect your time. To avoid back-and-forth emails to schedule a call, pick a time and date for us to connect and decide on the best steps forward to start working together.