✍️ Writing
41 posts on Laravel, WordPress and building products.
2025
6
Jul 18
Simplifying WordPress Emails with a Fluent API
As WordPress developers, we often need to send emails that look polished and professional. But out of the box, the `wp_mail` does not provide that. That’s where my latest packag...
Apr 28
Video: WordPress theme development with Tailwind CSS and Vite
TailPress version 5 is out, and it's finally bringing you support for Vite — which means faster compiling and hot module reloading (even in the editor). ## About TailPress In [2...
Mar 16
Video: making a Laravel package for contextr
In this video I give you a quick demo of [contextr](http://vanrossum.dev/44-ai-text-analysis-with-context-introducing-contextr), a PHP package for AI-driven text analysis for sp...
Mar 12
AI text analysis with context: introducing contextr
I’ve been working on something lately, and I’m excited to let you in on it. Meet **contextr**, a PHP package that uses AI to analyze text. Super handy if you want to spot spam...
Jan 29
Using Paver as a Filament custom field
Today I wanted to see if I could get Paver working within Filament. It was pretty easy, let's go through the steps. ## Install and setup Paver First, you [install](https://paver...
Jan 22
Video: an introduction to block development with Paver
In this video I introduce you to Paver, a block editor for PHP developers. I'm showing you how you can install it in a plain Laravel application, how you can add your own blocks...
2024
4
Aug 27
Introducing Paver
Last weekend, I launched Paver. A drag-and-drop block editor built specifically for PHP developers. Currently it's in the pre-release stage. ## The Why Behind Paver Imagine a de...
Apr 03
Laravel-like job dispatching for WordPress
Aside from WordPress development, I work a lot with Laravel. And one of the things I love about Laravel, is the Jobs API. In short: a dedicated class for your job that you can d...
Feb 27
Using Flare with WordPress for error tracking
Flare, for me at least, is mostly known as an error tracker for Laravel applications. However, the service is framework agnostic and can be used for other frameworks, including W...
Jan 07
2023 Year in review
This year, my Year in Review is not a blogpost, but a post on X instead: Short version of Year in review this time:✅ First Laracon at @laraconeu, Lisbon - amazing! ✅ Launched op...
2023
4
Aug 22
WordPress and Composer
Using Composer to manage and load packages is commonplace in PHP projects, and most of the time, it just works. However, if you're developing a WordPress plugin or theme, you mi...
Jun 13
Send to API v1.3.0 is now available
Today version 1.3.0 of the Send to API add-on for Gravity Forms is released. This update contains a couple of nice new features. , it is time to look back and ahead to the coming year. Previous editions: [2020](https://vanrossum.dev/22-2020-year-in-re...
Oct 19
Introducing Gravity Forms Send to API
This week I'm launching my first non open-source WordPress plugin. This plugin is an add-on for the popular form builder plugin [Gravity Forms](https://gravityforms.com) and is...
Oct 13
A new website design
If you have visited my site before, you may have noticed that it has had a fresh coat of paint. I'm very happy with how things turned out! ## Why I could type a whole lot of wor...
May 27
Dutch address autocomplete with Alpine.js
In the Netherlands, it's common for forms with address fields to try and autocomplete the street and city based on the zipcode and house number. ## Using Alpine.js In order to a...
Jan 01
2021 year in review
Today is January 1st of 2022 and as 2021 is now officially over, it's time to - like [last year](https://vanrossum.dev/22-2020-year-in-review) - look back a bit and review the p...
2021
2
Aug 01
Demo of the WordPress Settings package (video)
Lately I've been working on a package to make it easier to create options/settings pages for WordPress plugins. Normally one could use the [Settings API](https://developer.wordp...
Feb 23
WordPress theme development with TailwindCSS: recreating github.blog
I made a screencast which might be the start of a series, in which I recreate the [github.blog](https://github.blog) site with WordPress and TailwindCSS using [TailPress](https...
2020
11
Dec 20
2020 year in review
Most posts on this website are quite technical in nature. This post will be a little different, no code snippets this time. This will be my first year in review (or recap) post...
Nov 24
A Tailwind boilerplate for WordPress
For years I have been developing custom WordPress themes, mostly with Bootstrap (3 and later 4). But around a year ago, I started using [TailwindCSS](https://tailwindcss.com) in...
Oct 28
Splitting the WordPress loop
Today I needed to make a post archive page for a WordPress-theme that contained several different grids in one loop. For example, the first two posts needed to be in a 50/50-gri...
Sep 04
Using the WordPress WYSIWYG editor within custom Widgets
Sometimes you want to create a custom widget for your WordPress theme or plugin. And sometimes, you might want to include the tiny WYSIWYG editor like the one that is within the...
Aug 11
Installing Memcached on CentOS and DirectAdmin for WordPress
This article will go through the steps to get Memcached installed on a Centos (7 or 8) server with DirectAdmin. I needed to install Memcached to make use of object caching in Wo...
Aug 06
How to make WordPress-like custom fields for Laravel models
Have you ever run into a situation where you want to be able to dynamically store data along with your Laravel Model, without having to add an (excessive) amount of columns to y...
Jul 07
Handling media in Laravel with Laravel Simple Media
About two weeks ago, I published an open-source Laravel package on Github called [Laravel Simple Media](https://github.com/jeffreyvr/laravel-simple-media). The package enables y...
Apr 05
Using Browsershot for PDF generation
Yesterday I was trying to tweak the invoice design for [Addrow](https://addrow.io), a SaaS application I made with [Laravel](https://laravel.com). I have basically two templates...
Mar 12
Use CodeSnappy for good looking code snippet images
Yesterday, I posted a Tweet that included a screenshot of a code snippet. Before I could take the screenshot I needed to toggle some settings in my code editor (VSCode), and aft...
Jan 26
How to validate object ownership in Laravel
There are several ways in which you can determine if a user owns an object in your Laravel application. This post will give you a couple of examples how you could implement this...
Jan 21
A video walk-through of Addrow and future plans
In August last year, I [introduced Addrow](https://vanrossum.dev/3-invoicing-with-addrow) for the first time. [Addrow](https://addrow.io) is an invoicing web application which a...
2019
9
Dec 09
A simple way of implementing user bookmarks in Laravel
For a recent project, I needed a way for users to bookmark posts. Other than posts, I imagine the application to have other objects in the future too. So, with this in mind, I d...
Oct 21
Inspired Github theme for PHPStorm
Since a couple of days I have been trying out PHPStorm. So far I really like it, but I notice that for quick changes I tend to refer back to Visual Studio Code. However, since u...
Sep 04
Allow additional request methods Apache / DirectAdmin
Just a quick tip again. This time about how you can add additional request methods like PUT, DELETE etc. to your Apache / DirectAdmin configuration. I couldn’t find the answer e...
Aug 14
Invoicing with Addrow
A couple of days ago I’ve made [Addrow](https://addrow.io) publicly available. Addrow is an app to make invoicing simple and even a little fun again. It has been a quiet launch...
Jul 30
Using ngrok with Laravel
If you like to temporarily expose your local development environment, you can do this with ngrok. If you use Laravel Valet for development, you already [have ngrok available](ht...
May 18
Introducing Easy Liveblogs
I’m very happy to announce that today, I published the Easy Liveblogs plugin on wordpress.org. It’s a free WordPress plugin that provides your WordPress site with the ability to...
May 10
Localization with Framework7 and Vue
While creating an app with Framework7, I wanted to be able to localize strings to support other languages. I found the Vue I18n package, and it is actually quite easy to apply t...
May 10
Making WordPress passwords work in Laravel
When you are exporting WordPress users to a Laravel Application, you’ll notice that the hashed password from WordPress will not authenticate in Laravel. Now instead of your user...
May 10
Using policies in Lumen
Recently I’ve been using Lumen, basically a micro version of Laravel, to set up a REST API. I have been using the jwt-auth package from tymondesigns to be able to facilitate tok...