A breakdown of the technologies that power Ascendara. Versions are the ranges in package.json and each tool's requirements file.
Core Framework
Electron (^40)
The desktop shell:
Main process: Node.js runtime for system operations, child processes, and IPC
Renderer: Chromium for the React UI, with context isolation and no Node integration
Packaging: electron-builder (^26)
React (^19)
Functional components and hooks
Context providers for global state
React Router (^7) for navigation
Vite (^7)
Development server with hot module replacement on port 5173
Production build into build/
Frontend Dependencies
UI
Package
Version
Purpose
tailwindcss
^3.4
Utility-first CSS
@radix-ui/*
^1–2
Accessible primitives behind the shadcn/ui components
framer-motion
^12
Animations
lucide-react
^0.575
Icons
sonner
^2
Toast notifications
react-dnd
^16
Drag and drop
next-themes
^0.4
Theme switching
State, Data, and i18n
Package
Version
Purpose
react-router-dom
^7
Routing
zustand
^5
Lightweight stores
i18next, react-i18next
^25, ^16
Translations
firebase
^12
Ascend accounts and cloud data
axios
^1
HTTP client
dompurify
^3
Sanitizing HTML from external sources
cheerio
^1
Parsing KHInsider soundtrack pages
Utilities
Package
Version
Purpose
clsx, tailwind-merge, class-variance-authority
—
Class name composition
qrcode
^1.5
Companion pairing QR codes
jszip, unzipper
—
ZIP handling (cloud save backups, dependency and catalogue archives)
Main Process Dependencies
Package
Version
Purpose
fs-extra
^11
File operations
dotenv
^17
Environment variables in development
electron-dl
^4
Sidecar downloads
discord-rpc
^4
Discord Rich Presence
node-machine-id
^1
Machine ID for settings encryption
winreg
^1.2
Windows registry checks (dependencies, launcher import)
sax
^1.2
Streaming XML parsing of LaunchBox metadata for Retro
crypto
built-in
AES-256-CBC encryption, HMAC request signing
Helper Tools
Python Tools
Python: 3.12 in CI
PyInstaller: 6.16.0, building single-file executables
Tool
Key dependencies
Torrent Handler (older qBittorrent path)
qbittorrent-api
Notification Helper
PyQt6, requests
Language Translation
requests
Local Refresh
cloudscraper, requests, beautifulsoup4
Rust Tools
Rust 2021 edition, built with Cargo
Crash Reporter: fltk (bundled FLTK) and fltk-theme for the window, webbrowser, chrono, and winres to embed the Windows icon
Downloader (Rust 1.90+): tokio and reqwest (rustls) for transfers, librqbit for torrents, zip, sevenz-rust2, and unrar for extraction, sha2 and md-5 for checksums, serde_json, regex, windows-sys (Windows), libc (Unix), and winres
Game Handler (Rust 1.90+): discord-rich-presence, serde_json, shlex, sysinfo (Windows and Linux), plist (macOS), ureq (Linux), windows-sys (Windows), and winres
Achievement Watcher (Node.js)
Packaged with pkg 5.8 on a Node 18 runtime
node-watch, single-instance, moment, ini, regedit, find-up