macOS App Development

TidyImage

TidyImage is a native macOS application GrandWorks built to solve our own image workflow problem, then turned into a commercial product. We built the full stack: the Mac app, a Stripe-based licensing system, user accounts, team seat management, and an admin panel to run it all.

Client

GrandWorks

Industry

Productivity Tools

Solution

MacOS App, Licensing Platform, Backend

A Tool We Needed, So We Built It

Every GrandWorks project ends at the same step: compress the images. For years we patched this together with whatever was available. Most tools handled one format. Some uploaded files to servers we didn't control. None had any concept of a team licence. TidyImage started as an internal tool. It became a product we sell.

Every GrandWorks project ends at the same step: compress the images. For years we patched this together with whatever was available. Most tools handled one format. Some uploaded files to servers we didn't control. None had any concept of a team licence.

TidyImage started as an internal tool. It became a product we sell.

Compress, Resize, Crop, Rename. Handle Your Entire Image Prep Here.

Compress, Resize, Crop, Rename. Handle Your Entire Image Prep Here.

The Challenge & Solution

The image compression market has plenty of utilities. What it lacks is products. Most tools solve the compression step in isolation - drag in a file, get a smaller file back - without thinking about what comes before or after. No bulk ops for folders of hundreds. No format conversion in the same pass. No team licensing. The time was lost in the workflow gaps, not the compression itself.

We built TidyImage to close those gaps. Bulk processing on-device, format conversion in the same job, output to a configured directory. Around the app, we built the commercial layer: Stripe checkout, server-side licence validation, account management, and team seat provisioning.

Our Solution

Our Solution

Our Solution

Key Features Implemented

Key Features Implemented

Key Features Implemented

On-Device Bulk Compression

Processes large batches of images using native macOS image frameworks, with no files sent to external servers. A folder of 500 assets compresses in the background while other work continues, with progress visible but not intrusive.

Modern Format Coverage

Supports JPEG, PNG, WebP, HEIC, and SVG, with format conversion available as part of the same batch job. A designer can drop in a folder of HEIC exports from iPhone and get a folder of WebP files back in one pass.

Per-Format
Compression Control

Each format has its own quality slider rather than a single global setting. JPEG and WebP can be tuned independently. The interface shows estimated file size reduction before export, so users can make an informed call without running the job twice.

Stripe Licensing System

Handles individual purchases, plan upgrades, and renewals through Stripe Checkout. Licence keys are generated server-side on successful payment, delivered by email, and validated on app launch. Webhook handling covers failed payments and subscription changes without manual intervention.

User Management

An internal dashboard gives us a view across all accounts, licences, and payment history. We can adjust licences, investigate support issues, and check platform health without database access. Built for practical daily use, not for completeness.

Team Seat Management

A team licence covers a defined number of seats under one account. The licence owner invites team members by email, and the system provisions their access. Seats can be reassigned. Usage is tracked per seat, not per device.

Admin Panel

Users register, log in, manage their licence, and review purchase history through a web account. Password reset, email verification, and session management are all handled server-side. Nothing is stored locally that doesn't need to be.

Design & UX

TidyImage is used when someone wants to ship assets, not explore features. The interface reflects that: drag and drop is the main action, settings don't demand attention on every run, and progress doesn't block the screen. The same logic applied to the web side. Short purchase flow. Account page shows only what's needed. The design work was mostly about deciding what to leave out.

Technical Implementation

macOS Application
Built in Swift using Apple's native image processing frameworks, CoreImage and ImageIO, rather than third-party codec libraries. Processing stays on-device, which keeps it fast and avoids the privacy and latency issues that come with server-side compression.
Backend & API
A Node.js API handles licence validation, account operations, team seat logic, and Stripe webhook events. Licence checks run at app launch and at intervals during use, with short-lived tokens cached locally to avoid latency on every check.
Payment & Webhook

Data & Security

Stripe Checkout manages the purchase flow. Webhooks handle licence provisioning, renewal, and lapsed payment states. All webhook events are processed with idempotency keys, so retried events don't create duplicate licences or double-charge customers.
Licence Security

Data & Security

Keys are signed server-side and scoped to an account, not a device. The app validates against the API rather than a local key file. Seat assignment is enforced at the account level, so a team licence can't be shared beyond its seat count.

Technical Stack

macOS App: Swift, CoreImage, ImageIO

Backend: Node.js, Express, PostgreSQL

Payments: Stripe (Checkout, Billing, Webhooks)

Authentication: JWT, bcrypt

Admin Panel: React

Hosting & Infrastructure: [TO BE FILLED]

Email: Transactional email (licence delivery, account verification, receipts)

Analytics: [TO BE FILLED]

"GrandWorks have been our development partner for more than four years, guiding our logistics app from first release to a feature-rich product used by thousands of drivers every day. Their technical depth, proactive communication and refreshingly competitive pricing have consistently exceeded our expectations. If you need a team that feels like an extension of your own—fast, reliable and budget-conscious—look no further."

Kim Aleksander Hammer Iversen

CEO at Zendera

Key Takeaways

The Zendera project showcases our expertise in building enterprise-grade native mobile applications designed for mission-critical logistics operations. We successfully implemented real-time data synchronization at scale, processing hundreds of thousands of deliveries while creating an intuitive UX that simplifies complex logistics workflows for drivers and dispatchers alike.

Our development of offline-capable mobile solutions ensures uninterrupted operations regardless of connectivity, while our integration of advanced technologies like AI-powered route optimization demonstrates our ability to leverage cutting-edge innovations for tangible business impact. Throughout the project, we maintained strict regulatory compliance and implemented robust data security measures, proving our capability to deliver solutions that meet the highest enterprise standards.

Ready to Transform Your
Logistics Operations?

Ready to Transform Your
Logistics Operations?

Ready to Transform Your
Logistics Operations?

Let's discuss how we can create powerful mobile solutions that drive efficiency and growth for your business

Let's discuss how we can create powerful mobile solutions that drive efficiency and growth for your business