Skip to content

Move the website from Jekyll to Quarkus Roq - #135

Merged
radcortez merged 1 commit into
smallrye:developfrom
phillip-kruger:roq
Oct 13, 2026
Merged

radcortez merged 1 commit into
smallrye:developfrom
phillip-kruger:roq

Conversation

@phillip-kruger

@phillip-kruger phillip-kruger commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

This moves smallrye.io from Jekyll to Quarkus Roq. The build is now ./mvnw and the Roq GitHub Action, replacing Ruby, Bundler and the pinned Jekyll 4.0 / Ruby 2.6 toolchain. The content stays as it is.

What stays the same

  • The posts. All 83 AsciiDoc posts are unchanged (git sees them as renames into content/posts/). Roq reads their :page-* headers directly, and they are rendered by Asciidoctor, as before.
  • Every published address. I checked every page path on the current main branch, apart from /docs/ and /assets/, against the new build. All of them exist. Posts stay at /blog/<name>/, the feed at /feed.xml, and the Health 3.1 certification page and its zips at their old paths. Old blog page numbers past the new last page (/blog/page/10/ to /17/) and /components.html redirect.
  • The docs. Antora still builds /docs/ exactly as before.
  • Deployment. The workflow still builds everything and pushes it to main, using the same GitHub App token. No repository settings need to change.
  • The brand. The logo colours, Open Sans and the rye field are kept. Red Hat analytics stays, now loaded async so it does not hold up the page.

What changes

  • A refreshed design, with a dark theme (it follows the OS setting and there's a toggle) and a proper phone layout.
  • SEO: a sitemap, robots.txt, canonical and Open Graph tags, and schema.org data. Each post's synopsis becomes its meta description. Links use the canonical smallrye.io; _config.yml said www, which redirects.
  • Speed: fonts are served from the site itself and the stylesheet is inlined into each page. jQuery, Font Awesome and 19 MB of hero image variants are removed (the hero is now a 101 KB WebP).
  • The on-demand workflow is merged into the main one as workflow_dispatch. A daily scheduled run publishes future-dated posts on their date, and skips the push when nothing changed.
  • Ten posts per blog page instead of five.
  • Author photos are back on the blog list, and now on each post too. They are the authors' Gravatar images, downloaded once and served from public/images/authors/ (listed in data/authors.yml), so readers' browsers never contact Gravatar. An author without a photo gets their initial.
  • The "Use SmallRye in your applications" band follows the theme, using each project's own light and dark logo: the official Quarkus and WildFly SVGs from commonhaus/artwork, and Open Liberty's mark and wordmark from openliberty.io.

Lighthouse (mobile)

Old: live smallrye.io. New: this branch, served locally.

Page Performance Accessibility Best practices SEO LCP
Home 60 → 94 63 → 100 96 → 96 91 → 100 6.1 s → 2.0 s
Fault Tolerance 7.0.0 post 47 → 93 71 → 100 96 → 96 91 → 100 8.2 s → 1.9 s

Most of the remaining page weight is the Red Hat analytics script.

Screenshots

Before After

The usage band in both themes:

The blog list in the dark theme:

A post in the dark theme:

Trying it

./mvnw quarkus:dev

The README covers the layout of the project and how to write a post. The header format for posts is the same as before.

Not yet verified

  • The Antora docs step and the push to main: both are unchanged from the current workflow, but this PR's CI run is their first test with the new build. The PR run builds without deploying.

The site is now a Quarkus Roq project: content/ (the AsciiDoc posts and
pages, unchanged apart from page titles and descriptions), templates/,
public/ and config/. It builds with ./mvnw and the Roq GitHub Action, so
Ruby, Bundler and the pinned Jekyll 4.0 / Ruby 2.6 toolchain are gone.
Posts are rendered by Asciidoctor, as before.

Every address the Jekyll site published still works: posts stay at
/blog/<name>/, the feed at /feed.xml, the certification page and its zips
at their old paths. Old blog page numbers beyond the new last page and
/components.html redirect.

The design keeps the brand (logo colours, Open Sans, the rye field) and
adds a dark theme, a phone layout, a sitemap, robots.txt, canonical and
Open Graph tags, structured data and per-page descriptions. The usage
band shows each project's own light and dark logo (Quarkus and WildFly
from commonhaus/artwork, Open Liberty from openliberty.io). Bylines show
the author's photo, served from the site instead of Gravatar. Fonts are
self-hosted; jQuery, Font Awesome and the 19 MB of hero image variants
are gone. Red Hat analytics stays, loaded async.

Deployment is unchanged: the workflow builds the Antora docs and the
site and pushes them to main. The docs build first, because the Roq
build leaves a node_modules/ in the repository root that npm would
otherwise install Antora into. The on-demand workflow is folded into the
main one as workflow_dispatch, and a daily run publishes future-dated
posts.
@Ladicek

Ladicek commented Oct 13, 2026

Copy link
Copy Markdown
Member

I wanted to do this as well, but I sure as hell wouldn't be able to improve the website design the way you did! :-)

@Ladicek Ladicek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't review the changes themselves, but built the site locally and inspected the most important pages. LGTM!

@phillip-kruger

Copy link
Copy Markdown
Member Author

I'll leave the merge to you. If all works, merge will deploy the new version

@radcortez
radcortez merged commit c725f4c into smallrye:develop Oct 13, 2026
2 checks passed
@gsmet

gsmet commented Oct 14, 2026

Copy link
Copy Markdown

Ooooooh, it's beautiful.

@Ladicek

Ladicek commented Oct 14, 2026

Copy link
Copy Markdown
Member

It is! I'm not super thrilled about the weird violet gradient on the title image on the title page, but other than that, perfect! :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants