Comparing Roq with Hugo, Jekyll, and JBake: A Feature Breakdown
Here’s a feature comparison with some popular SSGs to highlight how Roq stacks up.
| Feature | Roq | Hugo | Jekyll | JBake |
|---|---|---|---|---|
| Build Perf | Fast | Extremely fast (written in Go) | Slower due to Ruby and plugins | Slower, runs on Java with Freemarker/Groovy templates |
| Dev Perf | Instant hot reload with Quarkus dev-mode | Fast rebuilds | Slow rebuilds on large sites | Manual rebuild required |
| Templating | Qute (simple & readable) | Go templates (powerful but complex) | Liquid (easy but limited) | Freemarker, Groovy, Thymeleaf... |
| Extensibility | Rich plugin marketplace built on Quarkus extensions | Batteries-included, Hugo Modules | Large plugin ecosystem (mostly stale) | Limited, Java-based plugins |
| Setup | Just install the CLI | Single binary install | Requires Ruby & Bundler | Requires Java & Gradle/Maven |
| Content Editor | Built-in Notion-like editor with rich text and Markdown | None (use external editors) | None (use external editors) | None (use external editors) |
| Search | Built-in client-side search (Lunr plugin) | Requires external setup | Requires plugins or external service | No built-in support |
| Dynamic Features | Can integrate with Quarkus for hybrid use | Mostly static, some JS workarounds | Plugins enable some dynamic behavior | Fully static |
| Migration Tools | Built-in Jekyll-to-Roq converter | Hugo import (Jekyll only) | Importers via separate gems | No migration tooling |
| CSS/Bundling | Built-in Tailwind and JS bundling (no Node.js) | Built-in asset pipeline, Tailwind requires npm | Requires plugins | No built-in support |
| AI Support | Built-in llms.txt generation and MCP server | Community modules for llms.txt | Community gems for llms.txt | None |
| Community | Growing, part of Quarkus ecosystem | Large, well-established | Large, long history | Niche, mostly inactive |
| Learning Curve | Beginner friendly, easier for Java developers | Can be difficult due to Go templates | Complex to setup and update | Moderate, depends on template engine |
Why Roq?
Roq is the only SSG where you can write a blog post in a Notion-like editor, preview it instantly with hot reload, and deploy a fully static site with built-in search, SEO, and Tailwind, all without touching Node.js.
Need more? Since Roq is built on Quarkus, you can add REST endpoints, database access, or any Quarkus extension to go hybrid. The very large quarkus.io website, with its thousands of pages and multiple versioned documentation sets, has been fully migrated to Roq with success (last few tweaks in progress, online version should be updated soon).
Coming from Jekyll? A built-in converter handles front matter, Liquid-to-Qute templates, and configuration mapping. Check the migration guide for details.
Image processing is still in the works (Issue #42).
Conclusion
Jekyll is widely used but comes with the complexity of setting up Ruby environments, which often causes headaches. Performance can be an issue for large sites.
JBake was the only Java-based SSG before Roq, but it has not kept up with modern alternatives.
Roq has grown into a complete, modern, Java-friendly SSG that brings the ease of Jekyll, the speed of Hugo, and the flexibility of Quarkus, with unique features like its built-in editor and rich plugin ecosystem.