FireDevOps FireMUD & Ops Projects

🎨 FireMUD System Architecture: Frontend Architecture

This document describes the structure and tooling for FireMUD’s browser-based user interfaces. React and Material-UI are assumed, but this guide explains how the components, state management, and API calls are organized.


📐 Component Hierarchy

FireMUD uses React components with a feature-first organization. Each feature folder contains its own components, tests, and styling:

frontend/
  src/
    features/
      account/
        AccountPage.tsx
        accountSlice.ts
      gameplay/
        GameplayPage.tsx
        gameplaySlice.ts
      ...

⚛️ State Management

Application state is handled by Redux Toolkit with slices per feature. Slices contain reducers, actions, and async thunks for API calls. This keeps business logic out of components and promotes predictable state updates.

🔗 API Usage Patterns

All HTTP requests are made through a centralized wrapper built on Axios:

WebSocket interactions for real-time gameplay are handled by a single service in src/websocket.ts that manages connection lifecycle and message routing to Redux actions.

🛠️ Build Tooling

The frontend uses Vite for fast development and production builds:

TypeScript configuration lives in tsconfig.json, and ESLint/Prettier enforce coding standards consistent with the rest of the project.

🎨 Game-Specific Customization (Planned)

FireMUD aims to let each hosted game supply its own UI styling and layout tweaks.


This architecture keeps the web client modular and maintainable while aligning with the backend microservices. Additional frontend services or features can follow the same patterns for consistency.