How It Started

Black Desert Online has deep life skill systems, cooking, alchemy, and draughts, with hundreds of recipes, each requiring specific ingredients in specific quantities. Tracking what you have, what you need, and what to craft next meant juggling spreadsheets, wiki tabs, and mental math. The original BDO Life Skill Companion was built as a .NET WPF desktop app to solve this: a single overlay window that sits on top of the game, letting you search recipes, track inventory, and log crafting sessions without alt-tabbing.

The WPF version worked, but it was Windows-only, produced a 165MB bundle, and extending it with modern UI patterns was painful. The recipe database had grown to 981 recipes across three catalogs, with 759 item images, the app needed a better foundation.

The Migration to Tauri

The entire application was rewritten from scratch using Tauri 2 with a Svelte 5 frontend and a Rust backend. Tauri uses the system's native webview instead of bundling Chromium, which dropped the binary from 165MB to around 22MB. The Rust backend handles all persistence, reading and writing JSON and CSV files to a portable data directory next to the executable, while the Svelte frontend handles all UI rendering with reactive stores.

The migration followed an incremental strategy across four phases: foundation (models, stores, services), core UI (all five tab views), advanced features (import/export, recipe navigation, mini mode, boss timers), and enhancements (crafting planner, grinding tracker, treasure tracker, announcements). Each phase was validated against the original WPF behavior, and the Tauri version quickly surpassed feature parity with capabilities the WPF version never had.

Core Features

The crafting system is the heart of the app. 981 recipes across Cooking (427), Alchemy (508), and Draughts (46) are searchable with favorites, and each recipe shows its ingredients with live inventory counts. Clicking an ingredient navigates to recipes that produce it, and double-clicking jumps directly to that recipe's catalog. Alternative ingredients are supported, some recipes accept substitutions with different quantities, shown via an [alt] indicator with tooltips. The "Used In" section shows reverse lookups: every recipe that consumes the current item as an ingredient.

The Crafting Planner takes this further. Select any recipe, set the desired quantity, and the planner builds a full dependency tree, recursively resolving sub-recipes across all three catalogs with circular dependency detection. It subtracts what you already have in inventory and cascades the deficit downward. Three views present the plan: a collapsible Tree View showing the full hierarchy with need/have/deficit columns, a Shopping List aggregating all leaf materials, and a Steps View showing the bottom-up crafting order with checkboxes and a progress bar. Jump-to-craft lets you click any step to navigate directly to that recipe in the crafting tab.