Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Joel Clermont

@jclermont@phpc.social
mastodon 4.7.3
  • Open on phpc.social

Organizer of Milwaukee PHP. Co-host of No Compromises #podcast. Helping #PHP and #Laravel developers level up their skills.

335 Followers
95 Following
50 Posts
Joined November 14, 2022
Podcast:
https://show.nocompromises.io
Blog:
https://joelclermont.com
Training:
https://masteringlaravel.io
Need Help?:
https://nocompromises.io
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Ever handed off a feature request with barely any detail and expected the developer to just figure it out? In this week's podcast, Aaron and I make the case for writing requirements before development starts, and why letting AI write them for you is a trap. #php #laravel https://masteringlaravel.io/daily/2026-09-07-laravel-podcast-write-better-requirements-or-pay-for-it-later

phpc.social
1
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Automated tests catch most bugs, but not all of them. Today's tip is a reminder of why I still click through the app before pushing my code. #php #laravel https://masteringlaravel.io/daily/2026-08-26-republished-manual-testing-still-has-its-place

phpc.social
1
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Most factory states just flip a flag, but they can also accept arguments. That opens up some useful patterns, like deriving test data from another model. #php #laravel https://masteringlaravel.io/daily/2026-08-20-factory-states-can-accept-arguments

phpc.social
1
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

If your test only creates the row you're looking for, the query under test can be completely broken and the test still green. #php #laravel https://masteringlaravel.io/daily/2026-05-28-add-noise-records-to-your-tests-and-put-them-on-both-sides

phpc.social
2
0
1
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago

I used to reach for docker compose up, start, stop, and down almost interchangeably, until a change I made quietly didn't take effect. Here is the mental model that cleared it up. #php #laravel https://masteringlaravel.io/daily/2026-06-11-docker-up-start-stop-and-down-are-not-interchangeable

Docker up, start, stop, and down are not interchangeable | Mastering Laravel
Mastering Laravel

Docker up, start, stop, and down are not interchangeable | Mastering Laravel

Two of them flip a switch, two of them create and destroy

1
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago

I wasn't paying close enough attention, and Claude committed a scratch file I never wanted in the repo. Here is how I cleaned it out of history while still keeping the file on my machine. #php #laravel https://masteringlaravel.io/daily/2026-06-10-removing-a-file-your-coding-agent-shouldnt-have-committed

phpc.social
1
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

When I introduce PHPStan to a project, my goal isn't necessarily to get to the highest level as fast as possible. Here's the approach I generally take instead. #php #laravel https://masteringlaravel.io/daily/2026-06-09-republished-a-measured-approach-to-using-larastan

phpc.social
1
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

In today's video, I run a quick Tinker demo that reveals a surprising bcrypt behavior, and explain why Laravel ships a max length rule for passwords. #php #laravel https://masteringlaravel.io/daily/2026-05-29-video-why-does-laravel-offer-a-max-password-length-validation-rule

phpc.social
1
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

Your team says "Larastan" but composer.json says "phpstan". Composer has a key that lets both names run the same script. #php #laravel https://masteringlaravel.io/daily/2026-06-02-give-your-composer-script-a-second-name

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

We work hard to avoid magic strings everywhere in Laravel, so why am I perfectly happy with one inside a migration? #php #laravel https://masteringlaravel.io/daily/2026-06-05-isnt-that-just-a-magic-string

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago

In today's video, I delete the docblock Laravel adds to every new factory just to see what breaks. My editor didn't care, but Larastan sure did. Let's see why. #php #laravel https://masteringlaravel.io/daily/2026-06-12-video-get-better-auto-complete-from-your-factories

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
Ever been tempted to make a property public just so a test can assert on it? Today's tip shares a rule we follow on every project, and the trick that lets you keep your tests isolated without touching application code. #php #laravel https://masteringlaravel.io/daily/2026-07-29-republished-avoid-changing-your-code-purely-for-a-test
Avoid changing your code purely for a test | Mastering Laravel
Mastering Laravel

Avoid changing your code purely for a test | Mastering Laravel

Even if it's just to make a property public

0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
Extracting a long method into smaller ones can make it shorter without making it any easier to read. Sometimes the mess was fine. #php #laravel https://masteringlaravel.io/daily/2026-07-16-a-three-line-method-you-cant-actually-read
masteringlaravel.io
0
1
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

We love the convenience and features of Eloquent, so why do I deliberately avoid it when a migration needs to manage important system-level data? #php #laravel https://masteringlaravel.io/daily/2026-06-04-why-reach-for-the-db-facade-in-a-migration

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
In Laravel you reach for Storage::fake() to keep tests from writing real files. But what about code that uses raw fopen or fwrite? Here is the tool for that. #php #laravel https://masteringlaravel.io/daily/2026-07-23-how-to-keep-your-tests-off-the-real-filesystem
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

A good coding rule settles a debate once and then enforces itself. Here's why I lean on them, especially with a framework as flexible as Laravel. #php #laravel https://masteringlaravel.io/daily/2026-06-03-republished-how-clear-coding-rules-can-free-up-your-team

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

