Technology Radar
An opinionated guide to technologies, tools, and practices.
Every item reflects direct production experience. We don't place technologies we haven't used.
Build
Adopt
TypeScriptThe default for any serious JavaScript project.
AdoptReactStill the best trade-off of ecosystem, hiring, and capability.
AdoptTailwind CSSReplaced component libraries as the pragmatic choice for rapid UI.
AdoptViteBuild tooling that just works. Webpack is over.
AdoptPostgreSQLThe database. Reliable, extensible, battle-tested.
AdoptRedisIn-memory data store that does exactly what it claims.
AdoptWebSocketsReal-time data in finance, dashboards, and collaboration. Proven.
AdoptElysiaBun-native backend framework. Fast, typed, minimal.
AdoptBullMQRedis-backed job queues. Reliable async processing.
AdoptTypeORMTypeScript ORM with migrations. Gets the job done.
AdoptMaterial UIComprehensive React component library for rapid enterprise UI.
AdoptSwiftApple's language. Fast, safe, and the only real choice for iOS.
AdoptSwiftUIDeclarative UI for Apple platforms. The future of iOS development.
AdoptAG GridEnterprise data grid. Handles millions of rows without breaking.
AdoptHighchartsBest charting library available. Worth the licence.
AdoptActix-webRust web framework. Fastest in class, production-proven.
AdoptRustPerformance and safety that justify the learning curve.
AdoptBunGenuinely faster than Node. The ecosystem caught up.
AdoptSeaORMAsync Rust ORM. Type-safe database access without the raw SQL.
TrialVikeVite-native React framework. The lightweight alternative to Next.js.
AssessPreact3KB React alternative. Worth evaluating where bundle size matters.
HoldNext.jsGrowing complexity and Vercel coupling. Watching the direction.
HoldDenoGood ideas, but Bun won the mindshare race.
HoldJavaVerbose, slow to start, heavy to run. Still everywhere.
HoldC#Good language, overcomplicated community, one config away from null chaos.
HoldSpringJava enterprise standard. Solid engineering, heavy ecosystem.
HoldASP.NET CoreCapable framework, Microsoft ecosystem lock-in.
HoldPHPLegacy codebases work. New projects belong in TypeScript.
HoldMariaDBFine MySQL fork. PostgreSQL is the better default.
HoldSymfonyBest PHP framework. Still PHP.
HoldDoctrineSerious PHP ORM. Migrations, DBAL, the works.
HoldTwigModern PHP templating. Clean syntax, secure defaults.
HoldEasyAdminSymfony admin panels in minutes. Held back by PHP.
HoldPHPStanStatic analysis that makes PHP tolerable. Essential for PHP codebases.
HoldPuppeteerHeadless Chrome automation. Playwright does it better.
HoldPrestaShopPHP e-commerce platform. Works for what it is, limited by PHP.
HoldExpress.jsThe default Node.js framework for a decade. Elysia is the future.
HoldInversifyJSDependency injection for TypeScript. Useful, but adds ceremony.
HoldPassport.jsAuthentication middleware. Works, but Auth0 is less to maintain.
HoldAngularToo much ceremony for too little payoff.
HoldjQuery UIDatepickers and dialogs from 2010. Material UI replaced the need.
HoldjQueryStill maintained, still works. Not for new projects.
DropMongoDBPostgreSQL JSONB covers the use cases. Move on.
DropSmartyTwig replaced it in PHP. React replaced PHP templating entirely.
DropFlourishAbandoned PHP library. Migrate when you touch the code.
DropWebpackVite killed it. The configuration era is over.
DropBabelTypeScript and native browser support made it redundant.
DropGraphQLHad promise. Too bloated for its own good while lacking important functionality.
DropApollo FederationGraphQL gateway complexity. Solving a problem that shouldn't exist.
DropApollo GraphQLGraphQL server with the most overhead. Drop GraphQL, drop Apollo.
DropExtJS / SenchaCommercial lock-in for what React and MUI give you for free.
DropBootstrapTailwind gives you the system without the opinions. Move on.
DropAngularJSEnd of life since 2021. Every day without migrating costs more.
Run
Adopt
AWS CDKInfrastructure as Code in TypeScript. Replaces CloudFormation YAML entirely.
AdoptDockerStandard for reproducible environments everywhere.
AdoptAmazon S3Foundation of half of AWS. Storage solved.
AdoptAmazon CloudFrontEdge delivery for static sites. Simple, effective, cheap.
AdoptAmazon ECS / FargateContainers without the Kubernetes overhead. Production-proven for four years.
AdoptAmazon RDSManaged PostgreSQL and MySQL. Handles scaling, backups, and failover.
AdoptAmazon Route 53DNS that just works with the rest of AWS.
AdoptNginxReverse proxy and web server. Fast, stable, everywhere.
AdoptStripePayment processing done right. Best API in the industry.
AdoptJWTStateless authentication tokens. Simple, portable, standard.
AdoptAuth0Authentication and authorisation without building it yourself.
AdoptAmazon EC2Still has its place, but Fargate removes the need most of the time.
AdoptAWS LambdaRight for event-driven workloads. Not a universal architecture.
AdoptAmazon SESTransactional email. Good enough, cheap.
AdoptAmazon CloudWatchAWS-native monitoring. Functional, not elegant.
AdoptAmazon ElastiCacheManaged Redis. Makes sense if you are all-in on AWS.
AdoptAmazon SQS / SNSAsync messaging done simply.
DropKubernetesUseful if you sell cloud-agnostic software. Otherwise, use your cloud natively.
DropElectron / OpenFinDesktop wrappers for web apps. The browser is the platform now.
Automate
Adopt
Claude APIBest reasoning model available. Production integration experience.
AdoptClaude CodeThe AI coding tool that doesn't fight its own context window.
AdoptClaude SkillsReusable prompts that turn Claude Code into a specialist.
AdoptModel Context ProtocolUniversal standard for AI-to-data integration. Use it daily.
AdoptQdrantVector database that delivers. Fast, purpose-built, production-ready.
AdoptOllamaRun LLMs locally. Essential for RAG and embedding pipelines.
AdoptLM StudioLocal model server with an OpenAI-compatible API. Drop-in replacement.
AdoptDoclingDocument parsing that actually works. PDF, DOCX, images — all handled.
Adoptnomic-embed-textLocal embedding model. Fast, free, good enough for production RAG.
AdoptEmbeddingGemmaGoogle's embedding model. Strong retrieval quality from a small footprint.
AdoptGemmaGoogle's open-weight model. Best local reasoning at its size.
AdoptPiper TTSFast local text-to-speech. Low latency, many voices.
AdoptKokoro TTSHigh-quality local TTS. Best naturalness in the open-source space.
AdoptDiana TTSRust-based TTS engine. Fast inference, small footprint.
AdoptGitHub CopilotGood autocomplete. Not agentic.
AssessGeminiInteresting multimodal capabilities. Unclear production story.
HoldGPT / OpenAI APICapable but expensive. The burn rate gives pause.
HoldLlamaDevelopment has stalled. DeepSeek and Qwen are more interesting.
HoldElasticsearchVector databases are eating its lunch.
Deliver
Adopt
JiraIssue tracking standard. Bloated, but nothing replaces it.
AdoptGitVersion control. Solved problem. No alternatives worth considering.
AdoptVisual Studio CodeThe editor that won. Extensions, speed, universal support.
AdoptSentryError tracking that shows you what actually happened.
AdoptSpec Driven DevelopmentWrite the spec before the code. AI implements, humans verify.
AdoptOpenSpecCLI tool that makes Spec Driven Development practical.
AdoptTDDWrite tests first. Everything else follows.
AdoptPlaywrightCross-browser end-to-end testing that actually works.
AdoptStorybookComponent development in isolation. Essential for shared UI libraries.
AdoptVitestVite-powered testing. Fast, compatible, no config.
AdoptJenkinsNot glamorous. Reliable. Extensible.
AdoptOxlint50-100x faster than ESLint. Already replaced it.
AdoptPrettierFormatting is a solved problem. Just use it.
AdoptGitHub ActionsGood for simpler pipelines. Jenkins wins for complex orchestration.
AdoptSonarQubeCode quality metrics. Useful for teams.
AdoptKanbanLightweight. Fits how small teams actually work.
HoldCypressPlaywright does everything it does, better.
HoldESLintOxlint is 50-100x faster. No reason to stay.
DropJestVitest replaced it. Faster, simpler, Vite-native.
DropBiomeTried to replace ESLint and Prettier in one tool. Oxlint + Prettier is better.
DropWebDriverIOAnother Selenium wrapper. Playwright made the entire WebDriver ecosystem redundant.
DropSerenityBDD layer over Selenium. Both the foundation and the abstraction are obsolete.
DropSeleniumPlaywright replaced it entirely. No reason to start new projects with Selenium.
DropScrumCeremony that optimises for managers, not engineers.