Skip to content
Drenzzz.
All projects

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.

Role Solo author
Year 2025
Status Shipped
Astro React TypeScript Tailwind CSS shadcn/ui Live Demo Source Code

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

  1. Zero-Server Upload: Uses a client-side processing architecture, so the user’s file never leaves their device.
  2. Multithreaded Processing: Uses Web Workers to run the heavy ZIP extraction on a background thread, keeping the UI at 60fps during the operation.
  3. Interactive UI: Built with shadcn/ui and Framer Motion animations for a smooth user experience.
  4. Metadata Parsing: Reads the modrinth.index.json inside 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