Latest Updates

Documenting code, one commit at a time.

Multi-Tenancy in Laravel with PostgreSQL Schemas: A Migration Story

Introduction

Row-level filtering is common for multi-tenancy, but what if you need stronger isolation? At Reimpact's platform, we're migrating towards PostgreSQL schemas to achieve true tenant separation, leveraging Laravel, Filament, and the middleware pattern.

This post details our approach to dynamically setting the PostgreSQL search_path for each tenant, ensuring data isolation and

Read more

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 PostgreSQL

PostgreSQL Case Sensitivity and Dashboard Calculations in Reimpact Platform

Introduction

When developing dashboards that rely on precise data comparisons in PostgreSQL, case sensitivity can be a silent but critical issue. This post examines a case in the Reimpact platform where case sensitivity in unit comparisons caused dashboard calculations to return incorrect results, and how it was resolved.

The Problem: Case-Sensitive Comparisons

PostgreSQL, by default,

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
PHP CSS UI

The Case for Subtlety: When to Tone Down UI Elements

Sometimes, the most effective UI changes are the ones that make things less noticeable. Consider a 'reset chat' button. Initially, it might seem intuitive to style it with a prominent color like red, signaling a potentially destructive action. However, in practice, this can create unnecessary visual noise and even user anxiety.

The Problem with Red

Red is often associated with errors,

Read more
PHP CSS UI

Unifying Chat Components for a Consistent Onboarding Experience

This post explores the recent efforts to unify the visual style of chat components within the Breniapp/brenia project, focusing on creating a consistent onboarding experience for users.

The Goal

The primary objective was to standardize the look and feel of various chat components, including Brand Assistant, Brand Section, Skeleton Section, and QA chats.

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 refactor UI

Streamlining Credit Settings in Breniapp

Introduction

In the Breniapp project, we've recently refactored the credit settings page to simplify the user interface and improve maintainability. The primary goal was to remove redundant configuration options and consolidate credit management under a more centralized approach.

The Old Approach: Redundancy and Confusion

Previously, the credit settings page exposed pack_size and

Read more