Daffa Pramuditya Daffa P. Roles: Web Developer, Freelancer, AI Engineer [ Web DeveloperFreelancerAI Engineer Web Developer ]
[ Field Notes ]
Article Graph
Every article mapped as one network. Each line connects bugs that share a root cause or the same tech. Pick a dot and follow its lines.
102 articles · 276 connections · 9 topics
Pick a point to start, then pick a connected point to step on. Every step is drawn as a route, and its articles collect in a reading list.
Arrows pick a connected point · Enter steps · Backspace goes back
Start here
- JavaScript, DOM & Browser Animation Features That Are “Done” but Silently Dead: JS↔REST Contract Drift
-
CSS Layout, Overflow & Cascade
overflow-y: autoonbodySilently Kills Everyposition: sticky? The Body Became a Scroll Container - Tailwind v4 Build-Time Pitfalls Tailwind v4 Compiles at Build Time, My New Classes (pl-16, h-7) Did Nothing in Production
- Caching & CDN: Deployed, but Nothing Changed Deployed + Cleared WP Rocket but the Public Still Sees the Old Version? Cloudflare Is Caching HTML for a Year
- WordPress & PHP in Production Adding a require_once to a Live functions.php Locked Me Out of wp-admin, and the Recovery Tool With It
- Elementor: Under the Page Builder's Hood Elementor Changes Not Showing Even After Clearing Cache, The Real Cause
-
Shopify, Liquid & the Theme CLI
Deleted a Section From Shopify
templates/index.jsonbut It Keeps Coming Back?orderandsectionsAre Coupled - Next.js & React in Production Next.js Environment Variable Undefined in Production? Here's Why
- Technical SEO, Redirects & Migrations Auditing a 3-Hop 301 Redirect Chain That Was Hiding Across Four Mechanisms
Related articles
Reading route
Browse by topic
- JavaScript, DOM & Browser Animation 60 articles
- CSS Layout, Overflow & Cascade 36 articles
- Tailwind v4 Build-Time Pitfalls 11 articles
- Caching & CDN: Deployed, but Nothing Changed 19 articles
- WordPress & PHP in Production 69 articles
- Elementor: Under the Page Builder's Hood 25 articles
- Shopify, Liquid & the Theme CLI 13 articles
- Next.js & React in Production 47 articles
- Technical SEO, Redirects & Migrations 18 articles
All points as a list
JavaScript, DOM & Browser Animation
-
JavaScript, DOM & Browser Animation · July 16, 2026 · 5 min read
ctx.drawImageThrowsInvalidStateErrorin Production but Not Locally? One Frame Is a 404Frame-sequence animation stuck and preloader frozen at 100 percent? drawImage throws InvalidStateError because one frame 404s into a broken Image. Here is the cause and fix.
-
JavaScript, DOM & Browser Animation · July 6, 2026 · 4 min read
Refund Fails With 422 “amount is required” Though the Docs Say It's Optional, Always Sendamount.valueA refund fails with 422 'amount is required' though the docs say it's optional. Always send amount.value explicitly, and treat the network call as fallible.
-
JavaScript, DOM & Browser Animation · June 22, 2026 · 3 min read
Scroll-Reveal Content Stays Invisible When IntersectionObserver Never FiresA hero image and product cards stayed permanently hidden because the IntersectionObserver sometimes never triggered the reveal. The fix: never fully hide, degrade to visible in three layers.
-
JavaScript, DOM & Browser Animation · July 16, 2026 · 4 min read
Custom SplitText Renders a Literal&On Screen? You Are ReadinginnerHTMLCustom SplitText shows a raw & instead of & in a heading? The innerHTML getter re-encodes text. Replace regex-on-innerHTML with a DOM walk of childNodes.
-
JavaScript, DOM & Browser Animation · July 17, 2026 · 5 min read
Square Wallet Button Keeps Coming Back Despitedisplay:none? The SDK Injects It Late, Fight It With MutationObserverSquare wallet button keeps reappearing despite CSS display:none? The SDK injects it asynchronously after load. Remove it with MutationObserver, not CSS.
-
JavaScript, DOM & Browser Animation · July 6, 2026 · 4 min read
A Google Sign-In That Doesn't Verify the JWT Signature = Auth Bypass: Anyone Can Claim to Be AnyoneA Google sign-in that doesn't verify the JWT signature = auth bypass: anyone can forge a victim's email. Verify the signature, aud, iss, exp on the server.
-
JavaScript, DOM & Browser Animation · July 13, 2026 · 4 min read
Inline Video Won't Autoplay on iPhone Safari? H.264 High Profile Is Rejected and theautoplayAttribute Is BlockedProduct loop video won't autoplay on iPhone but works on Android? H.264 High profile is rejected and autoplay is blocked. Re-encode to Main plus IntersectionObserver.
-
JavaScript, DOM & Browser Animation · July 16, 2026 · 5 min read
View Transitions API Flashes and Animates on Every Back Button? The Opt-in Meta Hits Every NavigationView Transitions API flashing on ordinary navigation and the Back button? The opt-in meta plus default CSS hits every navigation including bfcache. Remove both.
-
JavaScript, DOM & Browser Animation · June 19, 2026 · 3 min read
wp_localize_script Overwrites the Global (It Doesn't Merge), How It Wiped My Search IndexSearch overlay returns zero results in production but works locally? It turns out wp_localize_script reassigns the entire global object, deleting data I'd set in the header. Here's the cause and the correct fix.
-
JavaScript, DOM & Browser Animation · June 18, 2026 · 3 min read
ScrollTrigger Below the Hero Breaks After Assets Load? GSAP pin vs CSS stickyEvery scroll animation below a pinned hero suddenly misfires once the images finish loading. The cause is GSAP's pin-spacer changing the document height. The fix: swap pin for CSS sticky.
-
JavaScript, DOM & Browser Animation · July 5, 2026 · 4 min read
Buttons “Dead” Only on the Homepage: A Global Click Handler in a JS File Not Enqueued ThereButtons 'dead' only on one page because the global click handler lives in a JS file not enqueued there. Audit your enqueue scope.
-
JavaScript, DOM & Browser Animation · July 3, 2026 · 4 min read
Features That Are “Done” but Silently Dead: JS↔REST Contract DriftFour 'done' features were silently dead because the JS still called REST endpoints/selectors the server had changed. Only end-to-end testing catches it.
-
JavaScript, DOM & Browser Animation · June 25, 2026 · 3 min read
Lenis in the <head> Threw 'document.body is null' and Blocked Render, Move It to the FooterAdding Lenis smooth scroll threw a 'document.body is null' TypeError plus a render-blocking delay. The cause: a head script running before the body exists. One move fixes both.
-
JavaScript, DOM & Browser Animation · July 9, 2026 · 4 min read
ScrollTriggerpin: true+scrubSection Jitters on Mobile but Desktop Is Silky? Lenis and the URL Bar Are Fighting Over ScrollA pinned, scrubbed ScrollTrigger section jitters on mobile while desktop is smooth? Skip initializing Lenis on touch devices and set ignoreMobileResize: true.
-
JavaScript, DOM & Browser Animation · July 6, 2026 · 4 min read
new FormData(...)Throws “not of type HTMLFormElement”: Your Selector Grabbed the Wrapper DIV, Not the FORMnew FormData(...) throws 'not of type HTMLFormElement' because your selector grabbed the wrapper DIV, not the FORM. Select the form by #id.
-
JavaScript, DOM & Browser Animation · June 22, 2026 · 3 min read
An Inline onclick stopPropagation Silently Broke Every Delegated HandlerA favorite button did nothing, no request, no error. The culprit was an inline onclick with stopPropagation killing the delegated handler on document. Here's how to prove it and fix it.
-
JavaScript, DOM & Browser Animation · July 9, 2026 · 4 min read
Card Stuck in Its:hoverState on a Playwright Mobile Viewport? That's a Phantom Hover From the Virtual Mouse, Not a Site BugA card stayed stuck in its hover state on a touch viewport in Playwright. The virtual mouse parks after click(). Fix: page.mouse.move(0,0) before visual asserts.
CSS Layout, Overflow & Cascade
-
CSS Layout, Overflow & Cascade · July 15, 2026 · 4 min read
max-height: 0Accordion Still Leaks a Sliver? Padding Sneaks Throughoverflow: hiddenCollapsed accordion with max-height 0 still shows a sliver and takes vertical space? overflow: hidden clips at the padding-box, so vertical padding leaks. Zero the padding when closed.
-
CSS Layout, Overflow & Cascade · June 19, 2026 · 4 min read
A Nested<a>Inside Another<a>Silently Collapsed My Card GridArticle cards collapsed into a one-character-wide column, every title word wrapping onto its own line. The cause wasn't CSS, it was a nested anchor the browser auto-unwrapped. Here's the fix with a data-href span.
-
CSS Layout, Overflow & Cascade · July 1, 2026 · 4 min read
Your CSS Class Toggle Won't Show the Element? The HTMLhiddenAttribute Isdisplay:noneA CSS class toggle won't reveal an element because it has the HTML hidden attribute (UA display:none). Manage the attribute in JS instead of fighting it with CSS.
-
CSS Layout, Overflow & Cascade · June 20, 2026 · 3 min read
A Duplicatestyle=Attribute on One Element, The Browser Silently Keeps Only the FirstA logo filled an entire card at its natural PNG size even though I'd set width, height, and object-fit. The cause: two style= attributes on one element, and the browser uses only the first.
-
CSS Layout, Overflow & Cascade · July 1, 2026 · 4 min read
Gradient Text Withbackground-clip: textClips the Descenders (g, p, q, y), Here's the FixGradient text with background-clip: text clips the tails of g, p, q, y because line-height is too tight. Fix: inline-block + padding-bottom.
-
CSS Layout, Overflow & Cascade · July 16, 2026 · 4 min read
A ~24px White Strip Above a Full-Bleed Hero in a Block Theme? It's--wp--style--block-gapA thin white strip above a full-bleed hero in a WordPress block theme? It's a margin from --wp--style--block-gap leaking into main. Zero margin-block-start on the chain.
-
CSS Layout, Overflow & Cascade · July 9, 2026 · 4 min read
SVG Icons Squished, Circles Rendering as Ellipses in Some Slots?preserveAspectRationoneStretches Non-UniformlySVG icons squished, circles rendering as ellipses, but only in some slots? preserveAspectRatio none from the export is to blame. Remove it, keep the viewBox.
-
CSS Layout, Overflow & Cascade · July 8, 2026 · 4 min read
Shortcode Layout Insidedisplay: gridExplodes on the Live Site?wpautopInjects Empty<p>Tags as Phantom Grid ItemsShortcode grid broken on the live site but fine in the editor? wpautop injects empty p tags that become phantom grid items. Compact output, strip the tags.
-
CSS Layout, Overflow & Cascade · June 23, 2026 · 4 min read
A Page-Scoped CSS Override Silently Beat My 'Global' Component on SpecificityAfter moving checkbox styles into a global component stylesheet, the custom state never appeared on /checkout. The cause was an older, more specific selector. Here's how to trace it in DevTools.
-
CSS Layout, Overflow & Cascade · July 2, 2026 · 4 min read
Two Equal-Height Columns Without JavaScript: Grid Stretch + Flex DistributeTwo equal-height columns without JavaScript: let Grid stretch both, then use flex column + justify-between on the lighter side. No height measuring.
-
CSS Layout, Overflow & Cascade · July 1, 2026 · 4 min read
A GoHighLevel Form Goes Invisible (White-on-White) After Flipping the Theme Dark↔LightA DOM-injected (not iframe) GoHighLevel form goes invisible (white-on-white) after flipping the theme dark↔light. Why it happens and how to fix it.
-
CSS Layout, Overflow & Cascade · July 3, 2026 · 4 min read
Swapped One Color--tokenbut the Old Color Persists: Hardcoded Hex in JS Bundles & SVGSwapping one color --token but the old color persists, because of hardcoded hex in JS bundles and SVG attributes. How to audit it properly.
-
CSS Layout, Overflow & Cascade · July 13, 2026 · 4 min read
Product Cards Shrink to 240px on Desktop? Adisplay:noneGrid Item Breaks Column Auto-PlacementProduct-card area rendering tiny at 240px even though the CSS looks fine? A display:none sidebar drops out of grid auto-placement. Gate the columns with :has().
-
CSS Layout, Overflow & Cascade · July 2, 2026 · 4 min read
Leaflet Map Controls Leak Above Your Sticky Header, Fix It With a Stacking ContextLeaflet map controls leak above your sticky header due to high vendor z-index. Fix: box the map in a stacking context with isolation: isolate.
-
CSS Layout, Overflow & Cascade · July 13, 2026 · 5 min read
overflow-y: autoonbodySilently Kills Everyposition: sticky? The Body Became a Scroll ContainerScrollytelling sections refuse to pin and render blank? overflow-y auto on body kills position sticky. Switch to overflow-y visible plus overflow-x clip.
-
CSS Layout, Overflow & Cascade · July 2, 2026 · 4 min read
overflow-x: hiddenKillsposition: stickyon iOS Safari, Switch tooverflow-x: clipoverflow-x: hidden silently breaks position: sticky on iOS Safari. Switch to overflow-x: clip, which crops without creating a scroll container.
Tailwind v4 Build-Time Pitfalls
-
Tailwind v4 Build-Time Pitfalls · July 2, 2026 · 4 min read
Tailwind v4 Preflight Kills WordPressalignleft/alignright, Restore It Withoutclear:bothon HeadingsTailwind v4 preflight kills WordPress alignleft/alignright. How to restore it, without clear:both on headings, which breaks editor parity.
-
Tailwind v4 Build-Time Pitfalls · July 3, 2026 · 4 min read
Tailwind v4@sourceResurrects Classes You Already Deleted, Exclude the Seed/Import FolderAn over-broad Tailwind v4 @source scans a seed/import folder and resurrects classes you already deleted. Exclude it with @source not.
-
Tailwind v4 Build-Time Pitfalls · June 22, 2026 · 4 min read
Tailwind v4 Compiles at Build Time, My New Classes (pl-16, h-7) Did Nothing in ProductionA theme shipping a precompiled tailwind-compiled.css doesn't compute Tailwind in the browser. Any class not already in that file does nothing. Here's how to debug it and the fix.
-
Tailwind v4 Build-Time Pitfalls · June 21, 2026 · 4 min read
Tailwind v4 Tree-Shook My CSS Variable → Text Shipped Invisible White in ProductionHero eyebrow text shipped WHITE instead of gold, only in production. The variable resolved to nothing and inherited #fff. The cause: Tailwind v4 tree-shaking an @theme var no utility consumed.
-
Tailwind v4 Build-Time Pitfalls · July 10, 2026 · 4 min read
Text Withtext-[oklch(0.97_0.01_260/0.80)]Renders With No Color in Tailwind v4? The Trailing Zero Means the Class Never CompilesText styled with an arbitrary OKLCH alpha class renders with no color in Tailwind v4? A trailing zero makes the class miss the generated CSS. Fix: theme tokens.
-
Tailwind v4 Build-Time Pitfalls · July 14, 2026 · 4 min read
next/fontNot Applying in Tailwind v4?var()Inside@themeResolves at Build Time, Not RuntimeYour next/font font never applies in Tailwind v4 even though the variable is in @theme? @theme resolves at build time, so the runtime var() is empty. Here is the fix.
-
Tailwind v4 Build-Time Pitfalls · July 3, 2026 · 4 min read
Utility Classes Lose to.prose-dark h4by Specificity, Wrap Prose Rules in:where()Utility classes lose to .prose-dark h4 by specificity, so overrides don't apply. Wrap prose rules in :where() to zero out their specificity.
Caching & CDN: Deployed, but Nothing Changed
-
Caching & CDN: Deployed, but Nothing Changed · June 26, 2026 · 4 min read
“Works on My Machine”, Because You Checked as Admin: The Public Render Differs From the Logged-in OneA deploy looks fixed when checked as admin, but the public is still broken, WP Rocket skips the cache for logged-in users. How to verify the public render without logging out.
-
Caching & CDN: Deployed, but Nothing Changed · July 1, 2026 · 4 min read
wp-admin Acting Haunted (Expired Nonce, AJAX Not JSON, Sidebar Vanishing)? That's CDN/Edge Cache, Not a Theme Bugwp-admin acting haunted (expired nonces, AJAX returning non-JSON, vanishing sidebar)? It's almost always CDN/edge cache rules, not a theme bug. How to spot it.
-
Caching & CDN: Deployed, but Nothing Changed · June 19, 2026 · 4 min read
WP Rocket 'Delay JavaScript Execution' Breaks Your Header Dropdown, Correct Code That Never RunsDropdown works on other pages but dies on the homepage, and the console says the handler is null? The cause isn't your code, it's WP Rocket's Delay JavaScript Execution. Here's how to diagnose and fix it.
-
Caching & CDN: Deployed, but Nothing Changed · June 18, 2026 · 3 min read
Mobile Menu & Dropdowns Break After Enabling WP Rocket? The RUCSS TrapAfter turning on Remove Unused CSS in WP Rocket, your mobile drawer, dropdowns, and modals suddenly break. The cause: RUCSS strips CSS for states that only appear after interaction. Here's the fix.
-
Caching & CDN: Deployed, but Nothing Changed · June 30, 2026 · 4 min read
Checking a WordPress Site WithcurlReturns Empty Placeholders? WP Rocket Strips Content for Unknown UAsChecking a WordPress site with curl returns empty placeholders? WP Rocket strips content for unknown user-agents. Use a Googlebot UA or a real browser.
-
Caching & CDN: Deployed, but Nothing Changed · July 1, 2026 · 5 min read
Deployed + Cleared WP Rocket but the Public Still Sees the Old Version? Cloudflare Is Caching HTML for a YearDeployed and cleared WP Rocket but the public still sees the old version? Cloudflare caches HTML at the edge with a long TTL. Why purging origin alone isn't enough.
-
Caching & CDN: Deployed, but Nothing Changed · July 7, 2026 · 4 min read
Editing a Theme's Source JS Changes Nothing in the Browser? The Enqueue Silently Loads a Stale.min.jsFromdistEditing a theme's source JS but the browser never changes? The enqueue prefers a stale .min.js from dist. Rebuild after each edit and enable SCRIPT_DEBUG.
WordPress & PHP in Production
-
WordPress & PHP in Production · June 22, 2026 · 3 min read
Two add_rewrite_rule Calls With the Same Regex Don't Chain, the Second Overwrites the FirstA 'try the CPT first, fall back to post' pattern 404'd the CPT slugs. The reason: WordPress keys rewrite rules by their regex, so an identical regex overwrites rather than chains. Here's the fix.
-
WordPress & PHP in Production · July 16, 2026 · 5 min read
Settings Field Set to0Snaps Back to Default?array_filter()Drops Your Legit ZeroSettings field set to 0 reverts to default on save? array_filter's default callback treats 0 as falsy. Use an explicit callback that strips only empty strings and null.
-
WordPress & PHP in Production · July 8, 2026 · 4 min read
Built a Custom Gutenberg Block but It Never Shows Up in the Inserter? The Site Runs Classic EditorCustom Gutenberg block missing from the client's editor? The site runs Classic Editor, so there is no block inserter. Fix: a shortcode plus a TinyMCE button.
-
WordPress & PHP in Production · June 25, 2026 · 3 min read
Adding a require_once to a Live functions.php Locked Me Out of wp-admin, and the Recovery Tool With ItI uploaded a functions.php that require_once'd a new inc/*.php file, but I hadn't uploaded the new file yet. The result: a fatal error, 'critical error on this website', and the File Manager plugin I deploy with went down too. Here's how to prevent and recover from it.
-
WordPress & PHP in Production · June 22, 2026 · 3 min read
strtoupper Turned a WordPress Category Chip Into 'BANKING & NEOBANKS'WordPress term names arrive HTML-entity-encoded in 'display' context. Run strtoupper over one and '&' becomes the invalid '&'. Here's the root cause and the fix.
-
WordPress & PHP in Production · June 25, 2026 · 4 min read
Smart Quotes (“ ”) Sneaking Into PHP Took Down the Site: A Baffling Parse ErrorA pasted snippet carried Unicode smart quotes instead of ASCII, and PHP threw a parse error / white screen. How to detect and prevent it.
-
WordPress & PHP in Production · June 29, 2026 · 4 min read
Your PHP Filter Runs but the Page Is Empty? A Theme Missingpage.php/search.phpSilently Falls toindex.phpYour PHP filter runs but the page is empty? A theme missing page.php/search.php silently falls back to an index.php placeholder. How to diagnose which template actually loaded.
-
WordPress & PHP in Production · June 18, 2026 · 3 min read
update_post_meta Silently Strips Your JSON Slashes (and Hides the Bug for Days)Saved an array to post meta with wp_json_encode but json_decode keeps returning null? WordPress is quietly stripping your JSON backslashes. Here's why, and the one-line fix.
-
WordPress & PHP in Production · June 30, 2026 · 4 min read
Naming a 2nd WP_Query$more/$pageCollides With a WordPress Global, a Fatal That Masquerades as Out-of-MemoryNaming a second WP_Query $more or $page collides with a WordPress global that setup_postdata() overwrites, a fatal that masquerades as out-of-memory. How to trace it.
-
WordPress & PHP in Production · June 25, 2026 · 4 min read
Reusing$xSilently Wiped the Content When Porting React to PHPReusing one variable $x for both candidate and final value let the fallback assignment silently clobber real data while porting React to PHP. No error, just wrong output.
-
WordPress & PHP in Production · June 25, 2026 · 4 min read
Class 'WP_List_Table' not found: How One Always-Loaded File 500s Your Entire FrontendAfter a plugin upload, every WordPress frontend request returned HTTP 500 with a fatal 'WP_List_Table not found'. php -l passed yet it still blew up. Here's the cause and how to load it correctly.
-
WordPress & PHP in Production · July 16, 2026 · 4 min read
wp_mail()Silently Fails and Zero Emails Arrive? Your Managed Host Disabled PHPmail()wp_mail() silently failing with no email and no error? Your managed host disabled PHP's mail() function. Configure SMTP and save leads to the database first.
-
WordPress & PHP in Production · June 26, 2026 · 4 min read
$wpdb->prepare()With an Array Param Returns Empty on WordPress 7.0Passing an array param to $wpdb->prepare() makes get_col() return empty on WordPress 7.0. How to build a safe IN clause with esc_sql.
-
WordPress & PHP in Production · June 28, 2026 · 5 min read
A Custom Post Type at the Root URL (/title/) Falls Through to the Homepage, Fix It With Per-Slug Rewrite RulesPutting a custom post type at the root URL via the request filter falls through to the homepage. Fix: per-slug rewrite rules + auto-flush, fully dynamic.
-
WordPress & PHP in Production · July 7, 2026 · 4 min read
xmlrpc.phpStill Returns 200 Afteradd_filter('xmlrpc_enabled', '__return_false')? That Filter Does Not Kill XML-RPCxmlrpc.php still answers system.listMethods after xmlrpc_enabled is false? The filter only gates auth calls. Empty xmlrpc_methods and block the endpoint.
-
WordPress & PHP in Production · July 7, 2026 · 5 min read
The EUR/USD Currency Switch Did Nothing? The Prices Were Stored as Pre-Formatted Strings Like'€450'Flipping a EUR/USD currency toggle changed nothing? The prices were stored in post meta as pre-formatted strings. Migrate to numerics and one formatter helper.
-
WordPress & PHP in Production · June 25, 2026 · 4 min read
Theget_theme_mod($id, $fallback)Trap: The Fallback Arg Silently Overrides Your Registered Defaultget_theme_mod's second fallback arg flows through the theme_mod_{id} filter and overrides the default you registered in the Customizer. Why, and how to pass a fallback correctly.
-
WordPress & PHP in Production · June 25, 2026 · 4 min read
PHP 8 Fatal: 'Attempt to read property on array' When a Getter Returns an ArrayCode wrote $obj->key but the getter returns an array, in PHP 8 that's a fatal 'Attempt to read property on array'. Plus the getter-with-no-id-key trap. Cause and fix.
-
WordPress & PHP in Production · July 8, 2026 · 4 min read
Category Pages Showed00 storiesDespite Published Posts? A Leftover Seedermeta_queryWas Excluding All Real ContentCategory pages showing 00 stories despite published posts? The theme added a seeder-only meta_query to every category query. Make it conditional or remove it.
-
WordPress & PHP in Production · July 8, 2026 · 5 min read
Saving a Post Returns a 502? Synchronousmedia_handle_sideload()Blows Past the Edge Proxy TimeoutSaving a post returns a 502 because synchronous media_handle_sideload calls blow past the edge proxy timeout. Fix: save URLs fast, import images async.
-
WordPress & PHP in Production · July 7, 2026 · 5 min read
Cleanup Script Dies WithCall to undefined functiononrequire 'wp-load.php'? Wipe WordPress via RawmysqliInsteadCleanup script fatals with Call to undefined function on require wp-load.php? Bypass the broken bootstrap: regex-parse wp-config and delete via raw mysqli.
-
WordPress & PHP in Production · June 18, 2026 · 3 min read
PHP 8 Bug: 'floatval' as a sanitize_callback Causes a Fatal Error in WordPressUsing register_post_meta with 'sanitize_callback' => 'floatval' and suddenly every post save errors out? PHP 8 rejects extra arguments to internal functions. Here's the cause and the fix.
-
WordPress & PHP in Production · July 7, 2026 · 4 min read
WordPress Importer Dies Mid-Run With Cloudflare524 A Timeout Occurred? The 100-Second Cap Is Real, Rebuild It as a Batched State MachineAn import of 465 attachments in one request died with a Cloudflare 524. The 100-second origin cap is real: split into batches of 25, persist state, resume.
Elementor: Under the Page Builder's Hood
-
Elementor: Under the Page Builder's Hood · July 8, 2026 · 5 min read
Regex Search-Replace on_elementor_dataTurns Text Widgets Into Lorem Ipsum? The JSON Is Corrupted, Elementor Falls Back to Its PlaceholderRegex on _elementor_data turned text widgets into Lorem ipsum? The JSON got corrupted; Elementor fell back to its default. Decode, walk, encode, wp_slash.
-
Elementor: Under the Page Builder's Hood · July 9, 2026 · 5 min read
Empty Button Icons and 404 Images After an Elementor Migration? The Attachment ID Remap of_elementor_dataMust Be RecursiveButton icons empty and images 404 after an Elementor migration despite an ID remap? A one-level walker misses nested media refs; the fix is a recursive walker.
-
Elementor: Under the Page Builder's Hood · July 1, 2026 · 4 min read
Rendering Page Content Without Elementor's Wrapper: Bypassingthe_content()(and Whyremove_filterFails)Rendering a page's raw content without Elementor's wrapper: bypass the_content() and reproduce the core pipeline by hand, because remove_filter isn't enough.
-
Elementor: Under the Page Builder's Hood · June 18, 2026 · 4 min read
Elementor Changes Not Showing Even After Clearing Cache, The Real CausePurged the plugin cache, the CDN, and your browser but Elementor edits still won't appear? The culprit is almost always Elementor's own internal cache. Here's how to invalidate it properly.
-
Elementor: Under the Page Builder's Hood · June 19, 2026 · 3 min read
Elementor POPOVER_TOGGLE: Saving 'yes' Gives Class e-yes, and Your Transform Never FiresSet a popover control to 'yes' to trigger a transform but got class .e-yes instead of .e-transform? The cause is POPOVER_TOGGLE's return_value. Here's how to save the right value.
-
Elementor: Under the Page Builder's Hood · July 17, 2026 · 4 min read
Elementor v4 Container Set toposition: absoluteStays in Flow? Containers Use Unprefixed ControlsSetting an Elementor v4 container to absolute leaves it in the flex flow with no error. The prefixed _position control is ignored; containers need position without an underscore.
-
Elementor: Under the Page Builder's Hood · July 17, 2026 · 4 min read
Elementor v4 Flex Containerwidth: 296pxRenders Full Width? Thecontent_widthGateElementor v4 container width 296px renders full parent width? content_width boxed ignores it. Set content_width full + flex_size none so --width is emitted.
-
Elementor: Under the Page Builder's Hood · July 8, 2026 · 4 min read
Photos Blurry on Retina but Sharp on a 1080p Monitor? Elementor'sCustomImage Size Serves a 1x AssetPhotos blurry on MacBooks and phones but sharp on a 1080p monitor? Elementor's Custom image size serves a 1x file with no srcset. Use a larger registered size.
-
Elementor: Under the Page Builder's Hood · July 9, 2026 · 4 min read
Footer Columns Overflow the Viewport on Mobile but Desktop Is Fine? LegacypxMargins in Elementor Silently Cascade to Every BreakpointFooter columns overflow the viewport on mobile while desktop looks perfect? Legacy px margins in Elementor cascade to every breakpoint. Reset them, stack at 100%, lay out with gaps.
-
Elementor: Under the Page Builder's Hood · July 8, 2026 · 4 min read
Elementor Sections Always 20px Narrower Than the Figma Design? Containers Ship a Defaultpadding: 10pxElementor layout always 20px narrower than the Figma design? Every container ships a default 10px left-right padding. Zero it out in Site Settings Layout.
Shopify, Liquid & the Theme CLI
-
Shopify, Liquid & the Theme CLI · July 10, 2026 · 4 min read
Pushing to Shopify Wiped the Client's Admin-Uploaded Image? Pulltemplates/*.jsonBefore You EditA Shopify push to templates/*.json reverted the client's uploaded image to a Liquid fallback. Pull the file with --nodelete before editing, then push on top.
-
Shopify, Liquid & the Theme CLI · July 10, 2026 · 4 min read
Shopify Theme Upload Rejected Withtheme_author too longanddefault can't be blank? Hidden Schema Limits Surface at PushShopify theme upload rejected with schema errors one at a time? theme_author caps at 25 chars, range at 101 steps, blank defaults are invalid. Sweep before push.
-
Shopify, Liquid & the Theme CLI · July 12, 2026 · 4 min read
shopify theme push --theme=<ID>Landed on the Wrong Store? The CLI's Store Context Is StickyPushed a Shopify theme by --theme=ID and it landed on a different store's live theme? The CLI store context is sticky. Always pass --store on remote commands.
-
Shopify, Liquid & the Theme CLI · July 10, 2026 · 4 min read
shopify theme pushSays Success But Staging Never Changes? TheorderArray Has a 25-Entry Capshopify theme push says success but staging never changes? A JSON template's order array caps at 25 entries. Run push --json to surface the real error.
-
Shopify, Liquid & the Theme CLI · July 10, 2026 · 4 min read
Deleted a Section From Shopifytemplates/index.jsonbut It Keeps Coming Back?orderandsectionsAre CoupledDeleted a Shopify section from the order array but it reappears after push? The definition in the sections object auto-restores its id. Delete both, then verify.
-
Shopify, Liquid & the Theme CLI · July 10, 2026 · 4 min read
{# ... #}Comments Leaking as Text on Your Shopify Product Page? Liquid Has No Such SyntaxYour {# ... #} comments render as literal curly-brace text on a Shopify product page. That is Jinja syntax, not Liquid. Replace it with {%- comment -%}.
Next.js & React in Production
-
Next.js & React in Production · July 14, 2026 · 4 min read
Article Page Is 200 inpnpm devbut 500 in Production?DYNAMIC_SERVER_USAGEFrom a Nested Server-Component FetchA page returns 200 in pnpm dev but 500 in production with DYNAMIC_SERVER_USAGE. A nested server-component fetch touches draftMode while Next tries to statically optimize. Lift the fetch or force-dynamic.
-
Next.js & React in Production · July 15, 2026 · 5 min read
Cmd+K Search Returns "No matches" for Almost Every Keyword in Prod? The Index Was Built From PlaceholdersCmd+K command palette returns No matches for almost every keyword in production while real content exists? The index was built from placeholder-data, not the CMS.
-
Next.js & React in Production · July 14, 2026 · 4 min read
Production Serving Stale HTML After a Deploy? ACannot read properties of undefined (reading 'toFixed')Was Crashing SSRProduction intermittently serves stale HTML after deploys, looking like a broken cache. The real cause: toFixed on undefined crashed SSR. Widen the type and guard.
-
Next.js & React in Production · July 13, 2026 · 5 min read
next devTurbopack Crashes Withinvariant expected layout router to be mountedon One Machine Only? Anode_modulesJunction Is the Culpritnext dev Turbopack crashes with invariant expected layout router to be mounted on one machine only? A node_modules junction escaping the project root misleads Turbopack's resolver. Use --webpack or npm ci.
-
Next.js & React in Production · July 14, 2026 · 4 min read
Sanity Panel 500s in Prod, API Returns 400score() function received unexpected expression? boost() Only Takes Simple PredicatesGROQ boost() query returns HTTP 400 score() function received unexpected expression? boost() rejects coalesce() and pt::text(). Split them into simple predicates.
-
Next.js & React in Production · July 13, 2026 · 4 min read
next devIs Green butnext buildFails Type-Check: Dynamic Element WithrefandchildrenTypednevernext dev green for weeks but next build on Vercel fails type-check: a polymorphic component with ref plus children types children as never. Cast Tag to ComponentType.
-
Next.js & React in Production · July 13, 2026 · 4 min read
Next.js 16 Works onlocalhostbut HMR Dies Over a LAN IP? AddallowedDevOriginsNext.js 16 works on localhost but hot reload dies when opened from a phone over the LAN IP and the console blocks _next/webpack-hmr? Add the origin to allowedDevOrigins.
-
Next.js & React in Production · June 18, 2026 · 3 min read
Next.js Environment Variable Undefined in Production? Here's WhyYou set NEXT_PUBLIC_ in your hosting dashboard, but in production the value is undefined. The cause: these variables are baked at build time, not read at runtime. Here's how it works.
Technical SEO, Redirects & Migrations
-
Technical SEO, Redirects & Migrations · June 25, 2026 · 4 min read
Auditing a 3-Hop 301 Redirect Chain That Was Hiding Across Four MechanismsOne URL ran through three back-to-back 301s: /podcasts → /resources/ → /podcast → /podcast/. The owner swore it was .htaccess. It turned out the redirects were spread across four separate sources. Here's how to audit them all before touching anything.
-
Technical SEO, Redirects & Migrations · July 5, 2026 · 4 min read
Site URL Migration With Better Search Replace Misses Gutenberg Blocks, You Need the Escaped\/FormA site URL migration with Better Search Replace misses Gutenberg blocks because slashes are escaped as \/. Run both forms: plain and escaped.
-
Technical SEO, Redirects & Migrations · July 16, 2026 · 5 min read
Wildcard 301 Redirect Across Hosts Turns Every Old URL Into a404? The Path Does Not Exist on the New HostA wildcard 301 from an old WordPress domain 404s every deep URL on the new host? The paths do not match. Drop the capture group and point flat to the homepage.
-
Technical SEO, Redirects & Migrations · July 8, 2026 · 5 min read
WAF Blocks YourcurlScraper With 403s and JS Challenges? Move Extraction Into the Logged-In Browser With a JSON-LD BookmarkletA cURL scraper kept hitting 403s, JS challenges, then IP flags pulling a client's own product data. The fix: a JSON-LD bookmarklet in their logged-in browser.
-
Technical SEO, Redirects & Migrations · July 7, 2026 · 4 min read
update_optionMigration Succeeded but the Frontend Still Shows the Old Value? One Setting Stored Under Two Option KeysOption migration ran fine, the admin shows the new value, but the frontend keeps the old one? One setting stored under two option keys. Unify with a single getter.
-
Technical SEO, Redirects & Migrations · June 29, 2026 · 5 min read
Renaming Slugs + Changing URL Structure in One Deploy: Why Your Redirect 404s Instead of 301sRenaming slugs and changing URL structure in one deploy makes redirects 404 instead of 301, because the old-slug lookup returns null. Fix: an explicit old→new map.
-
Technical SEO, Redirects & Migrations · July 14, 2026 · 5 min read
Next.jsgenerateSitemapsReturns an Empty<urlset>Instead of a<sitemapindex>? The Convention Can't Emit OneNext.js sitemap index returns an empty urlset, not a sitemapindex? MetadataRoute.Sitemap always serializes to urlset. Fix it with manual route handlers.
-
Technical SEO, Redirects & Migrations · July 14, 2026 · 4 min read
Your Next.jsnot-foundPage Returns HTTP 200? The Soft-404 That Won't Let Google DeindexNext.js dynamic not-found routes return HTTP 200 instead of 404? RSC streaming commits 200 before notFound() runs. Return 410 from middleware for dead slugs.