Latest Updates

Documenting code, one commit at a time.

PHP Laravel OOP

Extending Models with Method Overrides: A Case Study

Sometimes, the core functionality of a framework needs a little customization to perfectly fit the nuances of a specific application. Recently, we faced a situation where we needed to extend our Tenant model to directly handle subscription checks, which required overriding some core Cashier methods.

The Challenge

Our application uses a multi-tenant architecture. Each tenant needs to manage

Read more

Refactoring for Efficiency: Sharing Tenant Setup Logic in Our Testing Suite

In large projects, repetitive code across numerous tests can lead to maintenance overhead and inconsistencies. We recently tackled this in our application by extracting common tenant setup logic into a reusable trait, significantly reducing code duplication and improving test maintainability.

The Problem: Duplicated Boilerplate

Our testing suite involved numerous tests that required setting

Read more

Enhancing the Landing Page with a Promotional Video

Goal

To create a more engaging landing page experience by embedding a short, autoplaying promotional video.

Implementation

A dedicated video project was created using Remotion v4 to produce a 20-second promotional video. The video highlights key features and provides a call to action.

Video Production

The video was structured into five distinct scenes:

  1. Intro: A brief
Read more

Implementing Localized Promo Videos for Global Audiences

The Challenge

Our application needed to support multiple languages for promo videos, ensuring a localized experience for users across different regions. This included translating video content and optimizing video formats for efficient delivery.

The Solution

We implemented a solution involving content localization, component updates for internationalization (i18n), and video format

Read more

Enhancing Data Retrieval Robustness in Data Processing Services

Introduction

This article outlines an approach to enhance the resilience of data processing components when interacting with database tables, specifically addressing scenarios where tables might be temporarily unavailable or not yet provisioned in certain environments.

The Challenge

In dynamic environments, data processing tasks sometimes encounter situations where expected database

Read more

Adding Full-Text Search to Your Portfolio with PostgreSQL

Implementing full-text search can significantly enhance the user experience of your portfolio or blog. This post details how to add PostgreSQL-powered full-text search to a Laravel application, focusing on accent-insensitive prefix searching across multiple fields.

The Problem: Basic Search Limitations

Simple LIKE queries in SQL often fall short when dealing with complex search

Read more

Fixing Silent GitHub Scope Update Failures

When integrating with GitHub, users sometimes encounter issues when updating the granted permissions (scopes). A recent update addresses a scenario where these updates would silently fail, leaving users confused.

The Problem

When a user attempted to update their GitHub scope (e.g., from public-only access to all repositories) via the integrations page, a failure in the Socialite OAuth

Read more

Refactoring Filament Account Settings for Improved Clarity

Introduction

The original account settings page had become unwieldy, making it difficult for users to find and adjust specific settings. This post outlines the refactoring process to improve the user experience and code maintainability.

The Challenge

The monolithic AccountSettings page contained a large number of fields and configurations, leading to:

  • Difficulty in navigating the
Read more

Enhancements to Portfolio Settings and Automation

Portfolio Badges Visibility

The "Show Badges on Portfolio" toggle has been relocated from the Automation Settings to the Portfolio Settings page. This move aligns the feature with its conceptual location, placing portfolio customization options in a more intuitive and accessible area.

// Filament\Pages\PortfolioSettings.php
Toggle::make('visibility_badges')
    ->label(__('filament.
Read more
PHP Queue JavaScript

Improved Retry Handling for AutoSyncGeneratePostJob

Introduction

The AutoSyncGeneratePostJob is crucial for automatically generating posts. Recently, we encountered an issue where rate limits were causing the job to exhaust its retry budget prematurely, leading to job failures even when the underlying issue was temporary.

The Challenge

The original job configuration used a $tries property to define the maximum number of attempts.

Read more