Today I finally cleaned up the machinery behind this website.
Over the years, elkin.de had accumulated around 26 WordPress plugins, several generations of old formatting and a lot of content written for a very different web. Instead of adding yet another compatibility plugin, I replaced most of that functionality with one small custom plugin and built a new theme specifically for the site.
The new theme is called ManagementBoy. It supports light, dark and high-contrast modes, works properly on mobile and uses local fonts without unnecessary external requests. The interface now speaks American English, Colombian Spanish and German, depending on the browser language or the user’s selection. I went from version 1.0 yesterday to version 1.5 today, having had to fix many bugs.
A surprisingly large part of the work was repairing old content without rewriting it. Fixed-width videos now fit on phones. Floated images no longer destroy paragraphs. Wide tables can be scrolled. Old code blocks from several generations of Prettyfy have been cleaned up, joined where necessary and given modern copy buttons.
I also separated the old Google+ imports and Linkdump posts from the normal article stream. They now live in /var/legacy, which feels like the appropriate place for dead links, abandoned services and other remains of the old internet.
The site now runs with far fewer plugins, has two-factor authentication, automated backups, safer headers, cached feeds and a cleaner WordPress configuration. There is still server work to do, and I am sure more archaeological surprises remain in the database.
But elkin.de is once again a website I understand and can maintain.
A large part of the less glamorous work behind this rebuild was done together with ChatGPT and Claude: reviewing old code, finding regressions, fixing mobile layout bugs, rebuilding the theme and plugin repeatedly, untangling malformed legacy markup, and checking security and performance. I made the decisions; the machine did a considerable amount of the digging.
Technologies used
WordPress 7
The site still runs on WordPress because the existing archive, comments, feeds and publishing workflow are worth preserving.
Custom block theme: ManagementBoy
Built specifically for elkin.de instead of adapting a general-purpose theme. This keeps the design small, understandable and free from unnecessary features.
Custom plugin: MB Site Core
Replaces most of the old plugin collection with one codebase containing only the functions the site actually needs.
PHP 8.3
Used for WordPress, legacy-content handling, feeds, redirects, comments, caching and the /var/legacy section.
HTML and WordPress blocks
Used for the site structure and templates, while remaining editable through WordPress.
CSS with custom properties
Used for the responsive layout, local design system and light, dark and high-contrast modes.
Vanilla JavaScript
Used for the mobile menu, language selection, appearance modes, dynamic pagination and copy buttons. No JavaScript framework was needed.
Local variable fonts
Bricolage Grotesque, Inter and JetBrains Mono are served directly by the site to avoid external font requests and improve privacy.
WebP and responsive images
Used to reduce image size while keeping old and new content usable across different screen sizes.
Native HTML5 audio and video handling
The podcast uses the browser’s built-in audio player, while YouTube is loaded only after user interaction.
WordPress Transients API
Used to cache the podcast feed and selected legacy queries, reducing repeated database work.
MariaDB
Stores the WordPress content, comments, settings and years of accumulated internet archaeology.
Apache, HTTPS and PHP-FCGI
The current server stack delivering the site.
Two Factor
Adds TOTP-based two-factor authentication to protect the WordPress administrator account.
UpdraftPlus
Handles scheduled backups of the database and site files.
Redirection
Preserves old URLs and manages redirects without scattering them through the theme or server configuration.
ChatGPT
Used for code review, debugging, legacy-markup analysis, repeated theme and plugin revisions, mobile testing decisions, security review and a considerable amount of patient archaeological work.
