Wim Deblauwe

@wimdeblauwe.com

Software Engineer. Writes mostly Java & Spring. Author of "Taming Thymeleaf" and "Modern frontends with htmx". Blogs at http://wimdeblauwe.com. YouTube: https://youtube.com/@WimDeblauwe

Ever wished Thymeleaf had real components like <tcl:button primary>Submit</tcl:button>? Part 2 of my component library series shows how to build exactly that with a custom dialect, including passing through arbitrary attributes (great for htmx 👀). www.wimdeblauwe.com/blog/2026/08...

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

wimdeblauwe.com

✍️New blog post: Writing a Thymeleaf component library (part 1 of 4). Setting up the library: Spring Boot auto-configuration, Vite-bundled CSS/JS shipped inside the jar, and live reload while you work on the library itself. wimdeblauwe.com/blog/2026/07... #SpringBoot #Thymeleaf

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

wimdeblauwe.com

✍️ New blog post: Testing OAuth2 client login with mock-oauth2-server If you want to test the security of your Thymeleaf application that uses OAuth2 client login (Keycloak, Okta, ...), mock-oauth2-server is a great libray for that! www.wimdeblauwe.com/blog/2026/07...

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

wimdeblauwe.com

Bugfix release 5.1.1 for error-handling-spring-boot-starter. There was a small issue that the metadata was no longer generated. As a result, IDEs like IntelliJ IDEA could not give code completion anymore for the properties of the library. See github.com/wimdeblauwe/... for details.

Release 5.1.1 · wimdeblauwe/error-handling-spring-boot-starter

What's Changed fix: Generation of configuration metadata by @wimdeblauwe in #131 Full Changelog: 5.1.0...5.1.1

github.com

Just released htmx-spring-boot 5.1.0 with a very nice new feature: automatic CSRF token injection. You no longer need to manually worry about CSRF if you use hx-post, hx-get or hx-delete. See github.com/wimdeblauwe/... for the full release notes.

Release 5.1.0 · wimdeblauwe/htmx-spring-boot

What's Changed Make swap style optional and add support to define “none” for scroll and show in HX-Reswap by @xhaggi in #191 Add support for automatic CSRF token injection by @lcnicolau in #188 Up...

github.com

ttcli 1.10.0 now supports generating Spring Boot 4 projects with Thymeleaf or JTE as your templating engine of choice. The generated project is automatically configured with the correct versions of libraries to quickly start your next server-side rendering project. See github.com/wimdeblauwe/...

Release 1.10.0 · wimdeblauwe/ttcli

Changelog 🚀 Features 82347dc feat: Support Spring Boot 4 for project generation 🛠 Build 219b741 build: Use htmx 2.0.8 b37ee68 build: Use Bootstrap 5.3.8 e1e4ba0 build: Use AlpineJS 3.15.1 96d07...

github.com

📝 Just published the final post in my Spring Boot series: "How I document production-ready Spring Boot applications" 🚀 Learn how to: * Keep docs in sync with code using AsciiDoc * Auto-generate REST API docs from tests * Create living architecture documentation www.wimdeblauwe.com/blog/2025/09...

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

wimdeblauwe.com