Блог

Думки, досвід і рішення про розробку та не тільки.

laravel-open-graph-inertia-ssr-linkedin-telegram-preview-cover.png

Laravel Open Graph + Inertia SSR: Why LinkedIn Preview Behaved Differently from Telegram

In ICanUp, Telegram already showed the Post cover, title, and description correctly, while LinkedIn produced an incomplete or incorrect preview. I audited the server-rendered Open Graph tags, the LinkedInBot response, image URL and metadata, duplicate head tags, and platform caching. The case showed why a preview working in one messenger does not prove the social metadata contract is complete.

4
jira-gitlab-merge-request-status-automation-cover.png
CI/CD

Jira + GitLab Merge Requests: How I Automated Issue Statuses Without Breaking the Workflow

In ICanUp, I wanted Jira issues to move automatically when a GitLab Merge Request was created and merged, but I did not want automation to own the entire issue lifecycle. I explain why I kept only two automatic transitions, how target branch and current status guards protect the workflow, and why repeated webhook events must remain idempotent.

7
docker-build-cache-almost-30-gb-cover.png
Docker

How Big Can Docker Build Cache Get? Mine Reached Almost 30 GB

While starting AVN Documentation AI locally, I almost ran out of disk space. Docker Build Cache had grown to about 29 GB, images occupied more than 31 GB, and the filesystem reached 99-100% usage. I show how I found the cause, why a conservative prune barely helped, and how I safely reclaimed tens of gigabytes.

20
laravel-breadcrumblist-json-ld-real-blog-cover.png

Laravel BreadcrumbList JSON-LD in a Real Blog

In ICanUp, visible breadcrumbs and BreadcrumbList JSON-LD describe the same page hierarchy. I show how I connect navigation with structured data, generate sequential positions, use localized canonical URLs, and avoid creating a separate SEO hierarchy on top of application breadcrumbs.

21
laravel-delayed-queue-jobs-stale-scheduled-publication-main.png
Laravel

Laravel Delayed Queue Jobs: How to Prevent Stale Jobs After Rescheduling Publication

In ICanUp, a delayed IndexNow job is scheduled for a future published_at, but the publication time, slug, or public state may change before the job runs. Using real Laravel code, I show how the job rechecks current state, rejects stale scheduling, and generates current URLs instead of trusting an old snapshot.

31
laravel-db-aftercommit-queue-jobs-main.png
Laravel

Laravel DB::afterCommit() and Queue Jobs: Why a Job Should Not Run Before the Commit

In ICanUp, I run IndexNow notifications and related queue operations only after a successful database commit. Using real Laravel code, I show why dispatching work inside a transaction can expose uncommitted state or survive a rollback, and how DB::afterCommit() creates a clear boundary between database state and external side effects.

36
php-85-pipe-operator-laravel-real-code.png
PHP

PHP 8.5 Pipe Operator in Real Laravel Code: Where |> Actually Improves Readability

While building the IndexNow integration in Laravel, I used PHP 8.5's Pipe Operator to clean and normalize a URL list through several transformations. Using real production code, I compare |> with nested function calls and show where the pipeline syntax improves readability and where I would avoid it.

27