# Java Renaissance: Quarkus, Rook, and AI-Ready Content Strategies

**Podcast:** The InfoQ Podcast
**Published:** 2026-05-04

## Transcript

If your team has AI running in a proof of concept, but you're still figuring out how to run it reliably in production, you're not alone.
That's the gap most engineering teams are navigating right now.
QCon AI Boston, this June 1st and 2nd, brings together senior engineers, software architects, and technical leaders who've already made that shift.
They'll share the patterns that scaled, the mistakes that didn't make the blog post, and what they'd actually do differently.
No hidden product pitches, just senior practitioners helping senior practitioners.
Learn more at boston.qcon.ai.
Hello, everybody.
I'm Olympi Pop, a name for Q editor.
And I have in front of me, Andy, who is the builder, the fire starter of Rook, which is more or less a new way of putting markdown languages online, right?
But before, Andy, can you please introduce yourself and then tell us what actually Rook is?
Of course.
So I'm Andy Demevin.
I'm a full stack developer.
I love Java.
I love UIs.
And above all, I love making it all streamlined.
I love when things are easy to use.
I've been in the Quarkus team for nine years.
If you don't know Quarkus, Quarkus is a Java framework.
It's getting pretty famous.
And I made a lot of tools for Quarkus already.
So what's the connection between Quarkus and Rook?
Because in the end, we're here to speak about Rook, right?
Yeah, we're here to speak about ROC.
ROC is a static seed generator and it allows to create static seeds using Quarkus behind the scenes.
But you don't need to know about Quarkus or Java.
It's just that it's using its power to do it.
That's nicely said.
But before we delve into why would you like to build another static website generator?
Because usually that's a piece of technology for other areas, not for Java.
I have to take note about the fact that you said, I like Java.
For those people that don't know Andy, he's very young and he still likes Java.
And that's why I wanted to say, how did Java change in the nine years since you joined the Quarkus team in terms of language and how easy it is to get started with it?
Mainly the language level that you use like a developer.
So I see two questions.
The first is about Java and why it's cool again.
Let's say that this way.
And the other is about why using Java for ROG.
And that, I think, is a totally different question.
And you also ask why another statics in general does.
Well, we'll just take them one by one.
But now I'm just curious because, you know, for a long period of time, people are saying whenever you say Java, they say slow.
Java, slow.
This was like a contest.
And then everybody was explaining how fabulous different type of ecosystems are.
And now these voices start to get smaller and smaller.
And I think in the last couple of weeks, I organized at least two meetups and there are a lot of young people, meaning fresh graduates that are working and looking into Java.
And that was like, wow, finally it's getting out of those weeds and it's nice.
So Java is in a good place.
Then going back to what you mentioned, Yes.
Why another static sites generator?
So why Java again?
To be fully honest, at some point I started working a bit on Go and I thought Java was not going to be something in the future.
And Quarkus really changed the game.
It's not really Quarkus.
It's the fact that it brings that native speed that was missing in Java.
I always loved Java.
I always preferred coding in Java rather than in Go.
because it gives a really nice format to things.
Everything is clean, you have tests, it's well organized.
And that's what I love about Java.
And I think to make really nice infrastructures, to really powerful application, Java is the perfect solution.
But the thing is, people were moving away from it and starting using Go and stuff like that, mostly because it can compile to binaries.
And if you take Java, you were not about to do that.
And the JVM was a problem.
And now it's starting to be a good thing again, because when you see that you can do binary again, then you start to switch back to the JVM again because you say, OK, I can do binary.
I can be quick, but I can also do like optimization at runtime and things like that, that you can do with the JVM and that you can't do with plain native.
I think that makes Java cool again.
That's not taking everything that Java has really evolved with the new JDKs that are arriving.
If you take everything together, I think, yeah, it would be something in the future.
Yeah, well, we are promising or the community is promising that Java is dying for at least 15 years.
And for me, it seems that the ecosystem is growing and growing.
And looking aside, it's like somehow very much differentiate.
in terms of the different generation of technologies.
Like if you just think initially you had the AGBs a long time ago, you had enterprise Java bins and that was like awful.
And then we had the new wave of stuff and it was Spring that was trying to do something different.
And then there we had the POJOs, regardless of where they are, or Enterprise or Spring.
And then we have now this, you call it renaissance if you want.
We had a third generation of way of writing applications and that's Quarkus.
And probably you can put Micronaut in the same category, but that's a whole different perspective of looking at it fast.
And what I particularly liked a lot about what Quarkus did, even since it began, and I had at least one conversation with Max Anderson about it.
you thought about the developer joy.
And that was a new metric that appeared for the developer because up to then you spoke about performance, you spoke about patterns, and then out of a sudden you had all different mechanisms.
That was good.
Did any of this play any role into writing Rook around Quarkus?
So the thing with Rock is it's just luck.
Let's say it that way.
Because...
I don't think that Quarkus initially was the best place and the best system to make a static seed generator.
It wasn't obvious.
And when I built it, I thought, okay, maybe it's more than what I initially thought when I started it.
I started it because it was easy to make.
It was just a small piece on top of Quarkus.
So I thought, okay, why not?
And then I thought, oh, but we have everything in Quarkus that you need.
But just out of Quarkus, the static seed generator is just a small part.
It's nearly nothing compared to everything that Quarkus brings.
And I don't think there are any other static seed generators that have everything ready beforehand.
And the static seed generator is just a small part of it.
So ROC is actually an extension on Quarkus.
So actually what you have is a Quarkus engine that is enabled to generate static sites, right?
Yep.
Okay.
That might make sense in some situations, but isn't it too heavyweight if I need a plain website?
I don't know.
I have a bunch of MD files.
I want to create something like a blog, a release site or whatever.
Do I really need something as powerful as Quark is behind it?
If you take that question, you need to consider the alternatives, obviously.
And if you compare it to the alternative, I think it makes Rock a really good candidate in your choice.
Because in the end, Quarkus is not making it heavier at all.
And it brings an awesome developer experience.
And we will see later a wider experience.
If you want to write content, it's also really good.
So if you put everything together, yeah, I think it's a good candidate.
Okay.
What actually is behind the scenes?
So how should I look at it?
Okay, we have Quarkus and we know that it starts fast and it has a bunch of things.
Internally, that allows it to process things faster due to the way how the team built it around the reactive streams and everything inside.
And then obviously the way how it handles and loads the data allows it to be very fast.
So it's clear that this is a very powerful tool.
What's needed more to be able to build static websites?
Okay, please describe how, I don't know, basically the architecture looks like.
Okay, you have Quarkus, it provides the context.
And then what else does Rock bring to the table or what you had to put together?
That's a good question.
So how is Rock working?
If you look closely in Quarkus, you have two distinct parts.
You have the built-in and the runtime.
That's a big particularity about Quarkus.
But just to say, everything I'm saying now is not making Rock more complicated.
It's just that...
It's how it's made, but you don't need to know all that to actually use it.
But it's always nice to know how it's working behind the scenes.
What changed in my mind is when I thought, okay, when you're building a static website, you want to build your website.
And building means generating all those pages statically.
When you think about Quarkers, you have the build time.
So you want to build things at build time.
But I thought, okay, why do we need to build things at build time?
We could...
actually work like on any normal Quarkus application that is served at runtime and generate it like a snapshot.
You just dump everything as files from the Quarkus application and that's actually how Rock works.
It's just starting a Quarkus application but it's so light that it's really fast and it's dumping everything from your Quarkus application to static files.
This is what makes it pretty unique because you're actually using Quarkus like the Quarkus runtime.
You're starting it to generate your things.
And that's also what's cool for development because when you're developing compared to other static seed generators, we don't actually generate anything.
We just use Quarkus server.
It will just render on demand.
So you have live reload by default.
And when you actually need to build, then we are going to dump everything.
as files so let's take an example and we we discussed about this previously let's say the java advent calendar that is published each year in december we have the articles and so on so forth probably now we have 13 to 15 years of articles there they are part of a database probably in wordpress i don't know i never understood how wordpress works well it's php who actually knows what's in there but If we are looking into migrating it to Rook to just say that, okay, we are bootstrapping and we are pushed into Java ecosystem, what actually should we do?
What are the steps that we should take to go get on the other side?
Something special about WordPress is the fact that I don't think it's a static seed generator.
It's more a content management system.
And I don't think it's generating things statically.
Maybe you can, but I'm not sure it is using PHP and it's rendering at runtime as far as I know.
Yeah, that's a whole different conversation, but let's think about it, making it simple.
So we generate the articles when obviously you want a static site generator because it's more secure on one hand side and then it's easier to index.
So basically this would be the things that I would think of to need a static site generator.
What should I do?
Because in the end, if I understand correctly, Rock is using MD files.
So you're using Markdown, right?
Markdown, yeah.
There are a bunch of them.
Yeah, you can use Markdown or ASCII.
Okay, so any of the more programmatic way of writing things, Markdown is a lot more simple.
ASCII.
is more complex.
If you have more complicated stuff and you want to put more stuff in there, it's very powerful.
But it's moving away from what you see it's hard to get to a more programmatic way of looking at things.
And probably GitHub made MD very, very powerful.
So if I understand correctly, we need to have these things in place, right?
So we have the markdowns with the content that we want on our website, right?
Yes.
Then if we look about the website, the other thing that we need is about styling.
How does it look in terms of templating and stuff like that?
How is that done in Rock?
So if you want to convert from WordPress to Rock, considering that you can easily convert from HTML to markdown or to ASCII doc, I suppose you would have to take your DB as HTML and convert it to Markdown.
It doesn't mean that you need to write articles in Markdown because you have a lot of editors that allow you to just use it like you would do on Word or any other writing tool.
And then it will just convert it to Markdown.
When you have all your Markdown, there is a structure that you put your files in.
And instead of having a DB, you will put them on a file system.
And when you have all your file, you will need templates that direct how your page looks like.
And that's pretty much it.
For styling, you use a Quarkus extension, which is named the Web Bundler.
It will take all your JavaScript, all your styles, bundle them to make them production ready and make them available to your application and without any configuration.
So that's out of the box.
Okay.
So if I get it correctly, you'll use a folder structure for your hierarchy where you're just putting the things one after the other and then use either MD files or ASCII doctor, the type that you have done.
And in terms of templating, you need another carcass extension that will take care of the web stuff and just bundle it and that's it.
Yes.
How about the footprint?
If I'm looking at the normal application, so just out of the box without any kind of tinkering around, what should I expect in terms of...
amount of resources that I need.
Is it huge?
It's decent.
Can I run it on, I don't know, Raspberry Pi?
I can take a very small space in the cloud and just run it.
So what should I think in terms of running it?
When you're a developer, you will use Quarkus to develop the base of the website.
If you are a writer, you can use Quarkus and the file system to edit content.
You can just do it on the file system.
building a CMS as part of the dev UI.
So as a writer, you will be able to just create, edit, like you would do on WordPress with what you see and what you get and everything.
So for a writer, it's pretty cool.
And then you have the generating part where you generate all the pages.
And out of that, you get all the pages that you can run on any static server.
So you could start it on Nginx or Apache or whatever.
It's just static files.
It will work on a Raspberry, I suppose.
Okay, great.
So there are two different things to that.
It's up to me what I get.
So in the end, I'll just get the content.
It depends on me where I put it.
And then behind it, it's the engine that actually does the transformation, right?
Do I understand correctly?
Yeah, and the engine is pretty light.
So you could also say that both parts are quite light.
How friendly would it be for non-programmers?
Is it enough to just tell them, okay, write an empty file and just drop it there?
So we actually have already the case where users are not Java friendly, writers are not Java friendly and they'd be using it on different sites and feedback were good compared to the other like Jekyll or Hugo.
So yeah, it's pretty easy to use and it will be even more easy very soon because for now you need the JDK installed on your machine, which can be a burden for people.
It's already installed on most machines without you knowing.
But if you don't have it, that can be a problem.
And we are building a small wrapper so that anyone can start developing our writing without having anything on his machine, which I think it's pretty cool.
I don't think there are any other SSG in which you can do that.
Okay.
So let me see if I get it correctly.
Is it a way to bootstrap yourself?
Like, I don't know, it was the Gradle wrapper.
In the lack of a better example, where I just got everything and I just...
started it and that's it?
That's what you have in mind?
And how would I get my hand on that?
It's just downloading it or it's installed to brew or what do you have in mind guys?
So that's still to figure out.
We're really working on making the story as streamlined as possible and there are still pieces missing but we want them to be there.
Even starting a binary can be hard for writers I think.
Some are not using the terminal.
And I'm not sure how we could do that, but in the end, when you start Quarkus, it could be a really small app that just spin up the local server and then you do everything on your browser, which is local.
This is something we want for Rock.
It's not there yet because it's pretty fresh, but that would be cool.
Well, good luck with that.
Let's see how cool it is.
Andy, what else should we know about Rock that I didn't ask?
I've been working on the Web Bundler extension for Quarkus.
This is the one that lets you add JavaScript styles and libraries.
Without you configuring anything, it will just make them prod-ready.
It can be served on your static server.
And I'm working on the V2, and the V2 has out-of-the-box support for Tailwind.
I know a lot of people want Tailwind or such UI frameworks to style their website.
It's really important for static seed generators.
So it's coming and it will be soon there.
We already have the web bundler, but the V2 will come.
We're also thinking about AI in two places, actually.
One would be the CMS that will be in the dev UI where you will be able to write article.
It will automatically add tags or guess the title or write part of the article or tell you suggestion about your article, stuff like that.
So you can have AI help you.
edit content.
And the other part where we are considering AI is because everyone is talking about AI now and it's important that we will always need to have content on the web.
If you don't have the content, the AI will not be able to build its data and without its data, it won't be able to work.
So for this, you will need to provide the content and those generators will need to know how to make it friendly for AI to consume.
And we're actually working also on that so that when you use POC, it will automatically generate all the metadata that is necessary for AI to consume.
Semantic graph.
It will be AI friendly for AIs to consume.
One last question for me to wrap up.
And that's more probably for managers than for developers.
There are a lot of changes in the IBM slash Red Hat ecosystem.
A lot of...
Things move from one side to another.
Where does Quarkus remain?
Is it with IBM?
Is it with Red Hat?
Any concerns about the changing license?
Because that was a topic not long ago.
Can you share anything on that point?
So first thing, I'm maybe not the best person to answer that question.
But something I can say is that the fact that Quarkus has moved to common house.
Which is the most important part?
It means that it's fully open source and led by an open source organization.
Yeah, Mokim.
So Quark's destiny is tied to Open House Foundation.
And that allows it to still remain in the open source ecosystem.
And that's governed by that organization, right?
Exactly.
And it doesn't mean that Red Hat and IBM will stop helping it.
But I have not much information on that part.
But they're also still building projects on top of it.
It means that they will rely on it in the future.
Okay, great.
Thank you for your time and for sharing all the information.
Thanks to you, Olympio.
