Back-Office Overview

The CMS Back-Office is a modern Vue 3 Single Page Application (SPA) that provides administrators and content editors with a comprehensive interface to manage content, users, and system settings.

What is the Back-Office?

The Back-Office is the administrative dashboard where authorized users can:
  • Create and edit content (articles, pages)
  • Manage media files (images, documents)
  • Configure site settings (themes, menus, blocks)
  • Manage users and permissions (admin-only)
  • Organize content with categories and tags

Technology Stack

The Back-Office is built with modern web technologies:
TechnologyVersionPurpose
Vue 33.5Progressive JavaScript framework
TypeScript5.9Type-safe development
Vite7Fast build tool and dev server
Pinia2.3State management
Vue Router4.6Client-side routing
Tailwind CSS4Utility-first CSS framework
vue-i18n9.14Internationalization

Key Features

Multi-Language Support

  • UI Languages: French, English, Dutch
  • Content Languages: Articles and pages support multiple language versions
  • Seamless Switching: Toggle UI language without page reload

Role-Based Access Control

  • Admin Role: Full system access including user management
  • Editor Role: Content creation and editing capabilities
  • Granular Permissions: Fine-grained control over features

Modern UX

  • Responsive Design: Works on desktop, tablet, and mobile
  • Theme Support: Black and transparent theme options
  • Loading States: Clear feedback during operations
  • Error Handling: User-friendly error messages

Visual Page Builder

  • Unlayer Integration: Drag-and-drop page builder
  • Template System: Pre-designed templates for quick start
  • Autosave: Never lose your work
  • Media Integration: Direct access to media library

Authentication

The Back-Office uses industry-standard OAuth 2.0 / OpenID Connect (OIDC) for authentication:
  • Production: Keycloak with PKCE flow for maximum security
  • Development: Mock authentication service for local development
  • Session Management: Tokens stored securely in SessionStorage
  • Auto-Logout: Automatic logout on token expiration
Sessions persist across page refreshes but are cleared when you close the browser tab for security.

Architecture Principles

The Back-Office follows modern architectural patterns:

Component-Based Architecture

  • Reusable Components: Modular UI building blocks
  • Composition API: Vue 3’s modern API for better code organization
  • TypeScript: Full type safety across the codebase

Separation of Concerns

  • Views: Route-level components (pages)
  • Components: Reusable UI elements
  • Stores: Centralized state management (Pinia)
  • Services: API communication layer

API Integration

  • RESTful API: Communicates with Symfony backend
  • Automatic Auth: Bearer tokens automatically injected
  • ETag Support: Optimistic concurrency control
  • Error Handling: Consistent error management

Getting Started

Developer Resources

Local Development

# Install dependencies
pnpm install

# Start dev server (http://localhost:5173)
pnpm dev

# Run tests
pnpm test

# Type checking
pnpm typecheck

Project Structure

cms-bo/bo/
├── src/
│   ├── components/     # Reusable UI components
│   ├── views/          # Route-level components (pages)
│   ├── stores/         # Pinia state stores
│   ├── services/       # API services
│   ├── router/         # Vue Router configuration
│   ├── i18n/           # Translations (FR/EN/NL)
│   ├── types/          # TypeScript type definitions
│   └── main.ts         # Application entry point
├── public/             # Static assets
├── tests/              # E2E tests (Playwright)
└── package.json        # Dependencies and scripts

Next Steps

1

Read the Setup Guide

Learn how to set up your development environment
2

Explore the Architecture

Understand how the Back-Office is structured
3

Review Features

Get familiar with available features and modules
4

Start Coding

Begin contributing to the Back-Office codebase

Support

Need help? Here’s where to find support:
  • Documentation: This site covers all technical aspects
  • AI Agent Context: .context/back-office/ for detailed technical docs
  • Issue Tracker: Report bugs and request features
  • Team Chat: Reach out to the development team
Always test changes in development before deploying to production. The Back-Office manages critical content and user data.