Frameworks & Meta-Frameworks
Want to propose a change, disagree with a placement, or add an interesting new technology? Please reach out to @Damian Szafranek. This Tech Radar is a living document - we keep it useful by updating it together as our projects, tools, and experiences evolve.
Scope
Core frameworks and meta-frameworks for building both Frontend and Backend applications (UI frameworks, SSR/SSG meta-frameworks, and server frameworks used across our stack).
Overview
ADOPT
Proven technologies we have high confidence in; our default choices.
TRIAL
Promising technologies to explore and evaluate for adoption.
Technologies Breakdown
React ADOPT
The default and strongly recommended choice for most new Single Page Applications (SPAs), complex interactive UIs, and component libraries. Forms the foundation for our primary meta-framework (Next.js).
We have internal expertise and a pool of experienced developers. Its mature ecosystem, vast community support, component-based architecture, and integration with our design system make it a highly productive and reliable choice.
Angular ADOPT
Recommended for large-scale enterprise applications where its opinionated structure and built-in tooling provide benefits. Can be used for new projects if specific requirements, client constraints, or project context strongly favor Angular.
Mature, comprehensive, and opinionated framework with strong TypeScript integration. Our team possesses significant prior experience and expertise with Angular, ensuring we are fully capable of undertaking new implementations effectively when the need arises. Good for complex applications requiring a standardized structure and represents a significant existing investment/skillset within the team.
Next.js ADOPT
The preferred and strongly recommended framework for public-facing websites, applications requiring Server-Side Rendering (SSR) or Static Site Generation (SSG) for performance/SEO benefits, and projects where integrated API routes offer convenience (full-stack React).
Builds directly on our extensive React expertise. Provides critical features out-of-the-box (routing, rendering strategies, image optimization) that significantly improve developer experience (DX) and application performance. Its capabilities align well with the requirements of many of our key projects.
Spring Boot 2.x ADOPT
This is our well-established and current standard for building back-end services. Its mature ecosystem provides a stable, secure, and productive environment for all new projects.
Spring Boot 3.x ADOPT
Our default choice for new Spring-based backend services. It aligns well with our current baseline (Java 21), gives us a modern Spring ecosystem. We treat 3.x as the safe, well-supported path for most backend work and for modernizing existing Spring Boot 2.x systems when the effort is justified.
Spring Data JPA ADOPT
As the default choice for data persistence, Spring Data JPA is an integral part of our technology stack. It standardizes our data access layer and accelerates development.
Spring Security ADOPT
This is our mandatory framework for handling authentication and authorization. Its comprehensive features ensure that our applications are secure and follow best practices.
Vue.js TRIAL
Explore on specific new projects, internal tools, or Proof-of-Concepts (PoCs) where its progressive adoption model, potentially gentler learning curve, or specific ecosystem libraries might offer advantages over React/Angular.
An approachable and performant framework with excellent documentation. We are trialing it to evaluate its ecosystem fit, developer experience for teams less familiar with React/Angular, and suitability for specific use cases (e.g., embedding interactive widgets into non-SPA contexts). Findings from trials will inform future status.
Nuxt.js TRIAL
Explore alongside Vue.js trials specifically for projects requiring SSR, SSG, file-based routing, or other meta-framework features within the Vue ecosystem.
Provides a powerful layer on top of Vue.js, analogous to Next.js for React. Trialing is necessary to understand its capabilities, stability, DX, and how it compares operationally and functionally to Next.js for building full-stack Vue applications or performant websites.
Spring WebFlux TRIAL
Explored for reactive programming in Java; shows high potential for performance-sensitive, non-blocking applications.
Mustache TRIAL
A simple and effective logic-less template engine for projects where minimal complexity is desired.
Astro ASSESS
Actively investigate for content-heavy websites (e.g., marketing sites, blogs, documentation) where maximizing performance via minimal client-side JavaScript is a primary goal. Build PoCs to test its "Islands Architecture" and integration with our existing UI components (React/Web Components).
Its innovative architecture promises significant performance benefits for specific types of sites. The ability to use components from various frameworks (React, Vue, Svelte, etc.) is intriguing. We need to assess its maturity, ecosystem depth, build tooling, and suitability for sites requiring more complex interactivity before considering a trial.
Svelte / SvelteKit ASSESS
Monitor community growth, tooling maturity (especially SvelteKit stability and features), and the availability of learning resources and experienced developers. Build small, non-critical PoCs or internal tools to evaluate its reactivity model and DX.
The compiler-based approach offers potential performance advantages (smaller bundles, less runtime overhead) and a different development paradigm that warrants investigation. SvelteKit provides the necessary meta-framework features. Assessment is needed to understand the practical benefits, learning curve, ecosystem readiness, and potential integration challenges compared to our adopted frameworks.
Remix ASSESS
Research its core philosophy emphasizing web platform standards (Request/Response, FormData) and its distinct approach to data loading and mutations, particularly nested routing. Build targeted PoCs to compare its patterns directly against Next.js for typical data-driven application use cases.
Positions itself as a strong alternative/competitor to Next.js, focusing heavily on web fundamentals which could lead to robust and performant applications. We need to assess its practical advantages, potential disadvantages (e.g., different caching strategies), developer experience, and the learning curve for our teams accustomed to Next.js patterns.
Spring Boot 4.x ASSESS
Spring Boot 4.x is on the radar to actively watch and selectively evaluate, but itβs not our default yet. The goal is to understand what changes it brings (migration impact, ecosystem readiness, library compatibility, operational stability) before we recommend it broadly. Weβll consider early adoption only in cases where a project has a strong reason to be on the newest major line and can absorb the upgrade cost.
AngularJS HOLD
Avoid for all new development initiatives without exception. Existing AngularJS applications must have active and prioritized migration plans. Only critical security patches or essential maintenance should be performed on remaining instances.
This is the legacy (v1.x) framework which reached official End-of-Life (EOL) in December 2021. It receives no updates, poses significant security risks, lacks modern web platform features, and hinders developer productivity compared to modern alternatives like Angular (v2+) or React. Migration away from AngularJS is a high priority.
Spring Boot 1.x HOLD
Spring Boot 1.x is end-of-life and no longer receives security updates. Its continued use is a significant risk. All remaining projects on this version should be prioritized for an immediate upgrade.