Latest Updates

Documenting code, one commit at a time.

Mitigating XSS Vulnerabilities in Livewire/Alpine.js with @js()

The Problem

In the landing project, we encountered a subtle but significant security issue related to how data was being passed from PHP to JavaScript within our Blade templates. Specifically, when using Livewire and Alpine.js, values containing special characters (like apostrophes in names such as "O'Brien") could break the JavaScript context, leading to unexpected behavior or, worse,

Read more

Improving User Experience: Copying Mentorship Links on Share

Introduction

In the ongoing development of the landing project, a key focus is to enhance user experience and streamline interactions. A recent improvement targets the share functionality, specifically for mentorship links. The goal is to make sharing links easier and more intuitive for users.

The Problem: Manual Copying

Previously, sharing a mentorship link required users to manually

Read more

Improving Feedback Form Accuracy in Landing Pages

Introduction

In web development, capturing accurate context is crucial for debugging and improving user experience. This post addresses an issue encountered in the devlog-ist/landing project where the feedback form was capturing an incorrect URL due to server-side rendering limitations with Livewire.

The Problem: Server-Side URL Capture

When using Livewire, attempting to capture the

Read more

Personalizing the User Experience: Dynamic Theme Switching in Landing Pages

Introduction

Imagine offering users a seamless way to customize their experience directly from their portfolio page. This post details how the 'landing' project implemented a floating theme selector, providing authenticated owners the power to change their portfolio's appearance without navigating to admin settings.

The Challenge: Static Themes

Previously, users had to delve into admin

Read more

Improving Theme Selection in Landing Pages

The landing project provides customizable landing pages. Recently, we addressed an issue with the theme selection process that was causing cross-origin errors on tenant subdomains.

The Problem

Previously, the theme selector used the route() function to generate URLs. This resulted in the main domain URL being generated, which caused cross-origin failures when the landing page was accessed

Read more
PHP Livewire

Maintaining Session Integrity During Impersonation in Livewire

Introduction

When implementing user impersonation functionality, a common pitfall is inadvertently breaking the user's session. This post addresses an issue in a Reimpact platform where session loss occurred during impersonation due to Livewire's single-page application (SPA) navigation.

The Problem: Session Regeneration and SPA Navigation

The Auth::login() function in PHP regenerates

Read more

Unifying Branding Across Filament Panels in Reimpact Platform

Introduction

Maintaining a consistent brand identity across multiple admin panels can be a challenge. In the Reimpact platform, we faced this issue with our eight Filament panels, each serving different modules. The goal was to ensure a unified look and feel while streamlining maintenance and updates.

The Problem

Previously, each Filament panel had its own branding configuration, leading

Read more

Prompting for Feedback: Balancing User Experience and Engagement

Collecting user feedback is crucial for iterative improvement in any application. However, the timing and method of prompting users for feedback can significantly impact their experience. In the Breniapp application, a new approach balances proactive engagement with user comfort.

The Feature: Just-in-Time Feedback Prompts

A Livewire component has been introduced to present users with a

Read more