A considered build planner for Dofus 3. Shape your character, study every stat, and let the Forge search for the gear that fits your plan.
No account needed to start. No optimizer server to wait on. Your build, your rules.
At a glance · The workbench · Get started · Built with care · Contributing
| Live app | dofusforge.com |
| Game | Dofus 3 |
| Languages | Español · English · Français · Português |
| License | MIT |
| Stack | React · TypeScript · Rust · WebAssembly |
| Equip every slot, compare items, follow set tiers as they activate, and tune characteristics and scrolls. Search a deep catalog by name, level, set, type, or stat. | Give the optimizer a target stat profile and let it explore item combinations in your browser. Pin must-have items, lock existing slots, set minimums and caps, and temper the results with exo and transcendence runes. |
| Inspect item effects, set bonuses, spell modifiers, weapon damage, critical hits, and combat stats. Spell cards reflect the supported effects of your equipped gear. | Save builds to your account, share a build link or image, compare two setups, and explore builds published by the community. |
- Spell library — spell cards, variants, grades, and class-by-class guides.
- Magesmithy — per-slot runes, craftsman signatures, elemental weapon transformations, and transcendence.
- Build snapshots — shareable URLs and exportable image cards.
- Community — discover published builds and manage your own saved builds.
- Comfortable by design — dark and light themes, with four interface languages.
- Node.js 22 or newer
- pnpm 11 or newer
git clone https://github.com/Wembie/dofus-forge.git
cd dofus-forge
pnpm install
pnpm devVite prints the local URL when the development server is ready.
pnpm build
pnpm lint
pnpm testThe optimizer's compiled WebAssembly and generated game data are checked in, so the app builds without Rust or a live game-data API. You only need Rust and wasm-pack when changing the optimizer itself:
cd rust-optimizer
cargo clippy --locked --all-targets -- -D warnings
cargo test --locked
cd ..
wasm-pack build rust-optimizer --target web --release --out-dir ../public/wasm --no-pack --locked
git diff --exit-code -- public/wasm| Part | Choice |
|---|---|
| Interface | React 19 · React Router 7 (prerendered pages) · TypeScript · Vite 6 |
| Build state | Zustand |
| Styling | Tailwind CSS · custom design tokens |
| Optimizer | Rust → WebAssembly · Web Worker |
| Data | Versioned static JSON · localized item and spell catalogs |
| Tests | Vitest · Playwright |
| Hosting | Cloudflare Worker · static assets |
Catalog and spell data is generated from the public DofusDude API and checked into public/data/. The app reads these versioned files locally; normal development and builds do not depend on the API being available. Item images are served from project-managed assets.
To refresh game catalogs:
pnpm fetch-data # fetch only when the game version changes
pnpm fetch-data --force # force a refreshSpell and image data have their own scripts: pnpm fetch-spells and pnpm fetch-images. Generated files should be refreshed through these scripts rather than edited by hand.
Thoughtful fixes and improvements are welcome. Start with CONTRIBUTING.md for setup, project conventions, and pull request checks. For feature changes, open an issue first so we can align on the direction.
When reporting a bug, include the steps to reproduce it, what you expected, what happened instead, and your browser/device when relevant.
Dofus Forge is an independent community project and is not affiliated with Ankama Games. Dofus, the Krosmoz universe, and related game names and assets belong to their respective owners. Game data is attributed to the DofusDude API. The source code is available under the MIT License.
Plan with intention. Forge with confidence.
Created by Juan (Wembie).