Hey everyone! I've been building APIs in Java, mainly using Spark as my backend framework. Recently, I've taken a few steps to modernize my stack: I updated to Java 21, built a Docker image with GraalVM native images, and updated all my libraries. Now, I'm on the lookout for a more actively maintained web framework. I've really enjoyed using Spark because it's super simple and meets about 90% of my requirements. However, I'm considering Javalin, which is said to be a spiritual successor to Spark. I'd love to hear your experiences with Javalin or any thoughts on alternatives like Quarkus, Micronaut, or plain Vert.x. Just a heads-up, though—Spring is off the table at my organization, so let's skip that discussion!
5 Answers
I've been using Javalin for a prototype and love its simplicity. It's been actively maintained for around 8 years, so it feels like a solid choice to build on.
It really depends on your needs! Personally, I've been happy with Javalin for both work and personal projects. It has minimal boilerplate, and integrating things like authentication and OpenAPI is a breeze. I even migrated a project from Spark to Javalin, which made the transition pretty smooth since Javalin stems from Spark. While Quarkus is powerful, it can feel like overkill for smaller projects unless you opt to keep it super minimal, which is definitely an option!
I made the move from Spark to Javalin as well and I’m really pleased with it. If you’re looking for just a web framework, Javalin does the job perfectly!
We’ve deployed Javalin in production and I can only say positive things about it. It’s easy to use and well-maintained. If you're looking for a lightweight alternative, you might want to check out Helidon—it's really solid!
Helidon 4 is pretty neat! It has a lightweight web server setup that supports http1, http2, and more without any dependencies.
I used Javalin with Kotlin on a personal project and it has been great! I appreciate having more control with it compared to a heavy framework like Spring. It shares that same easy-going philosophy as Spark, which I really like.

Yeah, Quarkus can be a lot if you don't need its full capabilities. But you can definitely just package it with Vert.x for a lightweight setup!