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 128- Jan 29, 2025 Thymeleaf and TailwindCSS 4.0 updates Last week Tailwind CSS v4.0 was released. This, unfortunately, broke the ttcli tool to generate a Spring Boot with Thymeleaf project when you selected Tailwind CSS.
- Dec 31, 2024 Problems I no longer have by using Server-side rendering I really like to use Spring Boot, Thymeleaf and htmx for a productive web application stack. However, most of my day-to-day work involves writing REST API backends (Well, JSON Data APIs really) for Angular or React frontends. During that work, I sometimes can’t help but think “We would not have this issue we are discussing now if we had used server-side rendering instead of a JavaScript Single Page Application.”. This blog explains some of those thoughts in more detail.
- Nov 19, 2024 Redirect attributes with Spring MVC and htmx A common implementation pattern with Spring MVC is showing a notification message after a redirect has happened. For example, you edit a product in a page and after saving the product you are redirected back to the list of products. At the top, you show a message "Product xyz updated". If the user manually refreshes the page, the message should disappear. To implement this, you can use redirect attributes, sometimes also called flash attributes.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
no matches for "" — browse the full archive →