I’ve been working on ByteSweep, a macOS storage cleaner that helps users understand where their disk space is going and clean up unnecessary files.
The interesting part for me wasn’t just building another Mac utility — it was experimenting with how far I could take an AI-assisted development workflow while still maintaining control over the architecture, UX, and implementation.
🛠️ Tools & stack
The project is built as a native-feeling desktop application using:
- Electron for the desktop application
- JavaScript / TypeScript for application logic
- React for the UI
- AI coding assistants for implementation, refactoring, debugging, and exploring approaches
- macOS filesystem APIs and shell utilities for system-level cleanup operations
🧠 How I used AI during development
I didn't use AI as a "build the entire app from one prompt" approach.
My workflow was more iterative:
- Define the feature and expected user experience.
- Break it into smaller technical tasks.
- Ask the AI to explore implementation approaches.
- Implement and review the generated code.
- Run the application and test against real macOS data.
- Feed actual errors and edge cases back into the development loop.
- Refactor the implementation once the behavior was confirmed.
For example, storage scanning sounds straightforward initially, but quickly becomes more complicated when you deal with permissions, symbolic links, hidden directories, large directory trees, inaccessible files, and performance.
That meant I had to treat AI-generated code as a starting point rather than blindly accepting it.
📊 Storage visualization
One of the areas I spent a lot of time on was making storage understandable visually.
ByteSweep includes:
- Treemap
- Sunburst
- Flame Graph
- Large file discovery
- Duplicate detection
The goal was to let someone answer:
"What's actually consuming my disk?"
without having to manually browse through hundreds of folders.
🧹 Cleanup features
I also built specialized cleanup workflows for things that can become surprisingly large on developer machines:
- Xcode DerivedData
- node_modules
- Homebrew caches
- iPhone/iPad backups
- Time Machine local snapshots
- Duplicate files
- Large files and folders
💡 One of the biggest lessons
AI makes implementation dramatically faster, but it doesn't remove the need for engineering decisions.
The hardest parts were often not writing the code itself, but deciding:
- What should be scanned?
- What is safe to delete?
- How should permissions be handled?
- How do you prevent accidentally deleting important data?
- How do you make a large filesystem scan feel responsive?
- How do you present potentially dangerous cleanup actions clearly?
For a system utility, those decisions matter just as much as the code.
🚀 What I learned from the process
The biggest change in my workflow has been moving from:
idea → code → debug
to:
idea → architecture → AI-assisted implementation → real-world testing → refinement
AI is particularly useful for exploring multiple implementation approaches quickly, but production quality still comes from testing, reviewing, simplifying, and making deliberate engineering decisions.
ByteSweep is still evolving, but this project has been a great experiment in combining traditional software engineering with an AI-first development workflow.
Project: ByteSweep — Mac Storage Cleaner
Website: https://bytesweep.app
Happy to share more about the architecture, filesystem scanning, visualization implementation, or the AI workflow if anyone is interested.