Editions
The URL Shortener follows an open-core model. The Community Edition is a complete, production-ready URL shortener under the EUPL 1.2 — links, redirects, statistics, users and roles, REST API, import and export. Nothing is time-limited, nothing phones home, and nothing is disabled to sell you an upgrade. The Enterprise Edition is an optional plug-in layer on top of it.
- Links, custom aliases, expiration, redirects
- Click statistics with device, referrer and bot detection
- Users, roles and permissions
- REST API, Java client SDK, Vaadin admin UI
- Bulk create, import and export
- Campaigns, tags and placement labels
- MCP server for AI agents
- Command-line client
- Audit export
- Commercial licence and support by jSentinel Ltd
Feature comparison
Everything needed to create and operate short links is in the free Community edition. The Enterprise edition adds the manage-and-integrate-at-scale layer on top.
How the two fit together
Enterprise features register themselves through Java's ServiceLoader at startup. The community modules publish two extension seams — one for the REST server, one for the Vaadin UI — and the plug-in jars simply sit on the classpath.
flowchart TB
subgraph CE["Community Edition · EUPL 1.2"]
core["core<br/>domain · DTOs · validation"]
server["server<br/>REST API · redirects"]
ui["ui<br/>Vaadin admin"]
client["client<br/>Java SDK"]
end
subgraph SPI["Plug-in seams (published SPI)"]
hspi["HandlerContribution<br/>ServerContext · lifecycle hooks"]
fspi["FeatureContribution<br/>routes · menu · form sections"]
end
subgraph EE["Enterprise Edition · commercial"]
lm["link-meta<br/>campaigns · tags · labels"]
ae["audit-export"]
mcp["MCP server"]
cli["CLI"]
end
server --- hspi
ui --- fspi
hspi -.plugs into.- lm
fspi -.plugs into.- lm
hspi -.plugs into.- ae
fspi -.plugs into.- ae
What this means in practice
- No fork, no patched build. Community sources are never modified for a commercial feature. A build-time boundary test fails the build if community code ever references an enterprise package.
- Graceful degradation. Without a licence the plug-in endpoints answer
403 license requiredand their menu entries and views disappear. The community application keeps running unchanged. - Your data stays yours. Data written by an enterprise feature stays in your store. If a licence lapses, that data lies dormant — and comes back the moment a licence is present again. Nothing is deleted and nothing is held hostage.
- One version number. Both editions are built and released from the same version, so a community upgrade never leaves the plug-ins behind.