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

Nov 5, 2024

Technical presentations with Slidev

I recently started using Slidev for creating presentations. It is a tool to create a Powerpoint/Keynote/Google Slides like presentation, but using Markdown instead. In this blog post, I will explain the basics and share some of my favorite tips and tricks.

Read More...

Oct 15, 2024

Using React components in a Spring Boot Thymeleaf project

This blog post will show you how to create your own React components in a Spring Boot with Thymeleaf project. The setup will use Vite to be able to write the React components in TypeScript and have live reload of the components so you can easily edit them and use them in your Thymeleaf templates. In the end, we will also see how we can use an existing React library in our application.

Read More...

Oct 3, 2024

Authoring Web Components in a Spring Boot Thymeleaf project

This blog post will show you how to create your own Web Components in a Spring Boot with Thymeleaf project. The setup will use Vite to be able to write the Web Components in TypeScript and have live reload of the components so you can easily edit them and use them in your Thymeleaf templates.

Read More...

Jul 10, 2024

Spring Integration using JSON serialization

In my previous blog post Transactional Outbox pattern with Spring Boot, I compared Spring Integration with Spring Modulith to implement the microservices outbox pattern. I mentioned that a drawback of Spring Integration is the fact that Java serialization is used so the data in the database is not readable with standard database tooling.

Read More...

Jun 25, 2024

Transactional Outbox pattern with Spring Boot

If you are building a microservice architecture, or you just need to send emails from your monolith, you should look into the Transactional Outbox pattern to ensure reliable communication between services. This blog post shows a few ways how you can implement this using Spring Boot.

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...