Pressworks

Templates / Thymeleaf

Thymeleaf templates

Designed page sets written in Thymeleaf, with real bindings. Copy a folder into your app, hand it one model object, and every page renders with your data.

What the Thymeleaf edition looks like

relaybird/invoices.htmlThymeleaf
<tr class="invoice-row" th:each="i : ${invoices}">
  <td class="col-number"><a class="invoice-link" th:href="${i.url}" th:text="${i.number}">RB-26-004812</a></td>
  <td class="col-date" th:text="${i.date}">14 September 2026</td>
  <td class="col-for" th:text="${i.description}">Team, 14 Sep to 13 Oct 2026</td>
  <td class="col-status"><span class="status" th:classappend="${i.statusClass}" th:text="${i.status}">Paid</span></td>
  <td class="col-amount"><span class="money" th:text="${i.amount}">EUR 296.31</span></td>
  <td class="col-pdf"><a class="text-link text-link-plain">Download<span class="visually-hidden"> <span th:text="${i.number}">RB-26-004812</span> as PDF</span></a></td>
</tr>

Relaybird's invoice rows, exactly as the Thymeleaf edition ships them. The row repeats with th:each, and each th:text keeps its sample value, so the file still reads like the page it draws. Thymeleaf swaps in your data when it renders.

Every page in every template is written this way. None of it is static markup with a file extension changed.

Putting it in your app

Where it goes

Pages go in src/main/resources/templates/, in a folder named for the template, so nothing overwrites your own pages. The stylesheet and images go in static/.

What it reads

One model object per template. Its class comment lists every field and the pages that show it. Replace the sample values with yours.

Two rules for your data

Pass text as a String, amounts and dates included, and never pass null. Then the same model works in every engine, if you ever switch.

Every template in Thymeleaf

14 so far, and new ones land every month. Each download has every format, so you can change engines later without purchasing again.

Tern

$29.99

Marketing site

The marketing site for a software product, with the product doing the selling.

20 pages · 4 formats · v1.0.0

View template

Missive

$29.99

Documentation

The documentation site for a library, with versions, search and a wide reference.

18 pages · 4 formats · v1.0.0

View template

Small Batch

$29.99

Podcast

The website of a weekly interview podcast, with a player on every episode.

20 pages · 4 formats · v1.0.0

View template

Carton

$29.99

Documentation

The API reference developers keep open while they write code against yours.

20 pages · 4 formats · v1.0.0

View template

Night Desk

$29.99

Personal website

A developer's own website, as paper on a desk under a lamp.

20 pages · 4 formats · v1.0.0

View template

Fork Join

$29.99

Personal website

The personal site of one developer, printed in two inks: projects, talks, writing and a way to hire them.

20 pages · 4 formats · v1.0.0

View template

Podium

$29.99

Conference

The website of a three-day developer conference, from the schedule to the organizer's dashboard.

27 pages · 4 formats · v1.0.0

View template

Rapids

$29.99

Conference

The website of a developer conference: two tracks, speakers, tickets and a call for papers.

20 pages · 4 formats · v1.0.0

View template

Small Machines

$29.99

Blog and changelog

A playful blog dressed as an old desktop: every post a window, every topic a folder.

20 pages · 4 formats · v1.0.0

View template

Veriport

Free with an account

Admin dashboard

A complete admin surface for the internal tools nobody volunteers to build.

36 pages · 4 formats · v1.1.3

View template

Oxbow

Free with an account

Online shop

A coffee shop from the shelf to the doorstep, for whatever you sell.

20 pages · 4 formats · v1.0.0

View template

Fairday

Free with an account

Marketing site

The public website of a small software company, from the home page to the terms.

19 pages · 4 formats · v1.0.0

View template

Relaybird

$29.99

Account and billing

The account and billing pages your customers see after they sign in.

23 pages · 4 formats · v1.0.0

View template

Longhand

Free with an account

Blog and changelog

A blog for one writer and the odd guest, built for long posts and code.

18 pages · 4 formats · v1.0.0

View template

The same pages in every engine

Each template is written out in Thymeleaf, FreeMarker, JTE and plain HTML. Every edition is installed from its own download into a fresh app, and every page, link and button is tried there before it goes on sale. Java 17 or later.

FreeMarker templates JTE templates Which format should I take?