
EC Grants: from Vaadin to the latest Angular
We migrated a European Commission grants management platform — used to prepare, award and follow up EU grants — from a server-side Vaadin (Java) user interface to a modern application on the latest Angular, with the business logic exposed through REST APIs.
EU grants are direct financial contributions from the EU budget to projects that further EU interests or implement EU programmes and policies. They are awarded through calls for proposals by Commission directorates-general, offices and agencies, under principles such as equal treatment, non-cumulative funding and co-financing.
The platform supporting these grant processes had been built with Vaadin, a server-side Java UI framework. It worked — but every interaction went back to the server, the interface was tightly coupled to the business logic, and neither skills nor components could be shared with the Commission’s other Angular platforms.
The challenge
- User interface and business logic tightly coupled inside Vaadin views
- A server round-trip and server-side session state for every user interaction
- A niche UI framework, with a small talent pool and no reuse across other platforms
- Complex grant workflows — from call preparation to award and follow-up — that had to keep working
- Migration of a live system without disrupting ongoing grant processes
How we migrated
Decouple first, then rebuild the interface on the latest Angular — screen by screen, with the business logic preserved.
- 1
Decoupling the business logic
Logic extracted from Vaadin views into Java services and exposed through contract-first REST APIs with OpenAPI specifications — reusable by any client.
- 2
Latest Angular front-end
A single-page application on the latest Angular: standalone components, signals, typed reactive forms and lazy-loaded feature areas.
- 3
Reusable components
Shared building blocks for grant forms, tables, workflow steps and validation — reused across screens and aligned with the Commission’s other corporate platforms.
- 4
Screen-by-screen migration
Functional areas moved in waves, each verified for parity against the Vaadin version before switching users over.
- 5
Security & access
Role-based access to grant data enforced in the API layer, with corporate authentication.
- 6
Automated quality
CI/CD pipelines, automated tests and quality gates across front-end and back-end.
How we did it
The same proven approach as our other migrations: architecture first, reuse always.
API contracts first
Front-end and back-end teams worked in parallel on agreed OpenAPI contracts.
Reuse before build
Recurring grant patterns built once as components and configured per screen.
Business validation per wave
Grant managers validated each migrated area before it went live.
No big bang
The legacy and new interfaces coexisted until each area was proven.
Standardisation
- One front-end stackAngular across Commission platforms — shared skills, shared components, shared tooling.
- No UI lock-inBusiness logic behind REST APIs, independent of any user interface framework.
- Maintainable by designTyped code, reusable components and automated tests make future changes faster and safer.
Technology
Before
Front-end
Back-end
Delivery
Outcomes
- Grants platform moved off Vaadin onto the latest Angular
- Business logic exposed as reusable, contract-first REST APIs
- A more responsive interface, rendered in the browser instead of on the server
- One front-end stack shared with the Commission’s other modern platforms — easier to staff and maintain
Sources:European Commission — Grants and procurement
← ProjectsLet's discuss your challenges.
Architecture, migration, AI or scaling a team — tell us what you are facing. We reply within one business day.