Web scraping in Laravel with Larascraper
I do a fair amount of scraping in Laravel, and it always splits into two worlds. Guzzle for the pages that are just HTML, and a mess of Puppeteer scri…
Latest Testing & QA news from Tech News
I do a fair amount of scraping in Laravel, and it always splits into two worlds. Guzzle for the pages that are just HTML, and a mess of Puppeteer scri…
Uploading a ZIP file to cPanel after every small code change gets old very quickly. You fix one bug, build the Vue frontend, create a ZIP file, open c…
The short version is this: GET should remain your default search method in Laravel, POST is still the pragmatic fallback for complex filters, and QUER…
TL;DR Shared-database multi-tenancy = one database, every row tagged with tenant_id , a global scope that filters automatically. Three moving parts: a…
TL;DR Shipped a SEO + analytics baseline in Kickoff : meta/OG, canonical, JSON-LD org schema, dynamic robots.txt , sitemap, and admin-editable GA4/GTM…
Making classics more accessible I have a soft spot for mythology and classic stories. I have read most of the books on Abridged Shelf at least once, s…
so here is the thing. i work on a laravel app where almost every feature touch an llm. extract structured data from a pdf, rewrite a paragraph, summar…
The projects I dread are the ones where the database is the only documentation. Twenty tables, foreign keys, years of production data, and either no A…
Technical books have a shelf life that nobody prints on the cover. A cookbook from 2018 still works. A history book from 2018 still works. A Laravel b…
Are you tired of wrestling with raw cURL requests, parsing Server-Sent Events (SSE) by hand, and building complex polling loops just to interact with …
TL;DR Shipped an email broadcast module: audience filtering, suppression, queued per-recipient sends, delivery tracking. Fixed a silent implicit-route…
TL;DR Rewrote a bootstrap seeder so the deployment stack — DB engine, queue runner, PHP version — is config, not hardcoded. Renamed it away from a pha…
The problem: chat that can only talk The chatbot from earlier in this series can answer questions, but ask it "how many orders did we ship yesterday?"…
In the last post we streamed AI responses over SSE. Now let's fix the problem every chatbot hits in week one: the model doesn't know your data. Ask it…
First published on the Accreditly blog . When someone finishes a course in your Laravel app they want proof: a certificate they can download, print an…
Originally published on letmesend.email . I work on letmesend.email, and this is an adapted edition of that guide. This article was prepared with AI-a…
Generating a PDF in Laravel means choosing which problem you want to own. dompdf makes you write CSS like it's 2011. Snappy chains you to an abandoned…
TL;DR A job dispatched once , at row-creation time, has a silent failure mode: if that dispatch is lost, the row sits pending forever — and never appe…
As our Laravel applications grow, we inevitably face a common architectural dilemma: where do we put complex business logic that dictates whether an e…
In modern Laravel applications, events and listeners are the glue that holds our complex business logic together. They allow us to decouple our code, …
The problem I've been working with Manticore Search for about two years at EricaPRO , building the search layer for two financial data platforms. For …
1. Hook & Problem Statement You’ve been there. You're building a Laravel application, and everything is going smoothly. You type Route::get('/orde…
Building cryptocurrency analytics dashboards, liquidation trackers, or monitoring funding rate arbitrage often requires reliable access to high-qualit…
TL;DR: attribute-driven DTOs are pleasant to write but usually pay a reflection-and-dispatch tax on every call. Simple Data Objects compiles a special…
PHP attributes are a useful documentation tool, but they are a terrible documentation strategy on their own. That is the short version. The appeal is …
I work with Laravel on a daily basis, and at some point I started integrating more than one payment gateway into the same project. Each gateway sends …
TL;DR 23 commits across 4 repos, one theme: opening apps to the outside world, safely. Public: kickoff v1.32.0 ships SDK-free support-widget integrati…
TL;DR Built an embeddable support widget for a helpdesk product: no cookies — a short-lived bearer token in a header, hashed at rest. Entry is an HMAC…
TL;DR A gate check-in app can't depend on live Wi-Fi: scans must work offline and sync later. Four endpoints do it: manifest download, idempotent batc…
Book: Decoupled PHP — Clean and Hexagonal Architecture for Applications That Outlive the Framework Also by me: Thinking in Go (2-book series) — Comple…