SerMon Blog

A private, bilingual travel blog built with React and headless WordPress, designed to share intimate family moments without exposing them to the public internet. Features role-based access control enforced at the SQL level, skeleton loading for slow connections, and a seamless bilingual experience powered by WPML and react-i18next.

React + Redux meets WordPress

Sermon Blog is a React + Redux web app powered by a headless WordPress backend. It features a role-based access control system that serves different content to different types of users, with security enforced at the SQL level.

The app serves as a private travel blog, allowing dynamic creation of sections, pages, and posts whilst determining which users have access to specific content. Perfect for sharing intimate family moments without exposing them to the public internet.

Fully Bilingual

Using WPML on the backend and react-i18next on the frontend, this blog is completely translatable to any language. If content is missing a translation, it displays the main language by default.

Optimised for Slow Connections

Designed for questionable campsite WiFi, the app uses skeleton loading screens that show the page structure immediately, making perceived performance significantly faster than traditional WordPress sites.

Material Design

Built with Material-UI, one of the most popular React frameworks, providing a clean and intuitive interface.

WordPress Awesome Tracker

An open-source WordPress plugin that tracks user navigation server-side, providing reliable analytics without third-party services. Perfect for headless WordPress installations where traditional client-side analytics may not work. All data stays on your server, giving you complete control over user privacy whilst gaining genuine insights into user behaviour.

Server-Side User Navigation Tracking

Awesome Tracker is a simple yet powerful WordPress plugin that tracks user visits to your WordPress pages server-side, providing genuine insights into user behaviour.

It captures navigation before serving each page, allowing you to know exactly which pages were served to which users and when, providing reliable analytics data without client-side tracking.

Comprehensive Tracking

  • Visits to pages and posts
  • Visits to archive pages
  • 404 error requests
  • Search queries
  • REST API calls

Perfect for Headless WordPress

Configure custom REST API routes to track, making it especially useful for headless WordPress installations where traditional analytics may not work reliably.

Open Source and Private

Track engagement data privately without sending information to third-party services. All data stays on your server, giving you complete control over user privacy.

Homelab Proxmox Setup

Packer templates for building cloud-init enabled VM images in Proxmox, forming the foundation of a fully automated hybrid Kubernetes infrastructure. These golden images, pre-configured with QEMU guest agent and cloud-init, enable rapid deployment of reproducible infrastructure managed through Terraform, Ansible, and GitOps principles, spanning both home network and cloud VPS.

Cloud-init templates for Proxmox

A collection of Packer templates for creating cloud-init enabled VM templates in Proxmox. These templates form the foundation for automated infrastructure provisioning in my homelab setup.

Built with Infrastructure as Code

Using Packer to create golden images that are cloud-ready and configured with cloud-init, enabling fully automated VM deployment with just a few commands.

Key Features

  • Automated OS installation and configuration
  • QEMU guest agent pre-installed
  • Cloud-init ready for rapid deployment
  • Designed for Kubernetes (K3s) clusters
  • Reproducible infrastructure

Part of a larger homelab

These templates are the building blocks for a fully automated Kubernetes cluster spanning home network and cloud VPS, managed with Terraform, Ansible, and GitOps principles.

See more details in Moreira.dev