The story behind Bundlwise’s cross-platform rewrite and the details that…
With our latest release, we completely transformed the foundation of Bundlwise. In this technical deep dive, we'll share the story behind our cross-platform rewrite, why we shifted to a hybrid tech stack, and the engineering details that helped us maintain a ultra-fast, native experience.
As Bundlwise grew from a simple tracking tool into a comprehensive subscription intelligence platform, our old native macOS codebase started hitting scalability bottlenecks. Adding features like multi-currency support, AI recommendations, and collaborative team workspaces required duplicating complex business logic across macOS, Windows, and iOS. We needed an architecture that allowed for high code reuse without sacrificing the snappy performance our users love.
We designed a hybrid architecture combining the best of web and native worlds:
Web-based shells are notorious for visual lag. To solve this, we implemented custom communication bridges between the React frontend and the native shells, avoiding IPC overhead. We also wrote a custom styling compiler that outputs high-performance, layout-optimal CSS variables.
// Low-overhead bridge messaging
export async function sendNativeMessage(action: string, payload: any) {
if (window.webkit?.messageHandlers?.nativeBridge) {
return await window.webkit.messageHandlers.nativeBridge.postMessage({
action,
payload
});
}
return console.warn("Native bridge not found, running in browser fallback mode.");
}
Moving to this hybrid stack has decreased our compilation cycles to less than a second. We can iterate on UI layouts, tweak interactions, and ship improvements at a pace that was simply impossible when writing raw AppKit/SwiftUI code. The result is a more polished app, shipped faster.