Added `podAntiAffinity` to the homelab dashboard's frontend deployment, so its three replicas spread across different nodes instead of potentially landing on the same one.
Two small but real additions to the homelab dashboard: a dedicated `/opnsense` page describing the Protectli V1210 firewall's role and access, added with real client-side routing via a `Router` component; and a fix to how the Windows gaming node reports its stats, switching to the Glances HTTP API on its correct port.
The homelab dashboard's k3s section now shows which pod and node actually served the current request — visible directly on the page, with a rotate button to re-route and watch the highlight change — plus inline skeleton loading states across all live values instead of blank space while data loads, and light/dark mode.
A `CookieConsent` component for the frontend, and a real rewrite of how trending conversations track likes and comments: per-user like tracking (instead of a bare counter), unlike, and comment add/delete endpoints.
Retweets and a comment overlay landed on `TweetListUser`: a retweet label/action on each tweet, an overlay showing full tweet detail with comment submission and liking inside it, plus a new `Status` page for viewing an individual tweet and its comments directly, a `Coming Soon` page for unbuilt sections, empty-state handling in the Messages list, and a profile background picture.
Renamed the project from "twitterclone" to "x" across the README, HTML files, and deployment configuration, added a CookieBanner component, and wired up auto-logout on any 401/403 response from the backend.
The core event-organizing surface: an Organizer page for event management, a HostPage covering the hosting process and FAQs, a redesigned Speakers page with search and a hero section, and comments/likes on blog posts — plus the database columns needed to support all of it.
The foundational gameplay loop for PopRoom: camera follow and viewport adjustments, zoom and touch controls, stickman idle/movement animation, a WebSocket ping-pong mechanism to keep connections alive, and — a few days later — a janitor NPC that periodically cleans up the popped-balloon pile.
Before any of this became a k3s homelab, the fleet ran on Oracle Cloud free-tier instances provisioned by two Terraform repos — `oci-terraform-network` (VCN, subnet, security rules, an internet gateway, block storage) and `oci-terraform-cluster` (compute instances, including a later ARM instance) — with `oci-product-service`'s Ansible playbook handling the actual deployment: installing dependencies, running the Docker-based services, and updating Cloudflare DNS records on every deploy.
Added a `kustomization.yaml` for FluxCD to the `x` (then still called `twitterclone`) repo — the first attempt at GitOps on this infrastructure.