Yesterday, I uncovered the Javelit project in this
article
where I built a small frontend to create and edit images
with Google’s Nano Banana image model.
Javelit
Javelit is an open source project inspired by Streamlit from the Python ecosystem
to enable rapid prototyping and deployment of applications in Java.
Have you ever heard of Javelit?
It’s like Streamlit in the Python ecosystem, but for the Java developer!
I was lucky that the project creator reached out and introduced me to this cool little tool!
Javelit is a tool to quickly build interactive app frontends in Java, particularly for data apps, but it’s not limited to them.
It helps you quickly develop rapid prototypes, with a live-reload loop, so that you can quickly experiment and update the app instantly.
Large Language Models (LLMs) are all becoming “multimodal”.
They can process text, but also other “modalities” in input, like pictures, videos, or audio files.
But models that output more than just text are less common…
Recently, I wrote about my experiments with Nano Banana 🍌 (in Java),
a Gemini chat model flavor that can create and edit images.
This is pretty handy in particular for interactive creative tasks, like for example a marketing assistant that would help you design a new product,
by describing it, by futher tweaking its look, by exposing it in different settings for marketing ads, etc.
Micronaut lacked a dedicated module for creating MCP servers, but fortunately, recently Micronaut added official support for MCP,
so I was eager to try it out!
For the impatient
You can checkout the code we’ll be covering in this article on GitHub.
Especially since this week, Google announced that
Veo 3 became generally available,
with reduced pricing, a new 9:16 aspect ratio (nice for those vertical viral videos) and even with resolution up to 1080p!
In today’s article, we’ll see how to create videos, in Java, with the GenAI Java SDK.
We’ll create videos either:
By now, you’ve all probably seen the incredible images generated by the Nano Banana model
(also known as Gemini 2.5 Flash Image preview)?
If you haven’t, I encourage you to play with it within Google AI Studio,
and from the Gemini app.
or have a look at the @NanoBanana X/Twitter account which shares some of its greatest creations.
As a Java developer, you may be wondering how you can integrate Nano Banana in your own LLM-powered apps.
This is what this article is about! I’ll show you how you can use this model to:
A few days ago, Google DeepMind released a new embedding model based on the Gemma open weight model: EmbeddingGemma.
With 308 million parameters, such a model is tiny enough to be able to run on edge devices like your phone, tablet, or your computer.
Embedding models are the cornerstone of Retrieval Augmented Generation systems (RAG),
and what generally powers semantic search solutions.
Being able to run an embedding model locally means you don’t need to rely on a server (no need to send your data over the internet): this is great for privacy.
And of course, cost is reduced as well, because you don’t need to pay for a remote / hosted embedding model.
I often find myself staring at a wall of text online.
It could be a lengthy technical article, a detailed news report, or a deep-dive blog post.
My first thought is often: “Is this worth the time to read in full?”
On top of that, for my podcast, Les Cast Codeurs, I’m constantly gathering links and need to create quick shownotes, which is essentially… a summary.
My first attempt to solve this was a custom Gemini Gems I created: a personalized chatbot that could summarize links.
It worked, but I often ran into a wall: it couldn’t access paywalled content, pages that required a login, or dynamically generated sites that I was already viewing in my browser.
The solution was clear: I needed to bring the summarization to the content, not the other way around.
The idea for a Chrome extension was born.
Let me share an interesting experiment I worked on to visualize your AI agent structure, more specifically, Agent Development Kit (ADK) multiagents.
The more complex your agents become, as you split tasks and spin off more specialized and focused sub-agents, the harder it is to see what your system is really made of, and how the interactions happen between the various components.
This is also something I experienced when I was coveringGoogle Cloud Workflows: the more steps in the workflow, the more loops I had, indirections, conditions, etc, the trickier it was to understand and debug.
And sometimes, as the saying goes, a picture is worth a thousand words.
So when I was working on my recent series of articles on ADK agentic workflows
(drawing diagrams by hand) this idea of experimenting with an ADK agent visualizer came up immediately.