Toe aan een nieuwe website voor je bedrijf?
Op dit moment zijn het ontwerp en de bouw gratis. Je betaalt alleen β¬ 49,- per maand voor betrouwbare Nederlandse hosting met premium e-mail. De website beheer je daarna gewoon zelf.
Darvis bouwt al 25 jaar maatwerk websites en software. Interesse? Kijk op https://t.co/0GV6Ivls08 of stuur me een bericht.
darvis/mailtrap 1.11.0 is out.
A DNS hiccup no longer blocks a real address. The MX check now tells "no mail server" apart from "the resolver timed out": a timeout lets the address through and logs a warning, a missing MX or a Null MX is still refused.
MX hosts with only an IPv6 address now count too.
Sending mail from your Laravel site through Mailtrap? Know what happened to every mail.
darvis/mailtrap adds:
β A recipient check before sending: format and MX lookup for every To, Cc and Bcc
π A log of every outgoing mail, linkable to your own models
π A signed Mailtrap webhook for delivery, bounce, spam and reject events
π¬ A Livewire and Flux inbox page to search and clean up the log
π§ php artisan mailtrap:install sets it all up
Validation and logging work with any Laravel mailer; only the webhook needs Mailtrap.
composer require darvis/mailtrap
Find it on Packagist as darvis/mailtrap. Unofficial, free and MIT licensed.
#Laravel #PHP #Mailtrap #Livewire #FluxUI #EmailDeliverability
@ElijahBrownDev Fair point, and you caught a real gap: right now a timeout ends up as a rejection because getmxrr() returns false either way. I'll split it so only an explicit Null MX is refused and anything inconclusive gets logged and let through.
https://t.co/0GV6Ivls08
Selling to consumers in the EU? Since September 27 your webshop has to show the new official guarantee information. There's no grace period.
Two things changed:
1. Every webshop must show the EU notice about the legal guarantee of at least two years. Before the purchase, and again in the order confirmation.
2. Does the manufacturer give a free durability guarantee of more than two years? Then the GARAN label goes on the product page itself. A line in your terms isn't enough.
You have to use the official EU designs. Making your own version isn't allowed.
In a well-built webshop this is one field per product and a block in the checkout. If your shop needs another plugin or a developer digging through the theme for it, that says something about the shop.
Not sure if yours is compliant? Send me a message and I'll take a look.
Laravel 13.26 quietly shipped something I've wanted for years: a read-through filesystem driver.
Moving uploads to new storage used to mean a big sync script, a maintenance window and hoping nothing got written halfway through.
Now you point a disk at both:
'assets' => [
'driver' => 'read-through',
'primary' => 'r2',
'fallback' => 'legacy-s3',
],
Reads check the new disk first. If the file isn't there yet, Laravel serves it from the old one and copies it over on the way. New writes go straight to the new disk.
One thing to keep in mind: a file nobody opens never moves. Old invoices and forgotten uploads stay on the old disk. So before you switch the old one off, still run a final sync.
Handy for client projects that grew out of local storage.
Stop naming your Livewire components Index.php.
Open a Laravel project with a few admin screens and you'll find ten files called Index.php, Form.php and Show.php. Your editor shows five tabs that all say "Index", and searching for one gives you every screen in the app.
My rule: a component in a subfolder carries that folder in its own name. Only the direct parent, not the whole path.
App\Livewire\Admin\Projects\ProjectsIndex
resources/views/livewire/admin/projects/projects-index.blade.php
<livewire:admin.projects.projects-index />
So ProjectsIndex, not Index and not AdminProjectsIndex.
Now the tab tells you which screen you're on, and a search for ProjectsIndex gives exactly one hit. Small thing, but I stopped losing time on it.
How do you name yours?
Livewire devs, which one cost you the most hours? π
Count your squares, reply with your score, and share the fix that finally worked. Your fix might save someone else's Friday.
The classic: a list without wire:key. Everything looks fine until you reorder or remove a row.
#Laravel #Livewire #PHP #TALLstack #WebDev
@ThorCommerce It never stores the body to begin with: only recipient, subject, status and errors, optionally linked to your own model. Rows are pruned after 30 days by default; MAILTRAP_CLEANUP_AFTER_DAYS=0 keeps them. Just keep customer details out of the subject.
@ElijahBrownDev Good points, thanks. A Null MX already gets refused because it never resolves, but getmxrr() can't tell a timeout from no MX, so a DNS hiccup blocks the send until the check expires. Failing open and logging it is better; noted for the next version.
https://t.co/I8O9zpxDs7
From our portfolio: De Huurwoningbemiddelaar, a Dutch rental agency site with 200+ listings, online registration and a custom CMS built in Laravel.
@mozo2say Fair, there's a lot of that around. My point is the opposite though: most companies don't need a custom AI tool, and I'll say so when that's the case.