Sign in

Wim Deblauwe

@wimdeblauwe.com
344 followers 252 following 168 posts

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

PostsRepliesMedia
Wim Deblauwe @wimdeblauwe.com · 27/09/2026
Taming Thymeleaf has been updated for Spring Boot 4. Learn to develop a Spring Boot with Thymeleaf application in my step-by-step guide. You can now get 40% discount via leanpub.com/taming-thyme... www.youtube.com/watch?v=4COL...
youtube.com
Taming Thymeleaf 4th Edition – Updated for Spring Boot 4 & Tailwind CSS 4
YouTube video by Wim Deblauwe
010
Wim Deblauwe @wimdeblauwe.com · 14/09/2026
✍️ New blog: Using multiple GitHub accounts on one machine If you have multiple GitHub accounts (personal/work), then copy this setup to make it easy to use the correct account without thinking. www.wimdeblauwe.com/blog/2026/09...
wimdeblauwe.com
Using multiple GitHub accounts on one machine
Set up Git for multiple GitHub accounts on one machine with includeIf and insteadOf: an SSH key and commit email per account, no special clone URLs.
021
Wim Deblauwe @wimdeblauwe.com · 06/09/2026
✍️ New blog: Testing your Spring Boot auto-configuration against a missing optional dependency www.wimdeblauwe.com/blog/2026/09...
wimdeblauwe.com
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 cl...
000
Wim Deblauwe @wimdeblauwe.com · 30/08/2026
Thank you Uwe Schäfer for your kind words on my Crafting Spring Boot Starters book! Read more about the book at www.wimdeblauwe.com/books/crafti... The launch discount is still valid for a few more weeks: leanpub.com/crafting-spr...
010
Wim Deblauwe @wimdeblauwe.com · 19/08/2026
📕 I just published my new book Crafting Spring Boot Starters, see www.wimdeblauwe.com/books/crafti... if you are interested! There is a free sample you can check out where you can read the foreword by Phil Webb. The full book also has a zip file with AI skills to audit your Spring Boot starter.
wimdeblauwe.com
Crafting Spring Boot Starters
Design, build, test and publish auto-configuration libraries on Spring Boot About the book ...
132
Wim Deblauwe @wimdeblauwe.com · 17/08/2026
New blog post: Writing a Thymeleaf component library - part 4 🧵 This time: client-side interactivity! We add AlpineJS to build a <tcl:dialog> component - complete with focus trapping, keyboard shortcuts, and htmx integration for server-rendered modals. www.wimdeblauwe.com/blog/2026/08...
032
Wim Deblauwe @wimdeblauwe.com · 10/08/2026
New blog post: Writing a Thymeleaf component library - part 3 🧵 This time: slot support! Add arbitrary content (like an SVG icon) inside your <tcl:button> component, with named slots for more complex components like cards. www.wimdeblauwe.com/blog/2026/08...
wimdeblauwe.com
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 attrib...
011
Wim Deblauwe @wimdeblauwe.com · 03/08/2026
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...
wimdeblauwe.com
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...
031
Wim Deblauwe @wimdeblauwe.com · 27/07/2026
✍️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
wimdeblauwe.com
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...
020
Wim Deblauwe @wimdeblauwe.com · 17/07/2026
Lots of #thymeleaf updates in the new @intellijidea.com version 🎉
020
Wim Deblauwe @wimdeblauwe.com · 14/07/2026
The cover for Crafting Spring Boot Starters is done, and the book is almost finished. Now I'm looking for reviewers: if you write Spring Boot 4 libraries and want an early copy in exchange for feedback, reply or DM me. More at leanpub.com/crafting-spr...
Cover design for the book "Crafting Spring Boot Starters"
051
Wim Deblauwe @wimdeblauwe.com · 07/07/2026
✍️ 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...
wimdeblauwe.com
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...
020
Wim Deblauwe @wimdeblauwe.com · 28/06/2026
ttcli 1.12.4 released for download and on homebrew and chocolatey. See github.com/wimdeblauwe/... Happy Spring Boot with Thymeleaf project generation!
github.com
Release 1.12.4 · wimdeblauwe/ttcli
Changelog 🐛 Fixes a32cccd fix: Fix jbang catalog template with correct path and Java version 🛠 Build 940b9f2 build(deps): bump actions/checkout from 6 to 7 a6a5ea2 build(deps): bump the spring ...
110
Wim Deblauwe @wimdeblauwe.com · 16/06/2026
I have no idea if people still read blogs or just ask everything to AI. But I redesigned my blog and I am quite proud of the result. See www.wimdeblauwe.com There is now also a search to quickly find past articles. Give it a try and let me know what you think! #java #springboot
wimdeblauwe.com
Wim Deblauwe
1102
Wim Deblauwe @wimdeblauwe.com · 16/06/2026
There seems to be some action around Thymeleaf issues in @intellijidea.com judging by the notifications I get from the issue tracker. Great, looking forward to the upcoming version!
020
Wim Deblauwe @wimdeblauwe.com · 05/06/2026
You can now run ttcli via @jbang.dev : jbang run ttcli@wimdeblauwe init
000
Wim Deblauwe @wimdeblauwe.com · 27/05/2026
Happy to announce I started writing my next book: Crafting Spring Boot Starters You will learn how the best Spring Boot 4 starters get written, the ones that just feel idiomatic when you drop them in. Read more at leanpub.com/crafting-spr...
Screenshot of the table of contents of the book so far
060
Wim Deblauwe @wimdeblauwe.com · 22/05/2026
Released ttcli 1.12.0 You can now choose between npm and pnpm as package manager for the live reload setup of your Spring Boot with Thymeleaf or JTE project. See github.com/wimdeblauwe/... for details.
github.com
Release 1.12.0 · wimdeblauwe/ttcli
Changelog 🚀 Features 59d368f feat: Use vite-spring-boot-thymeleaf and vite-spring-boot-jte 2.0.1 by default feac244 feat: Use the webjars-locator-lite version that Spring Boot provides 506f944 fea...
020
Wim Deblauwe @wimdeblauwe.com · 15/04/2026
We found each other 😀
030
Wim Deblauwe @wimdeblauwe.com · 14/04/2026
@springio.net done for today. I hope to run into @sivalabs.in tomorrow.
110
Reposted by Wim Deblauwe
Del @stroppadel.bsky.social · 12/04/2026
WOUT BEATS POGI!!!!!!!!!!!!!!!!!!!!!!!! #ParisRoubaix
0103
Wim Deblauwe @wimdeblauwe.com · 08/04/2026
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.
github.com
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
000
Wim Deblauwe @wimdeblauwe.com · 06/04/2026
vite-spring-boot 2.0.1 released: github.com/wimdeblauwe/...
github.com
Release 2.0.1 · wimdeblauwe/vite-spring-boot
What's Changed fix: ensure CSS imports from manifest arrays are resolved and emitted… by @wimdeblauwe in #20 build: Update to Spring Boot 4.0.5 by @wimdeblauwe in #21 build: Update Maven plugins b...
010
Wim Deblauwe @wimdeblauwe.com · 23/03/2026
Pity I am not a Total Energies customer so I could make them loose a customer.
010
Wim Deblauwe @wimdeblauwe.com · 14/03/2026
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.
github.com
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...
140
Wim Deblauwe @wimdeblauwe.com · 15/02/2026
testcontainers-cypress 1.10.0 has been released: github.com/wimdeblauwe/... It updates to Testcontainers 1.21.4 and Cypress 15.10.0.
github.com
Release 1.10.0 · wimdeblauwe/testcontainers-cypress
What's Changed Update dependencies (February 2026) by @vilmosnagy in #65 feat: Allow passing additional npm install arguments by @wimdeblauwe in #66 build: Replace nexus-staging-maven-plugin with ...
000
Wim Deblauwe @wimdeblauwe.com · 26/01/2026
Released version 5.1.0 of error-handling-spring-boot-starter with support for Problem Detail. See wimdeblauwe.github.io/error-handli... for details. (Also backported as 4.7.0 if you are on Spring Boot 3.5)
wimdeblauwe.github.io
Error Handling Spring Boot Starter
010
Wim Deblauwe @wimdeblauwe.com · 19/12/2025
Small bug in error-handling-spring-boot-starter for Spring Boot 4. Bugfix 5.0.1 released: github.com/wimdeblauwe/...
github.com
Release 5.0.1 · wimdeblauwe/error-handling-spring-boot-starter
What's Changed fix automatic import of ServletErrorHandlingConfiguration when using @WebMvcTest or @WebFluxTest by @wimdeblauwe in #125 Full Changelog: 5.0.0...5.0.1
010
Wim Deblauwe @wimdeblauwe.com · 28/11/2025
20% Black Friday discount on my books: * Taming Thymleaf: leanpub.com/taming-thyme... * Modern frontends with htmx: leanpub.com/modern-front... Learn about about easy and nice HTML frontends with Spring Boot!
031
Wim Deblauwe @wimdeblauwe.com · 27/11/2025
Friends of htmx and Spring Boot, version 5.0.0 of htmx-spring-boot has been released. It is the version you need for Spring Boot 4. See github.com/wimdeblauwe/... for release notes.
github.com
Release 5.0.0 · wimdeblauwe/htmx-spring-boot
Upgrade notes Spring Boot 4 This release requires a Spring Boot 4.x baseline. Removed annotations These annotations have been removed: @HxRefresh, @HxRedirect and @HxLocation. You should instead re...
0186
Wim Deblauwe @wimdeblauwe.com · 08/11/2025
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/...
github.com
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...
011
Wim Deblauwe @wimdeblauwe.com · 08/11/2025
vite-spring-boot 2.0.0-rc.1 has been released for Spring Boot 4 github.com/wimdeblauwe/...
github.com
Release 2.0.0-rc.1 · wimdeblauwe/vite-spring-boot
What's Changed build: Replace nexus-staging-maven-plugin with central-publishing-maven-plugin by @wimdeblauwe in #15 Migrate to spring boot 4 and jackson 3. Closes gh-16. by @aspan in #17 build: U...
011
Wim Deblauwe @wimdeblauwe.com · 29/10/2025
Upgraded 2 of my open source libraries for Spring Boot 4.0.0-RC1: * error-handling-spring-boot-starter: github.com/wimdeblauwe/... * htmx-spring-boot: github.com/wimdeblauwe/...
084
Wim Deblauwe @wimdeblauwe.com · 14/10/2025
TIL: The demo of AI framework Embabel that Rod Johnson showed at #devoxx uses Thymeleaf and htmx 😎
061
Wim Deblauwe @wimdeblauwe.com · 30/09/2025
I just released vite-plugin-spring-boot 1.0.0. It is identical to the 0.7.0, except for the Vite 7 support that has been added. See github.com/wimdeblauwe/... New projects generated using ttlci will pick it up automatically.
github.com
Release 1.0.0 · wimdeblauwe/vite-plugin-spring-boot
What's Changed Update package.json to support Vite 7.0 by @semyonsh in #4 New Contributors @semyonsh made their first contribution in #4 Full Changelog: 0.7.0...1.0.0
010
Wim Deblauwe @wimdeblauwe.com · 08/09/2025
📝 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...
wimdeblauwe.com
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 ...
272
Wim Deblauwe @wimdeblauwe.com · 07/08/2025
tedpatrick.substack.com/p/html-is-un... "Having worked with countless JS and server frameworks for web development, I found this model to be the best I have ever experienced. Our team was able to deliver features productively, and our team velocity was about double what I expected."
tedpatrick.substack.com
HTML is Underrated
The web is a fantastic platform, but its power is not evenly distributed.
030
Wim Deblauwe @wimdeblauwe.com · 31/07/2025
📝 Just published: How I test production-ready Spring Boot applications - Use case tests with in-memory repositories (no mocking!) - Repository tests with Testcontainers - Controller tests - Integration tests - Architecture tests Read the full guide: www.wimdeblauwe.com/blog/2025/07...
wimdeblauwe.com
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 expl...
2101
Wim Deblauwe @wimdeblauwe.com · 29/06/2025
Proficiat Belgian Cats! 🏀
140
Wim Deblauwe @wimdeblauwe.com · 24/06/2025
🚀 New blog post: How I write production-ready Spring Boot applications After 25+ years of Java development, here's my approach to: - DDD-based package structure - Clean use case architecture - Why I avoid Hexagonal Architecture Full breakdown: www.wimdeblauwe.com/blog/2025/06...
wimdeblauwe.com
How I write production-ready Spring Boot applications
This blog post will explain how I currently write Spring Boot applications. I have been writing Java for over 25 years, and most of that involved Spring and its ecosystem. I will talk about how I arch...
071
Wim Deblauwe @wimdeblauwe.com · 04/06/2025
Rather use JTE as template engine instead of Thymeleaf with Spring Boot? ttcli 1.9.0 can now generate such a project to get live reload out of the box. Just save and the browser reloads. See github.com/wimdeblauwe/...
github.com
Release 1.9.0 · wimdeblauwe/ttcli
Changelog 🚀 Features 765acc8 feat: JTE support - Configure Vite so that live reload of JTE templates works 1842385 feat: JTE support - insert correct CSS and JS links depending on template type f9...
041
Wim Deblauwe @wimdeblauwe.com · 28/05/2025
Lot's of video's already online from the @springio.net conference, see www.youtube.com/@SpringIOCon... #spring #java
youtube.com
Spring I/O
Spring I/O conference in Barcelona
1132
Wim Deblauwe @wimdeblauwe.com · 26/05/2025
vite-spring-boot 0.9.0 released with support for JTE as an alternative to Thymeleaf as template engine for Spring Boot so you can have all the Vite niceness for your CSS and JavaScriipt bits. github.com/wimdeblauwe/...
github.com
Release 0.9.0 · wimdeblauwe/vite-spring-boot
What's Changed Support for Java Template Engine by @pbaris in #11 build: Update to Spring Boot 3.3.12 by @wimdeblauwe in #12 New Contributors @pbaris made their first contribution in #11 Full C...
020
Wim Deblauwe @wimdeblauwe.com · 16/05/2025
vite-spring-boot 0.8.0 released: github.com/wimdeblauwe/...
github.com
Release 0.8.0 · wimdeblauwe/vite-spring-boot
What's Changed feat: Allow to specify an optional context path for dev and build modes by @wimdeblauwe in #10 Full Changelog: 0.7.0...0.8.0
021
Wim Deblauwe @wimdeblauwe.com · 14/05/2025
Just published: "Combine Testcontainers and Spring Boot with Multiple Containers" 🐳 + 🍃 www.wimdeblauwe.com/blog/2025/05... #SpringBoot #Testcontainers #Java #Testing
wimdeblauwe.com
Combine Testcontainers and Spring Boot with multiple containers
Testcontainers is a great technology to run Docker containers of dependencies like a database or a messaging middleware like ActiveMq or Kafka. It might not immediately be obvious how to combine JUnit...
183
Wim Deblauwe @wimdeblauwe.com · 12/05/2025
What is currently the best practice to combine Testcontainers and Spring Boot to ensure containers are only started once for the whole test suite? I have always used a `ApplicationContextInitializer` with static block that starts the container. A trick I have learned from Philip Riecks.
100
Wim Deblauwe @wimdeblauwe.com · 08/05/2025
Thinking about writing down my favorite way to architect my Spring Boot apps. Just have to decide if I will name it after a shape or a vegetable.
320
Wim Deblauwe @wimdeblauwe.com · 24/04/2025
New release of error-handling-spring-boot-starter -> github.com/wimdeblauwe/... It now uses the response status from RestClientResponseException if that exception is thrown like it already did for ResponseStatusException.
github.com
Release 4.6.0 · wimdeblauwe/error-handling-spring-boot-starter
What's Changed adding openapi & swagger usage documentation by @vova-volvo in #109 docs: Document the need to manually include custom handlers when runn… by @wimdeblauwe in #110 build: update to S...
010
Reposted by Wim Deblauwe
Siva @sivalabs.in · 23/04/2025
Spring Framework 6.2 introduced MockMvcTester to support writing AssertJ style assertions. blog.jetbrains.com/idea/2025/04... In this article I have covered testing: ✨REST API JSON response ✨API exception handling ✨Thymeleaf view rendering ✨URL redirects & flash attributes ✨Model validation errors
blog.jetbrains.com
A Practical Guide to Testing Spring Controllers With MockMvcTester | The IntelliJ IDEA Blog
Spring Framework 6.2 introduced MockMvcTester to support writing AssertJ style assertions using AssertJ under the hood. If you’re using Spring Boot, the spring-boot-starter-test dependency transiti
0235
Wim Deblauwe @wimdeblauwe.com · 01/04/2025
📢 After the success of Taming Thymeleaf, I'm thrilled to reveal my next TWO projects: 'Amplifying Angular' and 'Ruling React'! After years of resistance, I've finally seen the light - JavaScript is my new true love. Thymeleaf who? 😉
160