← back to blog
5 min read

Why I Built Tidey: A Mac Desktop Cleaner

The story behind Tidey, a minimal macOS app that automatically organizes your messy desktop into tidy folders.

macOSSwiftProductivity

My desktop was a disaster. Screenshots, downloads, random files - all scattered across the screen. I tried existing solutions but they were either too complex or too expensive for such a simple task.

The Idea

I wanted something that just works:

  • One click to organize
  • Smart categorization (images, documents, code, etc.)
  • No configuration needed
  • Lives in the menu bar

Building with Swift

This was my first serious macOS app. SwiftUI made the UI straightforward, but I learned a lot about:

File System Permissions

macOS sandboxing is strict. Getting the right entitlements for desktop access took some trial and error.

Menu Bar Apps

Creating a menu bar app is different from a regular window app. You need to handle the NSStatusItem and popover properly.

let statusItem = NSStatusBar.system.statusItem(
  withLength: NSStatusItem.squareLength
)

if let button = statusItem.button { button.image = NSImage(named: "MenuBarIcon") button.action = #selector(togglePopover) }

File Categorization

I use UTI (Uniform Type Identifiers) to categorize files:

func categorize(_ url: URL) -> Category {
  guard let uti = UTType(filenameExtension: url.pathExtension) else {
    return .other
  }

if uti.conforms(to: .image) { return .images } if uti.conforms(to: .pdf) || uti.conforms(to: .text) { return .documents } if uti.conforms(to: .sourceCode) { return .code } // ... }

Launch and Reception

I launched on Product Hunt and got a modest response. The best feedback came from users who said it solved exactly the problem they had.

What's Next

I'm working on:

  • Scheduled auto-cleaning
  • Custom rules
  • iCloud sync for preferences
Sometimes the best apps are the simplest ones.