About Me

Hi, my name is Wim Deblauwe, a software developer specialized in Java, Spring, and JVM related tooling.

I wrote Taming Thymeleaf, a book to learn more about using Thymeleaf with Spring Boot. I also have a few open-source projects: one that makes it easy to do Spring Boot error handling, another for integration of Cypress with Testcontainers and a few others.

I blog regularly here about Spring Boot, Thymeleaf,Asciidoctor and other programming related subjects.

Stay up to date with the latest content via the RSS feed, follow me on Twitter, or subscribe to the mailing list.

Recent posts

Dec 1, 2022

The error-handling-spring-boot-starter library vs Spring 6 ProblemDetail

I created the error-handling-spring-boot-starter library for Spring Boot because I was unhappy with the default response that Spring Boot 2 provides out-of-the-box. With Spring Boot 3, there is now support for ProblemDetail and we can have a look on how that changes things.

Read More...

Nov 25, 2022

Started my YouTube channel

I started my YouTube channel this week. It was quite something to come to this result, speaking to a camera is quite scary at first, but I think I got a nice result in the end 🙂

Read More...

Oct 4, 2022

Htmx authentication error handling

Using htmx is a great way to make your Spring Boot with Thymeleaf web application dynamic without page refreshes. Since there are no page refreshes, but transparent AJAX calls going on, it is important to put in error handling code to ensure a good user experience in case something goes wrong. This blog post shows how to do this.

Read More...

Aug 27, 2022

Thymeleaf live reload with Spring Boot and Tailwind CSS

This is the 3rd and final part of my series on live reloading with Thymeleaf and Spring Boot, this time focusing on Tailwind CSS.

Read More...

Jul 4, 2022

Thymeleaf live reload with Spring Boot DevTools

In my blog post of yesterday, I explained how to use Thymeleaf live reload with npm scripts. Quickly after announcing the blog post on Twitter, Oliver Drotbohm asked me why I didn’t just use Spring Boot DevTools instead. A valid question and one I will address in this follow-up post.

Read More...

Jul 3, 2022

Thymeleaf live reload with npm scripts

UPDATE: I created a follow-up blog Thymeleaf live reload with Spring Boot DevTools that shows a way to have Live Reload with a little less setup work, but some important drawbacks as well in my opionion. Be sure to read both blog posts to get an informed opinion about which path to take. If you want to add Tailwind CSS to your project, go to Thymeleaf live reload with Spring Boot and Tailwind CSS after you applied what is shown here. In my book Taming Thymeleaf I use Gulp to setup the frontend build pipeline and have live reloading during development. For the workshop I gave at Spring I/O 2022 Barcelona, I used a different approach using NPM scripts. This avoids the extra gulp dependency with sometimes things that are not up-to-date anymore.

Read More...

Jun 15, 2022

Thymeleaf and htmx with out of band swaps

The htmx JavaScript library has a very neat feature called Out of Band Swaps. This blog post shows how to use this with Thymeleaf.

Read More...

Apr 11, 2022

Error handling with Spring WebFlux

My error-handling-spring-boot-starter library had its first release almost 2 years ago. The first reported issue came soon after with a request to support Spring WebFlux. As I don’t have any Spring WebFlux projects myself, it was pretty low on my priority list. Especially as it did not seem trivial to add support. Luckily, about a month ago Fabio Marini opened a PR with all the building blocks I needed to add support for Spring WebFlux to the library. Version 3.0.0 has now been released which can be used with Spring WebFlux.

Read More...

Mar 21, 2022

Bootstrap Toggle clone with Tailwind CSS and Alpine

I migrated a project from Bootstrap 4 with the Sleek dashboard template to Tailwind CSS as Bootstrap 4 stopped having bugfixes on 2021-07-01, and there is no version for Bootstrap 5. Anyways, I like Tailwind CSS a lot more to work with :) One of the components that the project used is Bootstrap Toggle, which makes a simple checkbox look a lot better. As the project kicked out Bootstrap, I needed to build a replacement for it. This blog entry will explain how I did so step-by-step using Tailwind CSS and Alpine.js.

Read More...

Feb 23, 2022

Spring Boot request parameters validation

I released a new version 2.1.0 of the Error Handling Spring Boot Starter last week. It supports nice error messages for validation of request parameters now. This blog post shows some more detail on how you can do validation of request parameters.

Read More...