JSON language files use the string itself as the key, so where does the pluralization pipe go? Today's tip shows it works exactly like array files, once you get past how strange it looks. #php #laravel https://masteringlaravel.io/daily/2026-08-25-pluralization-works-in-json-language-files

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
Ever mock a facade and have your macro mysteriously disappear? Today's tip shows a technique for testing macros you've added to classes you don't own. #php #laravel https://masteringlaravel.io/daily/2026-07-28-how-to-test-a-macro-on-a-class-you-dont-own
How to test a macro on a class you don't own | Mastering Laravel
Mastering Laravel

How to test a macro on a class you don't own | Mastering Laravel

A partial mock keeps Macroable working

0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Converting an Eloquent casts property to the newer casts method looks like a pure style choice for which syntax you prefer, but here's a real-world example where the two behave differently. #php #aravel https://masteringlaravel.io/daily/2026-08-31-when-new-syntax-is-not-actually-equivalent-functionality

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago
Comments tend to read as settled fact once they land in the codebase. Here is a small habit I use to flag the ones that are really just my best guess. #php #laravel https://masteringlaravel.io/daily/2026-07-02-why-i-sometimes-sign-my-code-comments
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Ever have a test that fails once out of 500 runs, then passes when you run it again? The test value you picked might be colliding with random Faker data. #php #laravel https://masteringlaravel.io/daily/2026-08-12-republished-picking-a-good-test-value

phpc.social
0
1
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Dropping an index in a down migration usually means guessing at its name. Today's tip shows a cleaner way that lets Laravel figure it out for you. #php #laravel https://masteringlaravel.io/daily/2026-08-28-republished-a-better-way-to-drop-a-unique-index

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago
Model strictness checks are great for catching bugs and security issues, but you don't want them blowing up in a user's face. Here is a safer way to enable them. #php #laravel https://masteringlaravel.io/daily/2026-07-03-republished-a-safer-way-to-check-model-strictness-in-production
masteringlaravel.io
0
1
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
A public property in Livewire can be edited from the browser, even one you never put in a form. There's a one-line attribute that stops it, and I keep forgetting it exists. #php #laravel https://masteringlaravel.io/daily/2026-07-21-the-livewire-security-feature-i-keep-forgetting-to-use
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
We use UI toolkits to help us make styling decisions easier, but does this mean we always accept their decisions? Let me share a recent example where I pushed back on the defaults. #php #laravel https://masteringlaravel.io/daily/2026-07-30-does-this-field-look-readonly-to-you
Does this field look readonly to you? | Mastering Laravel
Mastering Laravel

Does this field look readonly to you? | Mastering Laravel

A UI toolkit's defaults are still your design decisions

0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

Still keeping that commented-out code around just in case? In this week's podcast, Aaron and I explain why dead code hurts more than it helps, and why deleted code is never truly gone anyways. #php #laravel https://masteringlaravel.io/daily/2026-06-01-laravel-podcast-your-codebase-is-not-a-museum-for-old-code

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 4mo ago

A quirk I first wrote off as a dev-only annoyance turned out to share a root cause with a bug that real users could hit in production. #php #laravel https://masteringlaravel.io/daily/2026-06-08-when-a-dev-quirk-is-a-production-bug-in-disguise

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

In today's video, watch a listener with the wrong import silently stop working, with no errors anywhere, and see the one-line test that catches it instantly. #php #laravel https://masteringlaravel.io/daily/2026-08-14-video-make-sure-your-listeners-are-wired-up

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
Would you let an AI agent run commands on your production server? In this week's podcast, Aaron and I explain why that's just as reckless as FTPing code straight to production. #php #laravel https://masteringlaravel.io/daily/2026-07-27-laravel-podcast-running-ai-agents-on-your-production-server-is-the-new-ftp
masteringlaravel.io
0
1
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

In today's video, watch a paginated list quietly show some records twice while never showing others, and see the one-line fix that makes pagination deterministic. #php #laravel https://masteringlaravel.io/daily/2026-08-21-video-why-pagination-sometimes-has-overlapping-pages

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
Attackers have been abusing PHP object deserialization since before Laravel existed. Here's how those attacks work, and a way to protect against them. #php #laravel https://masteringlaravel.io/daily/2026-08-03-why-unserialize-is-on-every-php-security-checklist
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago
Sometimes it only takes a few hours to fix an issue that has nagged a team for years. But someone has to decide it's worth doing. Here's my advice for handling those paper cuts in your project. #php #laravel https://masteringlaravel.io/daily/2026-07-08-republished-dont-become-numb-to-pain-in-your-project
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

