Latest Updates

Documenting code, one commit at a time.

JavaScript LinkedIn

Refactoring LinkedIn Share Post Generation for a Personal Touch

This post details a small but important change in how we generate content for sharing on LinkedIn, focusing on aligning the tone with the platform's user experience.

The Goal

The primary goal was to shift the voice of automatically generated LinkedIn share posts to a first-person perspective. Since the posts are published from the user's profile, using "I" instead of third-person references

Read more

Enhancing User Engagement: Implementing LinkedIn Share for Landing Pages

Introduction

We recently added a "Share on LinkedIn" feature to our landing page project, devlog-ist/landing. The goal was to increase user engagement and expand the reach of user portfolios by enabling seamless sharing on LinkedIn. This post details the implementation process, covering AI-powered post generation, direct publishing via the LinkedIn API, and considerations for different user

Read more

Content Negotiation for AI Agents: Serving Markdown

Our application now supports content negotiation to better serve AI agents and LLMs. We've added the ability to return Markdown instead of HTML when requests include the Accept: text/markdown header.

This enhancement allows AI agents to directly consume the raw Markdown content of our posts, simplifying parsing and improving efficiency.

The Problem

Previously, our application served HTML

Read more
PHP Java MySQL

Tenant-Centric Quota Management with Manual Overrides

Managing resource quotas across multiple tenants can be challenging, especially when the need for manual overrides arises. This post explores how we refactored our token usage service to implement a tenant-centric quota system with support for manual adjustments.

The Challenge

Previously, our token quota management was user-based. This created inefficiencies when the context already provided

Read more

Enhancing Application Stability with Strategic Cache Invalidation

Introduction

Maintaining data consistency across distributed systems and applications often requires careful management of caches. Stale data in caches can lead to unexpected behavior and inconsistencies. We recently implemented several enhancements to our application's caching strategy, focusing on proactive invalidation to ensure data accuracy and prevent outdated information from impacting

Read more

Improving AI Usage Tracking with Refactored Queries

Optimizing AI Token Usage Queries

We've recently refactored and optimized our AI token usage tracking to improve performance and maintainability. This involved extracting duplicated queries and enhancing user filtering.

The Changes

The primary focus was on improving the efficiency of retrieving daily and monthly tenant AI usage data. This was achieved through two key changes:

Read more

Implementing Payment Provider Abstraction with Feature Flags

When integrating multiple payment providers into an application, managing the transition and allowing for flexibility becomes crucial. This post explores how to introduce an abstraction layer combined with feature flags to handle different payment providers, such as Stripe and Paddle.

The Challenge

Directly integrating a payment gateway like Stripe can tightly couple the payment logic within

Read more