# WoWAnalyzer: a React front end that turns combat logs into raid advice

> WoWAnalyzer is a TypeScript and React single page application that parses World of Warcraft combat logs into metrics and gameplay suggestions, and its development workflow is a pnpm workspace with Playwright end to end tests and a Docker image that serves a static build through nginx.

**WoWAnalyzer/WoWAnalyzer** — WoWAnalyzer is a tool to help you analyze and improve your World of Warcraft raiding performance through various relevant metrics and gameplay suggestions.

- Repository: https://github.com/WoWAnalyzer/WoWAnalyzer
- Website: http://wowanalyzer.com/
- Stars: 602 · Forks: 725
- Language: TypeScript
- License: AGPL-3.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/wowanalyzer-wowanalyzer

## A client side app for a log analysis service

WoWAnalyzer is described as a tool to help you analyze and improve your World of Warcraft raiding performance through various relevant metrics and gameplay suggestions, and the hosted site is wowanalyzer.com. What the repository contains, though, is the client side app, and the package manifest says so in the description field. The repository is licensed AGPL-3.0-or-later, the default branch is midnight, and the last push was on 2026-10-20. The audience for the codebase itself is developers who want to work on a React application that ingests a large, awkward input, the combat log, and turns it into structured analysis. The audience for the product is raid leaders and players who want to know why a pull went badly. The topics confirm the shape, with analyzer, log, warcraft, warcraftlogs and wow among them, and the presence of an AI policy file makes the project unusually explicit about how contributions are expected to be written.

## The stack: React 19, Redux Toolkit, Vega and Lingui

The dependency list reads like a modern data heavy front end. React and React DOM are at 19.2.6, with Redux Toolkit and react-redux plus redux-thunk for state, and react-router-dom for routing. The charting stack is Vega and Vega-Lite with react-vega, which is the choice that makes sense for a tool that renders timelines of ability casts and damage events, where a timeline view is more useful than a bar chart. Below that sits react-virtualized and react-virtualized-auto-sizer for windowing long lists, react-masonry-component for the masonry layouts that report panels tend to need, and a set of smaller utilities including react-textfit, react-animate-height, react-transition-group, rc-slider, spin-delay, swr and clsx. Internationalisation runs through Lingui with @lingui/core, @lingui/react and a lingui.config.ts at the root, and error reporting through @sentry/react with the Vite plugin. Vite is the build tool, and the tooling around it includes oxlint and oxfmt configuration, Prettier, Playwright for end to end tests and testing-library for unit tests.

## Getting the project running locally

The getting started section is short and assumes you fork first. You need git, with a GUI client such as GitHub Desktop or TortoiseGit as an option, Node.js where the README recommends the LTS version, and pnpm. You make a fork of the repository with the Fork button, clone it over HTTPS with git clone, and then run pnpm install in the source directory.

The development server is then a single command, pnpm start, and the README says it should open your local version of WoWAnalyzer in the browser.

The troubleshooting note is worth knowing in advance, because the failure mode is confusing. If you get an error about a missing module or library you might have to update your dependencies with pnpm install, and you should make sure there is no running pnpm start or pnpm test while you do it, because they might lock files. A pnpm workspace layout with a pnpm-workspace.yaml and a packages/ directory, plus a patches/ directory, is what produces that lockfile behaviour, and it is the usual reason a stale install cannot be repaired by simply retrying.

## The Docker image is a static build behind nginx

The release history is odd and the repository says so. The only tagged release is v6.3.1 from 2017, and its note reads that releases are to be ignored, that the project does not do this anymore, and to see the Docker repo instead. That tells you the delivery model is a container image rather than versioned artefacts, which makes sense for an application that is deployed as static files. The Dockerfile in the repository is the whole delivery mechanism:

```dockerfile
FROM nginx:stable-alpine

COPY default.conf /etc/nginx/conf.d/default.conf
COPY dist /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
```

