Latest Updates

Documenting code, one commit at a time.

Multi-Tenancy with PostgreSQL Schemas in Laravel

Introduction

When building multi-tenant applications, choosing the right architecture is critical. This post explores how to leverage PostgreSQL schemas within a Laravel application to achieve tenant isolation, enhance security, and improve scalability.

The Multi-Tenant Challenge

Traditional multi-tenant approaches often involve sharing a single database and distinguishing tenants by a

Read more
PHP Laravel

Streamlining Filament Panel Navigation in Reimpact Platform

Introduction

The Reimpact platform recently underwent a navigation update to improve user experience within the Filament admin panel. This update focused on ensuring consistent and correct redirection after login and impersonation actions.

The Problem

Previously, users logging in or utilizing the impersonate feature were being redirected to outdated Nova paths, specifically

Read more

Skipping Session Validation Middleware During Impersonation in Platform

The Problem

In the Reimpact platform, we encountered an issue where session validation middleware was causing unexpected logouts during user impersonation. Specifically, the CheckValidSession and EnsureSingleSession middlewares were interfering with the impersonation process, leading to a frustrating user experience.

The Cause

The root cause of the problem lies in how the session is

Read more

PostgreSQL Type Casting for Data Consistency in Laravel

When developing applications using Laravel with a PostgreSQL database, maintaining strict data type consistency is crucial, especially when dealing with dashboard functionalities that aggregate data. PostgreSQL's strong type checking can lead to unexpected errors if data types don't match exactly between the database schema and the application's expectations.

The Problem: Type Mismatches

Read more

Refactoring Filament Dashboard Filters for Clarity and Efficiency

The Reimpact platform benefits from a well-organized and efficient admin dashboard. Recently, work has focused on refining the Packaging dashboard's filter system to improve both its appearance and initial data loading performance.

The Problem: Styling Inconsistencies and Delayed Data

Previously, the dashboard filters suffered from inconsistent styling, making the interface feel disjointed.

Read more

Streamlining Onboarding with Middleware Bypass Logic

Introduction

Imagine a scenario where specific user roles within an application are needlessly subjected to onboarding processes designed for different user groups. This post explores how to selectively bypass middleware to optimize the user experience for marketing admins in the 'landing' project.

The Problem: Unnecessary Onboarding Steps

In many applications, middleware is used to

Read more

Database Compatibility: Adapting Queries for PostgreSQL

When developing applications across different database systems, ensuring compatibility in your queries is crucial. Minor differences in SQL syntax can lead to unexpected errors and application downtime. Let's explore a practical example of adapting queries for PostgreSQL.

The Challenge: Date Extraction

MySQL provides functions like YEAR() and MONTH() to extract year and month values from

Read more
PHP Laravel

Handling Database Seed Conflicts in Laravel

Introduction

When working on the Reimpact platform, a common issue arises during database seeding: conflicting UUIDs, especially when dealing with priority products. This post details how to resolve such conflicts, ensuring smooth database setup and consistent application behavior.

The Problem: Duplicate Entries

During the database seeding process, the system attempts to insert a new

Read more
PHP Laravel

Seeding Sanity: Ensuring Data Integrity in Laravel Migrations

When working on the Reimpact/platform, we encountered an issue where seeding migrations were failing due to missing prerequisite data. This post outlines the problem and the solution implemented to ensure data integrity during migrations.

The Problem

Our Laravel application relies on a seeding process to populate the database with initial data. One particular migration was attempting to

Read more