Announcing Bosca 4.0
Bosca 4.0 is here — and it's a big one. We transitioned the server to a new foundation focused on performance, built a new middleware pipeline, and added security features across the board. But the real headline is GraalVM: Bosca can now compile to native images for sub-second startup and a smaller memory footprint.
Before we get into v4, it's worth stepping back to see how we got here.
The Journey to v4
Bosca started with a Rust backend. Rust was great — superfast and memory-efficient — but we wanted to simplify the architecture. We were able to optimize our GraphQL layer to get comparable performance from Kotlin/JVM, which made the trade-off straightforward.
We already had a Kotlin-based workflow and job system, and development was just faster in Kotlin. LLMs, at least at the time of the shift, produced better Kotlin code too, which further accelerated things for our small team.
Kotlin Multiplatform and Compose Multiplatform gave us even more leverage — shared code across server, Android, iOS, and web targets. We're now auto-generating over 120,000 lines of code through our KSP annotation processors, and between tests, server code, and frontend SDKs, the platform is over 325,000 lines.
Lines of code aren't the point, though. Because, lines of code don't amount to value. What does, though, is velocity. We're launching new features in days, not weeks. With v4, we're investing that velocity back into the foundation — making the platform faster, more testable, and ready for what's next.
A New Server Foundation
Bosca v3 ran on Ktor. It served us well, but when we set out to support GraalVM native images, Ktor's support just wasn't there yet. There were other motivations too: better control over SSE and WebSockets, handling extremely large file uploads, and having more say over the HTTP pipeline.
We considered alternatives like Vert.x, but ultimately decided that if we were going to make a change, we should go as low-level as possible. We landed on a direct Netty HTTP server. The v4 upgrade touched 590 files — 34,826 insertions and 5,666 deletions.
This isn't a knock on Ktor — it's a great framework. Once we committed to native images, we just needed a different approach. The goal was to simplify: fewer dependencies, and a system that's understandable end-to-end.
GraalVM Native Images
Bosca 4.0 can compile to GraalVM native images for sub-second startup and a reduced memory footprint.
There is one trade-off: GraalVM's native image compiler and the Kotlin scripting engine don't play well together. The scripting engine is now conditionally compiled — if you're building a native image, scripting is excluded (but still available via remoting). We added support for remote script execution environments to keep custom scripting fully functional. Keeping Bosca dynamic matters to us. Kit can still write custom scripts for product-minded people, analytics events can still trigger scripts to enrich data, and every other scripting use case keeps working.
In practice, Bosca runs as a hybrid: the HTTP-serving layer compiles to native images for fast startup and low memory, while workflow jobs, scripting, and other background processes run on the traditional JVM where dynamic behavior is unrestricted. We're looking forward to Project Leyden to further improve this story.
Testing
We've gone from 0% test coverage for Bosca Server to over ~39% in a matter of months, and we continue to invest heavily in increasing that number. Every major subsystem — server infrastructure, middleware, security, content pipeline — has dedicated test coverage, and new features ship with tests from day one.
What's Next
v4 sets the stage for what's coming.
We've added communication channels — push notifications, email, and banners — with more on the way. These build on our personalization strategy: segments define the audience, campaigns define the message, and channels deliver it. The pieces are coming together.
Up next: feature flags, A/B testing for content, and a recommendation system to complement the segmentation and personalization work we've been building through v3. We'll keep investing in performance while shipping features that bring real value to users and product teams.
It's still early days, but Bosca is maturing fast. There's a lot of fun stuff coming.
The full list of changes is in our Changelog.