Hi! I’m a full-stack developer. Some stuff I’m interested in: Web Performance and User Experience. I blog about things that interest me.

WordPress 6.4 actually doesn’t disable attachment pages
Attachment pages are one of the most confusing and misunderstood features in WordPress. Many people don’t get what is the purpose of a feature where the content management system creates a page for each of the images uploaded to the site. The only purpose of this attachment page is that is displays the image in the page template.
Fixing the Host header when running a reverse proxy on Google Cloud Run
I’m running this WordPress blog on Google Cloud Run. It’s running on Apache since the official WordPress Docker image doesn’t support Nginx. There is a WordPress Docker image that uses PHP FPM, but you will need to connect to it from another container using FastCGI.
How to create a page under a custom post type URL in WordPress
WordPress custom post types are a great way to model your content. Let’s say your company creates all kinds of products, like widgets, gadgets and gizmos. You can create a new new custom post type in WordPress called Products to store these posts.
DigitalOcean App Platform: it’s a promising service with a one really big problem
DigitalOcean is the latest company to join the serverless race. Can the new platform live up to the lofty promises and replace the existing Droplet VPS offering?
What fighter jet is featured in the game “Raptor: Call of the Shadows”?
Raptor: Call of the Shadows is a fun classic DOS game. But what about the titular plane in the game? Is it modeled after the F-22 Raptor? Let’s find out!
Fixing the wrong keyboard layout on Varmilo VA88Mac Nordic
The Varmilo VA88Mac is a pretty nice keyboard, but there’s a big problem: the keyboard layout is wrong. Here’s how you can fix it using Karabiner Elements.
What’s the best lossless image format? Comparing PNG, WebP, AVIF, and JPEG XL
In a blog post last year, I took a look at lossy image formats and how they stack up. This time, I thought it might be interesting to do a comparison of lossless image formats.
Installing WordPress on DigitalOcean App Platform Part II
Since I moved my blog to the DigitalOcean app platform, here’s a couple of tips and tricks I learned along the way.
Installing WordPress on the DigitalOcean App Platform
When DigitalOcean came out with its managed App Platform, I got interested if I can run WordPress on it. It took me one afternoon to get WordPress up and running, here’s how you can do it.
Disable Drop Cap in WordPress 5.5 (or later)
The WordPress Gutenberg editor launched with a curious feature cribbed from the Medium editor: an option to add a drop cap to a paragraph
Is WebP really better than JPEG?
According to Google, WebP is 25 – 34% smaller than JPEG at equivalent quality. But how much of it is really true? To find out, I ran a few tests.
Doom Eternal more ammo mod
Doom Eternal looks gorgeous and runs well but one thing that keeps bothering me is the ammo situation. Learn how to use console commands to increase amount of ammo you can carry.
Integrate Twig with Webpack in a WordPress theme
You can use Webpack to process JavaScript and CSS files. But how to include static assets in your template files? Learn how to process Twig templates with Webpack.
High performance WordPress image processing with VIPS
WordPress has rich image processing options, but on image-heavy site, image uploading might get a little slow. Learn how the VIPS library can help.
Responsive images with Episerver and ImageResizer
With so many devices and screen sizes, how do you deliver right image to the right user? In Episerver projects, ImageResizer is the answer.
Parempi WordPress-haku SearchWP:n ja Voikon avulla
WordPressin oletushakutoiminnossa on parantamisen varaa. Miten hakua voi tehostaa SearchWP-lisäosan ja Voikko-kirjaston avulla?
Poor man’s Brotli: serve Brotli compressed files without a nginx module
No Nginx Brotli module? No problem! You can still serve Brotli compressed files with this one weird trick.
Beyond the WYSIWYG editor: richer content modeling in content management systems
CMS’s were created to separate content from its presentation. But many sites still mix those two up. It’s time to model your content more effectively.
Never MISS the cache with Nginx microcaching
Nginx microcaching can drastically speed up your website. Learn how to set it up and different settings influence the performance.
How to use Eloquent ORM migrations outside Laravel
Learn how to use Laravel’s Eloquent ORM in other frameworks and how to create a migration without Laravel.