Earlier this month, I wrote about building Unboxed, a native macOS app to convert Google Vault MBOX exports into PDFs. The goal was simple: make email archives accessible to non-technical staff handling open records requests. The app worked, but it had a problem—it was slow. Really slow. Large MBOX files would chug along, eating up memory and often crashing the app entirely. I suspect the culprit was PDFKit, Apple's framework for generating PDFs, struggling to keep up with the workload.
Rather than keep fighting with this Swift and PDFKit, I rebuilt Unboxed as a web application. The difference was night and day, large conversions take place in minutes. Better yet, the web version solved problems I didn't even set out to fix: anyone can access it from any device, conversions happen on a server instead of tying up someone's laptop, and there's now a full file management system so users can view their history and re-download previous conversions without starting over.

Moving to the web meant I could add features that would've been painful in the native app—real-time progress updates, user authentication, flexible attachment handling, and persistent settings. The entire thing runs in a Docker container, so deployment is just docker-compose up -d.
If you're dealing with MBOX files that need to become PDFs, Unboxed Web is open source, and actually works as intended. I've also made updates to the Unboxed MacOS app to improve reliability, but haven't stress tested it with large MBOX files.