Project

Custom CMS

A self-hosted PHP CMS that powers this site: public pages, member area, and a full admin for day-to-day operations. Built modular so calendars, messaging, analytics, security, and apps can grow without rewriting the core.

← Back to projects Contact about the CMS

Administration dashboard

The admin home is the control center for the whole install. From one place you reach users, permissions, content, media, security, analytics, and system settings - without jumping between disconnected tools.

The administration dashboard provides a centralized interface for managing users, permissions, content, media, security, analytics, and system settings. Built with a modular architecture, it allows new features and applications to be integrated without modifying the CMS core.

The architecture is modular: new features and applications can plug into the same shell, menus, and auth model without patching the CMS core. That is how this portfolio stays one codebase for marketing pages and operations.

What you see here is the live system behind this site. Danish, English, and German share the same UI patterns in admin and on the public front end.

  • Central dashboard for users, content, media, security, analytics, and settings
  • Modular apps and features without forking the core
  • Same install for public site, members, and administration

Calendar & tasks

Scheduling and task tracking live inside the CMS instead of a separate SaaS calendar. Teams get one place for events and work items, with the same login and permissions as the rest of the admin.

A fully integrated calendar and task management system built into the CMS. It supports multiple calendar views, event categories, color coding, task tracking, filtering, and personal or shared calendars, providing a centralized solution for scheduling and organization.

Views, categories, and filters are meant for real weekly planning: color-coded events, task status, and calendars that can stay personal or be shared across a group.

  • Multiple calendar views for day-to-day planning
  • Event categories and color coding
  • Task tracking with filtering
  • Personal and shared calendars

Real-time messaging

Internal chat is built into the CMS so users and teams can coordinate without leaving the admin or bouncing to Slack, Teams, or email threads.

A built-in real-time messaging system that enables instant communication between users and teams. Messages are delivered with a maximum delay of five seconds, providing fast internal collaboration without relying on external messaging platforms.

Delivery is near real time: messages show up with a maximum delay of about five seconds, which is enough for fast collaboration while staying inside the same auth and permission model.

  • Instant messaging between users and teams
  • Maximum delivery delay of five seconds
  • No dependency on external messaging platforms

Security dashboard

Security is not a bolt-on plugin list. A dedicated dashboard surfaces failed logins, IP blocks, security events, file integrity checks, and attack signals so administrators can see what is happening now.

A centralized security dashboard providing real-time insight into failed login attempts, IP blocks, security events, file integrity monitoring, and attack detection. The module helps administrators identify suspicious activity and respond quickly to potential threats.

The goal is short time-to-response: spot suspicious activity early, understand the pattern, and act from the same place you already manage users and settings.

  • Failed login attempts and related security events
  • IP blocks and attack detection views
  • File integrity monitoring
  • Faster response to potential threats

Built-in code editor

Developers can edit themes, templates, translations, stylesheets, and content blocks from inside the CMS. That keeps small site changes on the same server and workflow as the rest of the project.

A built-in code editor for managing themes, templates, translations, stylesheets, and content blocks directly from the CMS. The editor enables developers to modify site functionality and appearance without requiring external tools or server access. Still a work in progress.

The editor is still a work in progress, but the direction is clear: change appearance and structure without opening an external IDE or raw server access for every tweak.

  • Themes, templates, translations, and stylesheets
  • Content blocks editable from the CMS
  • Still a work in progress

Roles & permissions

Access is controlled through a permission matrix: each CMS feature can be granted or denied per role, so administrators are not stuck with a few coarse “admin or not” switches.

A flexible role and permission management system that allows administrators to control access to every CMS feature through an intuitive permission matrix. Roles can be assigned to both users and groups, making access management scalable and easy to maintain.

Roles attach to both users and groups. That keeps access management scalable when a team grows, while still letting you grant a one-off capability to a single person when needed.

  • Intuitive permission matrix for every CMS feature
  • Roles for users and groups
  • Scalable access management without custom if-statements per page

Built-in analytics

Traffic, behavior, SEO, performance, accessibility, security, and privacy insights live inside the CMS. You get Core Web Vitals and related field data without wiring up a third-party analytics stack.

A comprehensive analytics platform built directly into the CMS, providing insights into website traffic, user behavior, SEO, performance, accessibility, security, privacy, and Core Web Vitals - all without relying on third-party analytics services.

Tabs cover the full picture - from visitors and content to server health and consent-aware privacy views - so operators can diagnose the site from the same admin they already use.

  • Traffic, user behavior, content, SEO, and audience views
  • Performance and Core Web Vitals (LCP, CLS, INP, TTFB, load)
  • Security, accessibility, and privacy tabs in one place
  • No dependency on third-party analytics services

Performance on this site

Field metrics (p75) from this CMS install, based on 13 visitors who consented to analytics.

  • Largest Contentful Paint: 144 ms · good ≤ 2500 ms
  • Cumulative Layout Shift: 0.000 · good ≤ 0.100
  • Interaction to Next Paint: 16 ms · good ≤ 200 ms
  • Time to First Byte: 42 ms · good ≤ 800 ms
  • Page load time: 141 ms · good ≤ 3000 ms

Measured in real browsers via this site’s built-in web vitals collection. Values update as more consented traffic is recorded.