Latest Updates

Documenting code, one commit at a time.

Fixing Alpine.js x-for Errors in SVG on Laravel Landing Pages

When building interactive landing pages with Laravel and Alpine.js, you might encounter unexpected issues when using Alpine.js directives inside SVG elements. Specifically, the <template x-for> loop can cause errors due to how browsers handle foreign objects within SVG. This post details a solution to this problem.

The Problem: <template x-for> Inside SVG

SVG elements have their own

Read more
Laravel PHP OAuth

Limiting OAuth Providers in Laravel

Working on the devlog-ist/landing project, we're refining the authentication flow. The goal is to streamline user registration and login, particularly for non-developers who might be contributing recommendations. We've adjusted the available OAuth providers to match user roles.

Previously, both GitHub and LinkedIn were presented as default options on the login and registration pages.

Read more

Streamlining GitHub Activity Syncing with Date Range Selection

Efficiently managing and synchronizing data is crucial for application performance. Recently, we enhanced the GitHub activity syncing process in our application by replacing a single-date picker with a more flexible date range calendar. This improvement, combined with a significant refactor, streamlines the synchronization logic and enhances user experience.

Enhanced Date Range Selection

Read more
PHP Laravel OAuth

Enhancing User Security in Laravel OAuth Implementations

OAuth provides a streamlined approach to user authentication, but it's crucial to implement security measures that protect user data and prevent unauthorized access. A common scenario involves social login, where users authenticate via third-party providers like GitHub or LinkedIn.

The Problem: Unregistered Users and Automatic Registration

A potential vulnerability arises when users not yet

Read more

Enhancing GitHub OAuth Flow: Preserving User Permissions

Introduction

This article discusses a common issue in applications using GitHub OAuth for authentication: inadvertently overwriting a user's existing token with one that has fewer permissions. We'll explore how to ensure the application preserves the user's original, broader-scoped token when requesting narrower scopes during subsequent logins.

The Problem

Many applications use GitHub

Read more
C Security Debugging

Eliminating False Positives in Audit Logs for Generic File Paths

When auditing file system operations within an application, a common challenge arises when dealing with generic or placeholder file paths. These paths, often used during testing or initial setup, can trigger false positive alerts in audit logs, obscuring genuine security concerns. A recent update addresses this issue, enhancing the accuracy and reliability of our auditing process.

Read more

Fixing Placeholders in Our Application

Sometimes, during development, placeholder values can inadvertently slip into the final application. This post discusses how we addressed such an issue in our vlog index page, specifically focusing on unresolved :app_name placeholders.

The Problem: Unresolved Placeholders

Unresolved placeholders are problematic because they present a poor user experience and can sometimes expose internal

Read more

The Hidden Cost of Unused Placeholder Fixes

We've all been there: a quick fix for an apparent issue, like an unresolved placeholder in a user-facing section. But what happens when the fix itself introduces more complexity than it resolves?

Recently, we addressed an issue where the :app_name placeholder wasn't being correctly rendered on the /earn hero section of our application.

Read more

The Pitfalls of Premature Optimization

Developers often strive for efficiency, but sometimes, optimizing too early can lead to more problems than solutions.

The Danger of Early Optimization

Optimizing code before understanding its performance bottlenecks can waste time and introduce unnecessary complexity. It's tempting to micro-optimize, but it's crucial to identify the actual performance-critical sections first.

Read more