Java · Spring · Thymeleaf · Htmx
Production-ready Spring Boot, crafted carefully.
I'm Wim Deblauwe, a software developer specialized in Java and Spring. I write books, maintain open-source projects like error-handling-spring-boot-starter, and publish practical, battle-tested articles here.
just start typing — try thymeleaf, testcontainers or htmx
Taming Thymeleaf
Server-side rendering with Spring Boot, step by step.
Modern frontends with htmx
Hypermedia-driven UIs with Spring Boot & Thymeleaf.
Recent posts
showing 10 of 130- Sep 14, 2026 Using multiple GitHub accounts on one machine I have a personal GitHub account, an account for my own company, and one for each client I work with. They all live on the same laptop, and they all talk to github.com. When having multiple accounts, you need to be careful about using the right SSH key and the right commit email address for each repository. But if you plan it right, you can make it so that Git does the right thing automatically, without you having to remember which account a repository belongs to. In this blog post, I show the setup: one base directory per account, and no special URLs. I clone with the exact URL that GitHub puts on my clipboard.
- Sep 6, 2026 Testing your auto-configuration against a missing optional dependency If your library or starter has optional dependencies, it is surprisingly easy to write an auto-configuration that blows up at startup for everybody who does not have that optional dependency on the classpath. Even more annoying: FilteredClassLoader, the tool that Spring Boot gives us for this kind of test, cannot reproduce that failure. In this blog post, I will show you why, and give you a small HidingClassLoader that can.
- Aug 17, 2026 Writing a Thymeleaf component library - part 4 After creating a Thymeleaf component library, building a component and adding support for slots, we will now turn our attention to adding client-side interactivity to a component.
- Aug 10, 2026 Writing a Thymeleaf component library - part 3 In part 1 we created a Thymeleaf component library that can be used in a Spring Boot application. Part 2 showed how to create an actual component with custom attributes and a passthrough of any attribute. In part 3 we will add support for slots, which allows to add arbitrary content inside a component.
- Aug 3, 2026 Writing a Thymeleaf component library - part 2 In part 1 we created a Thymeleaf component library that can be used in a Spring Boot application. There is a sample application that uses the library, and there is full live reload support for changing the CSS and JS files in the library. We will create an actual component in the library and use it in the sample application.
- Jul 27, 2026 Writing a Thymeleaf component library This blog series will explain how to write a component library for Thymeleaf. The goal is to create a library that can be used in any Spring Boot application that uses Thymeleaf as the view technology. Users of the library should be able to use the components to quickly build a user interface without having to write a lot of HTML and CSS themselves.
- Jul 7, 2026 Testing OAuth2 client login with mock-oauth2-server If you use Spring Boot with Thymeleaf, you might be using an external OAuth2 provider like Keycloak or Okta to authenticate your users. In this blog post, I will show you how to test your OAuth2 client login with mock-oauth2-server.
- Feb 25, 2026 Migrating away from Thymeleaf Layout Dialect This blog post explains what the Thymeleaf Layout Dialect is, why you might want to stop using it, and how to migrate to a pure Thymeleaf solution using th:replace.
- Sep 8, 2025 How I document production-ready Spring Boot applications This blog post explains how I like to document a Spring Boot application I am writing. It is the third and last post in my series on writing production-ready Spring Boot applications. See How I write production-ready Spring Boot applications and How I test production-ready Spring Boot applications for the other posts in the series.
- Jul 30, 2025 How I test production-ready Spring Boot applications My previous blog post How I write production-ready Spring Boot applications explained how I like to write and structure my production code in Spring Boot applications. This blog post will further explain how I write tests for the code.
no matches for "" — browse the full archive →