VAADIN

Introducing AppJars: Production-Ready Modules for Java Enterprise Applications

25 August, 2026

Over years of building enterprise applications for clients across many industries, we kept running into the same thing. Before a team can write the part that makes an application unique, it spends weeks, sometimes months, rebuilding the same foundations: user management, audit trails, reporting, translations, email, background jobs. Necessary work, and rarely the reason the project started.

Today we are launching AppJars, a suite of production-ready modules that turn those recurring foundations into reusable building blocks you drop straight into your Java application.

The work every enterprise app repeats

Authentication, roles, audit logs, configuration, reporting, internationalization, scheduling. Most serious applications need all of it, and most teams build it again from scratch on every project. That work accounts for a large part of initial development and ongoing maintenance. It is time and budget that never reaches your actual product.

Your business logic is the part only you can build. AppJars covers the rest.

What an AppJar is

Each AppJar is a full-stack, production-ready module delivered as a drop-in dependency for Spring Boot and Vaadin applications. Add it to your project, register a layout, and the feature is ready to use, UI included.

Modules are independent. None of them requires the others to be present, so you can adopt one, or several, and grow as your requirements evolve. When several AppJars coexist, optional integration bridges let them share context, and each module’s Getting Started guide documents how to wire them together.

Eleven modules

Activity Log

Records user activity events, with configurable extraction rules and automatic retention policies.

AI Support

Adds an LLM-backed assistant grounded in your application’s own knowledge base, with streaming chat, document management, and Meta channel integration.

Configuration Manager

Manages application-level and per-user configuration values at runtime, with live propagation to Spring properties and a built-in audit history.

Data Query

Publishes stored SQL, HQL and REST queries as parameterized reports, charts and dashboards that administrators define at runtime, with no Java code and no redeployment.

Dynamic Menu

Drives navigation from the database, with role-based visibility and drag-and-drop ordering, updated without a redeploy.

Email Manager

Manages the full lifecycle of outgoing email, from composition and review to queuing, delivery, and retries on failure.

I18N Manager

Manages languages and translations at runtime through a database-backed Vaadin i18n provider.

Issue Tracker

Embeds a complete project and issue management system, with workflows, custom fields, time tracking, and role-based permissions.

Process Manager

Schedules and monitors background tasks using cron expressions, with execution history and manual triggering.

User Manager

Manages users, roles, groups, access rules, and authentication, including registration links and password resets.

User Profile

Extends each user record with profile data and avatar images, with built-in cropping.

Each one is documented, tested, and maintained.

AI Support
Data Query
Issue Tracker

How it works

Add a Maven dependency, register a router layout, and you have the baseline. Spring Boot auto-configuration handles entity scanning, component registration, and startup logic.

Two design decisions matter here. First, every AppJar is split into contract modules and implementation modules, so an application that needs to call a service can depend on the business API alone, with no transitive dependency on JPA entities, Hibernate, or Vaadin. Clean architecture stays clean.

Second, every layer exposes extension points. Custom repositories extend the data access layer, @Primary beans override service logic, and your own views can navigate directly into AppJar views as part of your navigation flow. You adapt each module to your application instead of working around it.

Try it free

Every AppJar can run without a license in free mode, intended for evaluation, development, and small-scale deployments. Some modules apply limits on records or daily operations while unlicensed; the documentation lists the exact limit for each one.

License validation runs entirely offline. Licenses are cryptographically signed and verified locally at startup, with no external service contacted and no network access required. Nothing in your application phones home.

The source is included, so you can read and debug what actually runs inside your app. Commercial software does not have to be a black box. 

An open place to ask

Evaluating a module usually raises questions, and those questions are better answered in public than in a support inbox. AppJars has a discussion forum on GitHub, open to anyone, where you can ask how something works, share how you integrated a module, or suggest what you would like to see next. Bug reports and feature requests go in the issue tracker on the same organization, where you can follow what has been reported and what is being worked on for each module.

Documentation

Every AppJar ships with its own documentation set at docs.appjars.com: an overview of what the module does, a Getting Started guide for integrating it, a user guide covering both end-user and administrator features screen by screen, and a developer guide for extending it. Alongside those, cross-cutting pages cover architecture, integration and configuration, customization techniques, route configuration, and licensing.

It is a lot of material, and that is deliberate. You should be able to answer most of your questions before you write a line of integration code, and know what you are adopting before you commit to it.

Licensing, support, and bundles

Buy a single module, or the Full Bundle for access to every AppJar under one license. Everything is available through self-checkout at appjars.com, with no sales call required to get started.

Subscriptions run for a year and include every update and bug fix released during that period. When a term ends, your license does not stop working: you keep perpetual use of the last release issued while your subscription was active. You are not renting the software, and an expired subscription never leaves an application unable to run.

Licenses are priced per application, not per seat. Users, developers, environments and deployments are all unlimited, so adding people to the team or standing up another staging server costs nothing and requires no separate license file.

Support comes in three tiers, so you can match the level of backup to what the project actually needs:

Core
Covers the commercial license itself, for teams that are comfortable working from the documentation.

Startup
Adds the customer portal, including an AI assistant trained on the documentation and available around the clock, plus ten support hours per year for integration help, defect investigation, and anything else tied to a licensed module.

Enterprise
Adds issue escalation, which routes bug reports directly to the engineering team for priority triage, along with eighty support hours per year and a faster acknowledgment target.

The full breakdown is on every module’s pricing page and in the service terms. Support hours are billed in fifteen minute increments, and you can buy more at any time from the portal.

If your situation does not fit the standard plans, we can put together a custom bundle with pricing to match. Get in touch and we will work it out.

Built by Flowing Code

AppJars comes from Flowing Code, an ISO 9001 certified software company that has spent years building enterprise Java applications and maintaining more than 30 open-source Vaadin add-ons.

Get started

Explore the catalog, read the docs, and try any module for free.

appjars.com | docs.appjars.com | github.com/appjars 

Martín López
By Martín López

Systems Engineer, coding is my passion. Strong experience in Java Ecosystem, and frameworks like Vaadin, Hibernate and Spring. Always willing to help companies to design build workflows and how to use the correct tools for producing high quality software.

Join the conversation!