CCelestiallines.com

From the blog

Notes on PHP, Drupal, Laravel, React, and Next.js development.

How to Debug PHP with Xdebug in VS Code

Jun 2026

How to Debug PHP with Xdebug in VS Code

Setting up Xdebug 3 with VS Code end to end: php.ini config, the PHP Debug extension, launch.json, debugging inside Docker/DDEV and WSL specifically, conditional breakpoints and logpoints, and the connection issues people actually hit.

Read more →
How to Build a REST API in Laravel

Jun 2026

How to Build a REST API in Laravel

Building a real Laravel REST API: versioned routes, API Resources for response shaping, Form Request validation, consistent error handling, Sanctum token authentication vs Passport, rate limiting, avoiding N+1 queries, testing, and documentation.

Read more →
Drupal JSON:API: A Beginner's Guide to Headless Drupal

Jun 2026

Drupal JSON:API: A Beginner's Guide to Headless Drupal

A practical guide to headless Drupal with JSON:API: when to choose it over GraphQL or a custom controller, the query syntax, the computed-field and missing-include gotchas that trip up first integrations, writing content, fetching media, and locking it down for production.

Read more →
How to Fetch Data in React: useEffect vs React Query

Jun 2026

How to Fetch Data in React: useEffect vs React Query

Fetching data in React: the full manual useEffect approach (and everything it takes to make it merely correct — loading/error state, race conditions, no caching), the same thing with React Query, mutations with automatic cache invalidation, and when plain useEffect is still the right call.

Read more →
Next.js App Router vs Pages Router: What You Need to Know

Jun 2026

Next.js App Router vs Pages Router: What You Need to Know

App Router vs Pages Router in Next.js: file convention differences, Server Components by default, persistent nested layouts, the fundamentally different data-fetching model (async Server Components vs getServerSideProps/getStaticProps), streaming with Suspense, and whether migrating an existing app is worth it.

Read more →
Laravel Queues and Jobs: A Practical Guide

Jun 2026

Laravel Queues and Jobs: A Practical Guide

Laravel queues in practice: creating and dispatching jobs, choosing a driver (database vs Redis vs SQS), running workers safely in production, job batching with progress tracking, job middleware for rate limiting, and handling failures and retries correctly.

Read more →