It starts from nginx:stable-alpine, copies the nginx configuration from default.conf into the image, copies the built dist directory into the nginx html root, exposes port 80, and runs nginx with the daemon off flag. There is no application server in the image at all, because the analysis happens in the browser. A local-pipeline.sh script and a scripts/ directory sit alongside the packages, and the e2e/ directory with playwright.config.ts is where the end to end tests live.

## Where WoWAnalyzer is the wrong tool

The limits are worth being blunt about. First, this is not an analysis engine you can point at your own logs. The repository is the client side app, the processing of combat logs into metrics happens somewhere the repository does not fully describe, and the README says to look at the wiki and the Discord rather than presenting a specification. Second, the domain is versioned against a live game. Combat log formats, ability names and encounter mechanics change with every expansion, and a front end that parses a specific log schema ages badly when the game underneath it moves. Third, the contributor policy is unusually strict, with an IMPORTANT notice stating that WoWAnalyzer does not accept AI-generated code from unknown contributors and pointing to AI_POLICY.md, which means a first-time contributor reading the repository for a description of the work will also find a policy about how that work must be written. The alternative worth naming is a generic log analysis tool, or one of the community spreadsheets and addons that exist for a single encounter, where the difference in approach is that those are narrow and disposable while this is a maintained application with a real codebase behind it.

## How the project is organised and maintained

The top level entries show a project with real structure rather than a single application directory. There are packages/ for the workspace members, src/ for the app, types/ for shared TypeScript types, e2e/ for Playwright, and public/ for static assets, with a patches/ directory that holds patched dependencies, which is a pnpm feature for fixing things the upstream has not released. The .husky/ directory holds git hooks, and .serena/ suggests the project is set up for an AI coding assistant, which connects to the AGENTS.md and CLAUDE.md files at the root and to the AI policy. The environment is split into .env, .env.development, .env.production and .env.test, so the client is configured per environment. The project keeps a wiki for more information, a CONTRIBUTING.md with the guidelines, a CODE_OF_CONDUCT file and a Discord server for support, and it welcomes newcomers with a link to a general guide to pull requests for people new to open source.

## Conclusion

Adopt WoWAnalyzer if you want to work on a React and TypeScript front end that parses large event streams and renders them as charts, which is a good training ground for that kind of work. Do not adopt it expecting a finished analysis product, since the repository is the client side app and the release note says to ignore releases and use the Docker image instead. Verify first that the combat log formats the project expects still match the current game version, and read the AI policy in the repository before opening a pull request, because the project states it does not accept AI-generated code from unknown contributors.

## FAQ

### What is WoWAnalyzer and who is it for?

It is a tool to help you analyze and improve your World of Warcraft raiding performance through metrics and gameplay suggestions. This repository holds the client-side app, written in TypeScript and React, and the hosted version is at wowanalyzer.com.

### How do I run WoWAnalyzer locally for development?

You need git, Node.js on the LTS version and pnpm. Fork the repository, clone it over HTTPS with git clone, run pnpm install in the source directory, and then run pnpm start, which opens your local version in the browser.

### Why does WoWAnalyzer have no recent releases?

The release note on the only tag says to ignore releases because the project does not do this anymore, and to see the Docker repository instead. The Dockerfile builds a static dist served by nginx:stable-alpine, with no application server in the image.

### Does WoWAnalyzer accept contributions written by AI?

The README carries an IMPORTANT notice stating that WoWAnalyzer does not accept AI-generated code from unknown contributors, and points to the AI policy file in the repository for details. A Discord server is available for questions.

## Sources

- [License: AGPL-3.0](https://github.com/WoWAnalyzer/WoWAnalyzer/blob/midnight/LICENSE)
- [Project website](http://wowanalyzer.com/)
- [README](https://github.com/WoWAnalyzer/WoWAnalyzer/blob/midnight/README.md)
- [Releases](https://github.com/WoWAnalyzer/WoWAnalyzer/releases)
- [WoWAnalyzer/WoWAnalyzer on GitHub](https://github.com/WoWAnalyzer/WoWAnalyzer)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/wowanalyzer-wowanalyzer
