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

Feb 12, 2024

Rapid application prototyping with Bootify

Starting a new application can be a daunting task. How will you structure your code? How can you get started quickly? There are a few tools such as JHipster that help you setup your project. One such alternative that I recently looked at is Bootify.

Read More...

Feb 12, 2024

Rapid application prototyping with Bootify

Starting a new application can be a daunting task. How will you structure your code? How can you get started quickly? There are a few tools such as JHipster that help you setup your project. One such alternative that I recently looked at is Bootify.

Read More...

Dec 14, 2023

Htmx global error handler

The htmx-spring-boot library 3.2.0 has just been released and now supports using HtmxResponse as a return type for error handlers. This blog post shows how you can use this.

Read More...

Dec 3, 2023

Book launch: Modern frontends with htmx

🎉 Thrilled to announce the official release of my new book 'Modern frontends with htmx'! Discover how to master htmx with SpringBoot and Thymeleaf for rich, interactive web applications.

Read More...

Oct 25, 2023

Ttcli release 1.0.0

I am happy to announce version 1.0.0 of ttcli. Ttcli is a command line tool to generate a Spring Boot with Thymeleaf project with support for live reloading.

Read More...

Oct 19, 2023

Taming Thymeleaf update for Thymeleaf 3.1.2

Thymeleaf 3.1.2 was released recently and is inluded in Spring Boot 3.0.10 and 3.1.3. For security reasons, it is no longer allowed for a Thymeleaf template to directly access org.springframework.web.servlet.support.ServletUriComponentsBuilder. This was used in my Taming Thymeleaf book to build a generic fragment that can be used for pagination controls. If you still use it, you get this exception while running the application: org.springframework.expression.EvaluationException: Access is forbidden for type 'org.

Read More...

Mar 31, 2023

Taming Thymeleaf update for Spring Boot 3

My book Taming Thymeleaf has just been updated on leanpub for Spring Boot 3. This blog post will walk you through the most important changes if you want to upgrade to Spring Boot 3 from Spring Boot 2 if you used the previous version of the book.

Read More...

Feb 21, 2023

Toasts notifications in Thymeleaf with Shoelace and htmx - part 2

Yesterday, I shared how to combine Thymeleaf, Shoelace and htmx to show toast notifications in your web application. This worked pretty well and only needed a little JavaScript, but we can even further reduce the JavaScript used further and make them even more useful as the same time!

Read More...

Feb 20, 2023

Toasts notifications in Thymeleaf with Shoelace and htmx

I recently played around with Shoelace, a library of web components. The nice thing about web components is that they are framework agnostic, so we can use them with Thymeleaf as well. This blog post will show how to use the Alert Toast component to show a confirmation or an error to the user. See also part 2 for a similar demo where the HTML of the notifications is generated in Thymeleaf instead of in JavaScript.

Read More...

Jan 24, 2023

Using Google login with Spring Boot 3 and Thymeleaf

Building a complete user management system yourself is quite some work. However, you can very easily allow users to use social login with Google for example and avoid having to do all that work yourself. This blog post will show how to quickly setup a Spring Boot with Thymeleaf project and secure it using Google login.

Read More...