Track successful email deliveries, clicks and opens in your Laravel PHP application with Mailgun

Link – ninjaparade.ca

Yaz Jallad explains how you use Mailgun's webhooks to determine click and open rates of mails.

While building ContestKit there was a feature I wanted to allow users to know if the emails that were sent to the winners were delivered successfully. Thankfully this feature is relatively easy to add because of Mailgun's amazing API. Let's create a new Laravel application and get started.

Read more [ninjaparade.ca]

Software Architecture is Overrated, Clear and Simple Design is Underrated

Link – blog.pragmaticengineer.com

Gergely Orosz argues that you should start with a simple design and try your best to keep it simple. I don't necessarily agree with everything in the post, but it's an interesting opinion nonetheless.

Software architecture best practices, enterprise architecture patterns, and formalized ways to describe systems are all tools that are useful to know of and might come in handy one day.

Read more [blog.pragmaticengineer.com]

Stay up to date with all things Laravel, PHP, and JavaScript.

Follow me on Twitter. I regularly tweet out programming tips, and what I myself have learned in ongoing projects.

Every two weeks I send out a newsletter containing lots of interesting stuff for the modern PHP developer.

Expect quick tips & tricks, interesting tutorials, opinions and packages. Because I work with Laravel every day there is an emphasis on that framework.

Rest assured that I will only use your email address to send you the newsletter and will not use it for any other purposes.

Lazy leadership

Link – www.mikeveerman.be

Mike Veerman points out that managers that are not making decisions are lazy.

Lazy management means not choosing. It’s only paying lip service. When we put quality first, together with security and performance and everything else, we’re not doing our job. We’re postponing the inevitable in the hope the monster goes away.

Read more [www.mikeveerman.be]

Live updating Oh Dear! status pages

Link – sebastiandedeyne.com

Sebastian De Deyne explains how the live updating on Oh Dear status pages works.

We were originally going to use Vue for the pages, so we could make the entire view reactive so we could easily fetch and update data with AJAX or websockets. I started building the status page view, but quickly became hesitant about the decision to use Vue. It didn’t feel like the right tool for the job.

Read more [sebastiandedeyne.com]

Event store optimizations in laravel-event-sourcing

Original – by Freek Van der Herten – 5 minute read

About a year ago, we released laravel-event-projector. It focused on adding projectors, an important concept in event sourcing, to Laravel.

After the release of the package, we continually kept improving it. We added aggregates, a way to test those, a brand new section in the our documentation that explains event sourcing from scratch, and DX improvements all across the board.

We now feel confident that the package is a good starting point for getting started with event sourcing in Laravel. That's why we're renaming the package to laravel-event-sourcing.

Read more

An alternative way to organize the Laravel directory structure

Link – stefanbauer.me

I don't necessarly agree with every detail in this post, but it's very interesting to see how others structure larger projects.

In this article, I would like to show you an alternative way to organize your Laravel directory structure. I think the default structure is fine for the most projects. But when it comes down to larger projects I was looking for a different structure.

Read more [stefanbauer.me]

How we used Caddy and Laravel's subdomain routing to serve our status pages

Link – ohdear.app

My buddy Mattias explains how you can use Laravel and Caddy to handle https traffic to dynamic subdomains.

We recently launched our new Status Page feature. Under the hood, it's using the Caddy proxy server and Laravel's subdomain routing to serve the right status page on the right domain. With this technology stack, we can automatically generate, configure & renewe the SSL certificates for custom domains of our clients.

Read more [ohdear.app]

Reducing Complexity with Guard Clauses in PHP and JavaScript

Link – engineering.helpscout.com

In this old, but still relevant, blog post Craig Davis explains what guard clauses are and how they can be used to clean up your code.

We’ll first explore several versions of a sample method from a hypothetical billing system. For these purposes, we’ll assume this is code in an existing system and we’ll look at refactoring it to reduce complexity and make it easier for a programmer to understand. The first example will be trivial enough to easily understand, but we’ll build on it in the final examples.

Read more [engineering.helpscout.com]

How to integrate Elasticsearch in your Laravel App

Link – madewithlove.be

Tony Messias wrote a good post on the Madewithlove blog on how to get started using Elastichsearch in a Laravel app.

One of the most popular ways is using Elasticsearch. It is a very powerful tool and it comes with a variety of useful features and complementary tools. We are going to cover the basics here and leave you with some links for more resources if you want to dig further.

Read more [madewithlove.be]

You should not run your mail server because mail is hard.

Link – poolp.org

Contrary to the title, Gilles Chehade that it's acutually doable running your own mailserver.

TL;DR: Mail is not hard: people keep repeating that because they read it, not because they tried it. Big Mailer Corps are quite happy with that myth, it keeps their userbase growing. Big Mailer Corps control a large percentage of the e-mail address space which is good for none …

Read more [poolp.org]

Small Wins

Link – davidhemphill.com

Some words of wisdom by David Hemphill

Don't be upset you didn't finish the big feature early in the week. Be glad you figured out what you need to do to finish it in the next few days.

Read more [davidhemphill.com]