When your app is behind a reverse proxy, it might seem like an easy fix to just force HTTPS to make your links render correctly, but it totally ignores other important behavior that remains broken, like rate limiting. #php #laravel https://masteringlaravel.io/daily/2026-08-17-the-downside-of-just-forcing-https-when-behind-a-reverse-proxy

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Laravel serializes a model's loaded relationships when you queue a job, but not when you queue a collection of models. Here's the right way to load relationships inside the job. #php #laravel https://masteringlaravel.io/daily/2026-09-03-republished-loading-relationships-inside-a-queued-job

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Composer insisted the class didn't exist, but it was sitting right there in the vendor folder. The problem was the package, but I'll explain how we fixed it with Composer and why we picked the approach we did. #php #laravel https://masteringlaravel.io/daily/2026-08-18-when-composer-cant-find-a-class-that-exists

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago
A 502 error, an empty laravel.log, and code that worked fine locally. The culprit was a PHP extension I never installed, colliding with a Laravel helper. #php #laravel https://masteringlaravel.io/daily/2026-07-09-debugging-a-mystery-502-on-laravel-forge
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Pennant defaults to the database driver, but not every feature flag needs a table row and a query. Today's tip shows when the array driver is the lighter choice. #php #laravel https://masteringlaravel.io/daily/2026-09-01-you-dont-always-need-to-put-pennant-in-the-database

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
In today's video, learn how to keep dev tooling out of your production Docker image by giving each Dockerfile its own ignore file, plus a gotcha in how Docker decides which one to use. #php #laravel https://masteringlaravel.io/daily/2026-07-24-video-ignoring-files-per-environment-with-docker
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Laravel redirects back to the previous page when validation fails, but what happens when there is no sensible previous page? Today's tip covers a redirect loop that shows up with bookmarks and new tabs, and a simple way to stop it. #php #laravel https://masteringlaravel.io/daily/2026-08-27-when-a-validation-failure-causes-a-redirect-loop

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago
When Aaron and I open a pull request, we assign a reviewer and ourselves. That second part is obvious to us, but some teams resist it. Here is why we think it's useful. #php #laravel https://masteringlaravel.io/daily/2026-07-06-why-i-assign-myself-to-my-own-pull-requests
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Ever been told your slow app just needs caching? In this week's podcast, Aaron and I break down the layers of caching in a Laravel app, from the Cloudflare edge down to in-request memoization. #php #laravel https://masteringlaravel.io/daily/2026-08-24-laravel-podcast-which-layer-of-caching-does-your-slow-app-actually-need

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
Laravel 13 ships with a hardened cache serialization default. It's a real security win, but when it breaks, you don't get an exception. Here's how it works and what to watch for. #php #laravel https://masteringlaravel.io/daily/2026-08-04-the-sneaky-failure-mode-in-laravel-13s-hardened-cache
masteringlaravel.io
0
1
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 3mo ago
Replying to
@willpower232@phpc.social I'd have to think about it more, but I don't know if I like the indirection of those helpers. Part of me would worry something would change out from under me in a future release and the behavior would not be the same. But I'm open to being reasoned with :)
0
1
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1w ago
Have you ever had someone review your pull request, make changes without telling you, and just merge it in? In this week's podcast, Aaron and I discuss whether the traditional code review workflow still makes sense when AI tooling lets us move faster than ever. #php #laravel https://masteringlaravel.io/daily/2026-09-28-laravel-podcast-is-the-traditional-code-review-workflow-holding-you-back
Is the traditional code review workflow holding you back? | Mastering Laravel
Mastering Laravel

Is the traditional code review workflow holding you back? | Mastering Laravel

When a reviewer merges your PR without asking

0
1
1
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
If you isolate a Valet site to a specific PHP version, your Composer scripts might still run on the system default. One small prefix fixes it. #php #laravel https://masteringlaravel.io/daily/2026-07-22-republished-composer-scripts-and-valet-isolate
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

You don't need to obsess over your site analytics, but an occasional look can pay off. One glance at ours revealed a stranger already selling our book for us. #php #laravel https://masteringlaravel.io/daily/2026-08-19-republished-pay-attention-to-analytics

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 2mo ago
Ever stare right at an error message and still miss the answer? A single leading slash cost me 15 minutes of debugging with the Vite asset helper. #php #laravel https://masteringlaravel.io/daily/2026-07-15-republished-absolute-paths-and-the-vite-asset-helper
masteringlaravel.io
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

Sometimes multiple controller actions need the same guard logic, but it doesn't belong in a policy or form request. Here's a clean way to share redirect logic without messy hacks. #php #laravel https://masteringlaravel.io/daily/2026-09-02-republished-sharing-redirect-logic-between-controller-actions

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

You pass a model to Mockery's with() and the test fails, even though your code called the service with the right model. Here's a cleaner way to match it. #php #laravel https://masteringlaravel.io/daily/2026-08-13-when-mockery-says-your-eloquent-model-doesnt-match

phpc.social
0
0
0
0
Open post
Joel Clermont @jclermont@phpc.social
· 1mo ago

If another site loads a script built by your Laravel app, switching to Vite can quietly break it. Here's the CORS gotcha we hit and how we fixed it. #php #laravel https://masteringlaravel.io/daily/2026-09-04-republished-something-to-know-if-serving-scripts-for-other-sites

phpc.social
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 23:15:54 UTC