View e-mail in browser

newsletter #46

Hi, welcome to the 46th newsletter! 

Handling Stripe webhooks in a Laravel application
In the project I’m currently working on I had to integrate Stripe webhooks. Stripe has great documentation on how to handle webhooks, but it still took a fair amount of time to get the integration just right. My solution for handling webhooks is pretty generic and reusable by others. I decided to extract it to a package called laravel-stripe-webhooks, so nobody has to code this stuff up again. In this blogpost I’d like to share how the package works.

Seven Ineffective Coding Habits of Many Programmers
At last years Istanbul Tech Talks conference Kevelin Henney gave this great talk on how to improve the readability of your code.

How to remove a big file wrongly committed to a Git repo
I accidentally committed a multi GB file to the git repo of the project I was working on and pushed it. Here's how to fix that.

Write tests. Not too many. Mostly integration.
In a fantastic post on his blog, Kent C. Dodds makes the case for focusing on writing integration tests, and stop going for 100% code coverage. Amen to that!

Dockerize your Laravel app with Vessel
Chris Fidao has created an easy to handle, well documented, Docker dev environment for Laravel projects. It’s an excellent starting point if you want to have a taste of what Docker can do.

Build a Laravel 5.5 admin panel in minutes with QuickAdminPanel (sponsored)
QuickAdminPanel is a visual tool to create your CRUDs, Fields, Relationships with no coding. Dozens of modules: Multi-tenancy, Reports Generator, Calendars, Stripe, Github integration etc. Generates pure Laravel, no extra packages to learn.

Deep dive into Electron’s main and renderer processes
In a post on his Medium blog Cameron Nokes explains the two most important processes in any Electron app: the main process and the renderer process.

Manage your services like a developer (sponsored)
Spend less time configuring, so you can have more time building. Manifold is the best way to add logging, monitoring, databases and more to your Laravel app. Essential services for applications that matter, made by developers that care. All clouds welcome.

Asynchronous stack traces: why await beats .then()
On his blog Mathias Bynens explains the differences under the hood between async/await and vanilla promises.

The official Vue.js style guide
The maintainers of Vue.js have recently published their official style guide.

Quickly build a single event sourced feature built with Elixir
In a short video posted on YouTube, Shawn McCool explains how you can quickly build an event sourced featured with Commanded.


Meanwhile on Twitter

On Twitter I see a bunch of people regularly tweeting very nice code snippets.

Facades can mock stuff partially
A few different ways to style inputs

Useful links from the archives

Retain your SEO worth by correctly redirecting missing pages in a Laravel application
When transitioning from a old site to a new one the URLs of your site may change. If your old site was popular you probably want to retain your SEO worth. One way of doing this is by providing permanent redirects from your old URLs to your new URLs. Our new spatie/laravel-missing-page-redirector package makes that process very easy.

A class to parse, build and manipulate URLs
For several projects and other packages we need to manipulate URL’s. Instead of coding the same URL class over and over again, we extracted URL manipulation to it’s own package. Here are some code examples on how you can use it.

When are single-character variable names acceptable?
Generally I don’t like to abbreviate variable names. This answer on Quora lists a few situations where an abbreviation is probably ok.

How to refactor code with PhpStorm
Matthew Setter demonstrates PhpStorm's handy refactorings. Personally I use "extracting code to a new method" quite a lot.

Taking PHP Seriously
Keith Adams, Chief Architect at Slack, gives some background on how PHP is used at his company.

Method overloading is possible in PHP (sort of)
Adam Wathan made a trait, aptly called Overloadable, that makes method overloading possible. It works by just accepting any parameters using the splat operator and then determining which of the given functions must be called according to the given parameters.

10 modern software over-engineering mistakes
Subhas Dandapni wrote an excellent overview of the most common over-engineering mistakes.

Varnish explained
Varnish is a piece of software that, amongst other things, can make your website much faster. In a new post on his blog, Mattias Geniar tells you all about it.

Top 5 programming fonts
Eric L. Barnes of Laravel-news and dotdev fame, did a little research on the most used fonts for programming.

Understanding generated columns
Generated columns where introduced in MySQL 5.7. In the latest post on her blog Gabriela D’Ávila explains the feature.

How I open sourced my way to my dream
Laravel employee #1, Mohammed Said, recently gave an interview at on his career and how he started with open source. Terrific story. A lot of what he says resonates with how I feel about working on open source.

Advertisement opportunities at

You are receiving this mail because you've subscribed at