Small desktop tool to automatically backup WoW Addon configuration. Built with Kotlin and Compose Multiplatform.
Find a file
2026-08-25 11:24:05 +01:00
.gitea/issue_template Bug report template 2026-08-25 10:44:52 +01:00
.github/workflows Fixing release job 2026-08-24 20:05:00 +01:00
composeApp feat(update): add update detection and notification on status screen (WB-008) 2026-08-25 10:30:52 +01:00
docs Roadmap update 2026-08-25 11:24:05 +01:00
gradle feat(update): add update detection and notification on status screen (WB-008) 2026-08-25 10:30:52 +01:00
.gitignore Gitignore update 2026-08-24 16:23:03 +01:00
build.gradle.kts Config screen 2026-03-04 14:19:19 +00:00
gradle.properties Versioning 2026-03-04 16:02:28 +00:00
gradlew Docs 2026-08-24 15:22:22 +01:00
gradlew.bat Docs 2026-08-24 15:22:22 +01:00
INSTALL.md Cleaning up install instructions 2026-08-25 10:19:13 +01:00
LICENSE Unlicense 2026-08-25 10:10:15 +01:00
README.md License and readme updates 2026-08-25 10:09:41 +01:00
settings.gradle.kts Config screen 2026-03-04 14:19:19 +00:00

WoW Backup

A lightweight, native-feeling desktop application to automatically backup World of Warcraft configuration data (WTF and Interface directories).

World of Warcraft stores all UI configurations, macros, keybindings, and addon data in the WTF/ and Interface/ folders. Losing this data due to game corruption, accidental deletion, or addon errors can mean losing years of customized setups. WoW Backup runs discreetly in the system tray, and automatically performs scheduled, timestamped backups (optionally compressed as ZIP archives).

Installation & Download

Pre-built binaries for macOS, Windows, and Linux are provided on each release.

👉 See here for download links and step-by-step installation instructions.

Key Features

  • ⚙️ Smart Auto-Configuration: Automatically detects standard WoW install locations (supporting retail and classic directories) and validates folder permissions.
  • Automated & Scheduled Backups: Background scheduler ensures regular backups at a user-defined time.
  • 📦 Compression & History Management: Supports both folder replication and ZIP compression, with automatic pruning of backups beyond the configured limit.
  • 🎮 Game State Detection: Checks for running WoW processes before running backups to prevent file-locking conflicts.
  • 🔔 Native OS Notifications: Notifies the user when backups start, succeed, fail, or are skipped.
  • 🚀 Launch at Startup: Integrated with macOS LaunchAgents (~/Library/LaunchAgents/) and Windows Registry (HKCU\...\Run).
  • 🎨 Theming & Customization: Dynamic theming supporting Light/Dark mode, with configurable accent colors.

Application Data Locations

The app uses a configuration file to store user preferences. This file and runtime logs are stored in the following locations:

  • macOS: ~/Library/Application Support/WoWBackup/ (Logs: .../logs/wowbackup.log)
  • Windows: %APPDATA%\WoWBackup\ (Logs: ...\logs\wowbackup.log)
  • Linux: ~/.config/WoWBackup/ (Logs: .../logs/wowbackup.log)

Tech Stack & Architecture

  • Language & Runtime: Kotlin Multiplatform targeting Desktop (JVM, Java 17+)
  • UI Framework: JetBrains Compose Multiplatform with Material 3 Design
  • Architecture: MVVM with Kotlin Coroutines
  • Scheduling: io.github.kevincianfarini.cardiologist
  • Logging: logback-classic + kotlin-logging-jvm with daily rotation and archiving
  • Serialization: Settings stored in a JSON file using kotlinx-serialization-json
  • Theming: com.materialkolor:material-kolor for dynamic palette generation

Build & Run

Prerequisites

  • JDK 17 or higher installed

Development Run

  • macOS / Linux:
    ./gradlew :composeApp:run
    
  • Windows:
    .\gradlew.bat :composeApp:run
    

Package Application Distributions

  • macOS DMG:
    ./gradlew :composeApp:packageDmg
    
  • Windows MSI:
    .\gradlew.bat :composeApp:packageMsi
    
  • Linux DEB:
    ./gradlew :composeApp:packageDeb
    

License

This project is released into the public domain. See the LICENSE file or unlicense.org for details.