Skip to content

Architecture

Rondo Club is a React-powered WordPress theme for sports club management.

Entry point: functions.php

The theme initializes on after_setup_theme and plugins_loaded, loading classes from includes/:

ClassResponsibility
Rondo\Core\PostTypesRegisters Person, Team, Commissie, and other CPTs
Rondo\Core\TaxonomiesRegisters relationship types and seizoen taxonomy
Rondo\Core\AutoTitleAuto-generates post titles
Rondo\Core\AccessControlRow-level user data filtering
Rondo\Core\UserRolesRegisters custom “Rondo User” role
Rondo\REST\ApiCustom /rondo/v1/ endpoints
Rondo\Collaboration\CommentTypesNotes and Activities system
Rondo\Core\RemindersDaily digest reminder system

ACF field groups are stored as JSON in acf-json/ for version control.

Entry point: src/main.jsx

A React SPA with:

  • Routing: React Router 6 with ProtectedRoute wrapper
  • State: TanStack Query for server state, Zustand for client state
  • API client: Axios with WordPress nonce injection
  • Two API namespaces:
    • /wp/v2/ — Standard WordPress REST (people, teams, commissies)
    • /rondo/v1/ — Custom endpoints (dashboard, search, timeline)
Terminal window
npm run dev # Vite dev server (port 5173, HMR)
npm run build # Production build to dist/
npm run lint # ESLint (max-warnings: 0)

The theme auto-detects the Vite dev server when WP_DEBUG is enabled. In production, assets load from dist/ via manifest.json.