All posts

Client 0.8.0, Server 0.9.0: The One Where We Changed the Desktop Stack

New client, new server, new UI, and a signed macOS app. Here's what changed and why.

Jean2 just shipped client 0.8.0 and server 0.9.0. The version numbers aren't the interesting part. What's interesting is the decisions behind them, and where they're pointing.

Tauri → Electron for desktop

The desktop client moved from Tauri to Electron. We are keeping Tauri for mobile, but to future proof our flexibility regarding webview features on desktop, there's no other option.


SDK layer (coming soon)

There's something in this release that isn't fully public yet, but it's already running underneath: an SDK layer handling communication between client and server.

Right now it's internal (not published to npm yet): the client talks to the server through it. The plan is to release it publicly, so anyone can build on top of Jean2's infrastructure without reinventing the transport layer.

More on this when it's ready to ship. No timeline.


UI rework: server, workspace, sessions

The UI got a proper restructure. Server, workspace, and sessions are now properly separated. Not just cosmetic. Architectural. (Thanks to Tanstack router)

Jean2 is not going to be only about chat sessions. The old UI was too locked into one mental model. The new separation means we can build different types of overviews and interactions on top of the same foundation. Chat is the starting point, never the destination.


The macOS client is now signed. If you're on macOS, use the desktop app. That's the recommended path.

For everything else (Linux, Windows), the web version is still the way to go.

Next targets: signed Windows build, then mobile.


Where to try it

Server binary, macOS desktop app, browser client: grab what you need from the download page or follow the Getting Started guide.

Jean2 is still in active development. These releases feel like a real step forward, but there are plenty of rough edges left. If you try it and something's off, open an issue or hit me up at @danielbilekq0.