Case Study
MrPack Converter
A browser-based tool for extracting and converting Minecraft modpack files (.mrpack) entirely on the client. Built with Astro, React, and Web Workers so multi-gigabyte packs run without freezing the tab.
MrPack Converter is a web utility for the Minecraft modding community. It solves the friction of opening .mrpack files (the Modrinth standard) by offering a simple drag-and-drop interface to extract or convert the contents.
The development focus is on performance and privacy. Unlike most online converters that require uploading the file to a server, this tool processes gigabytes of data locally in the user’s browser.
Key Features
- Zero-Server Upload: Uses a client-side processing architecture, so the user’s file never leaves their device.
- Multithreaded Processing: Uses Web Workers to run the heavy ZIP extraction on a background thread, keeping the UI at 60fps during the operation.
- Interactive UI: Built with shadcn/ui and Framer Motion animations for a smooth user experience.
- Metadata Parsing: Reads the
modrinth.index.jsoninside the package to show version, loader, and modpack dependencies.
Technical Challenge
Handling large .mrpack files (hundreds of megabytes) by unzipping on the main thread will freeze the browser tab.
The fix was a dedicated Web Worker (converter.worker.ts) that runs the file processing logic off the UI thread. Communication between the UI and the worker happens through message passing, which lets the progress bar update in real time without interrupting the user.
Tech Stack
- Framework: Astro (for a fast static shell)
- Interactive UI: React 18
- Styling: Tailwind CSS + shadcn/ui
- File Handling: JSZip + Web Workers API
- Validation: Zod
