Latest Updates

Documenting code, one commit at a time.

PHP AI

Streamlining Tenant AI Usage Reporting in Breniapp

Introduction

Reporting on tenant AI usage is crucial for understanding resource consumption and billing in Breniapp, a multi-tenant application. However, overly complex reports can obscure key metrics. We recently simplified the tenant AI usage table to focus on the most essential data points.

The Problem

The original tenant AI usage table contained redundant information and unnecessary

Read more
PHP PostgreSQL

Improving Data Handling and Stability in Landing

The landing project focuses on creating engaging user experiences. Recent work has concentrated on refining data storage and ensuring application stability.

Addressing PostgreSQL DISTINCT Errors with JSONB

A recurring issue involved PostgreSQL's inability to efficiently use DISTINCT with JSON columns. This manifested as numerous daily errors, particularly within the Campaign editor's

Read more
PHP AI

Enhancing Content Chat with AI Model Overrides in Breniapp

Introduction

The Breniapp project is enhancing its content chat feature, providing superadmins with more control over AI model selection during content generation. This feature aims to offer greater flexibility and customization in AI-driven content creation.

The Feature: AI Model Overrides

The core of this update lies in the introduction of AI model overrides within the content chat

Read more

Recovering PostgreSQL Report Functions in Laravel

Introduction

When performing database migrations, especially in multi-tenant environments, it's crucial to ensure all aspects of the schema are correctly applied to each tenant. This post explores a scenario in a Laravel application where PostgreSQL functions were unintentionally dropped during a tenant migration and how they were recovered.

The Problem: Silently Missing Functions

Read more
PHP PostgreSQL

Seeding PostgreSQL: Avoiding SQL Escaping Issues

When working with databases, especially PostgreSQL, ensuring data integrity during the seeding process is crucial. A common pitfall involves SQL escaping issues, particularly when dealing with special characters within string values.

The Problem: Escaping Hell in Seed Migrations

Initial attempts to populate a database often involve seed migrations. These migrations contain SQL statements to

Read more

Multi-Tenancy Done Right: Tenant-Specific Database Tables

When building a multi-tenant application with Laravel and PostgreSQL, handling data isolation is crucial. One effective approach is to use separate database schemas for each tenant. This provides a high level of isolation, ensuring that data from different tenants remains completely separate. Let's explore how this works in practice within the Reimpact platform.

The Problem: Shared Tables

Read more

Ensuring Data Integrity: Restoring Global Rates in a Laravel Application

Introduction

Maintaining data accuracy across all tenants in a multi-tenant application can be challenging. This post explores how to correct an issue where global rates were inadvertently made tenant-specific in a Laravel application, impacting data integrity.

The Problem: Tenant-Scoped Rates

Originally, the rates table was intended to store global rates applicable to all tenants.

Read more