"SKYLOGIQ" The moon can't shine on its own.
technology radar

Technology Radar

Edition 1 · November 2026

What we would tell a client today about the techniques, platforms, tools and languages behind AI in business logic, Rust, modernization and security. Thirty-seven positions, each with a reason.

About this edition

Every entry sits in one of four rings. Adopt: we recommend it for production work. Trial: worth using on a real project, with a way back. Assess: worth understanding now, not yet worth betting a system on. Hold: do not start anything new with it.

These are positions, not endorsements. No vendor asked for, paid for or reviewed any entry. Where an entry cites a vendor's numbers, they are the vendor's numbers. The radar is updated in May and November; the next edition is due in May 2027.

The four rings

  • AdoptWe recommend it for production work.
  • TrialWorth using on a real project, with a way back.
  • AssessWorth understanding now. Not yet worth betting a system on.
  • HoldDo not start anything new with it.

All entries are new in this edition.

The radar

Technology radar, edition 1, Edition 1 · November 2026 Four quadrants and four rings, Adopt in the middle, then Trial, Assess and Hold outwards. 37 numbered entries. Techniques 13, Platforms 7, Tools 7, Languages and frameworks 10. Each number links to its entry below. AdoptTrialAssessHold TechniquesPlatformsToolsLanguages and frameworks Bounds before models 1 Shadow mode before cut-over 2 Evaluation suites built from your own history 3 Structured outputs for every model call that feeds code 4 Runtime boundaries for agents 5 Decision models for classification and routing 6 Agent-driven language ports with parity tests 7 Agent-built audit tooling 8 Hard-wiring one model vendor into business logic 9 Chat interfaces as an AI strategy 10 Big-bang rewrites 11 Merging agent-written code on green tests alone 12 Disabling verification to clear certificate errors 13 PostgreSQL, including for vectors 14 Serverless functions for low-volume business endpoints 15 Self-hosted open-weight models for regulated data 16 Dedicated EU servers for steady workloads 17 WebAssembly sandboxes for code you did not write 18 Agent-first version control 19 Kubernetes for small estates 20 Terminal coding agents under review gates 21 Playwright for end-to-end checks and release gates 22 Borg with an off-site repository 23 OpenRouter for model evaluation 24 Open-source AI penetration agents 25 SearXNG for search inside internal tools 26 Abliterated models from unknown publishers 27 Rust for new performance- and safety-critical services 28 Tokio and Axum 29 PyO3 for Python hot paths 30 Model Context Protocol 31 TypeScript for application code 32 Astro for content-led sites 33 Generative UI protocols 34 tsrs, the Rust port of the TypeScript compiler 35 New C or C++ without a memory-safety plan 36 Runtimes past end of security support 37

Techniques (13)

Adopt

01

Bounds before models

Adopt

Before a model touches a business decision, write down what it may decide alone, what it must escalate and what it may never do, and enforce those three lists in code. The model works inside the frame. It never draws it. Every other AI entry on this radar assumes this one.

Related practice →
02

Shadow mode before cut-over

Adopt

Run the new logic beside the old on real production inputs, compare the outputs automatically, and switch one decision class or one service at a time, behind a switch that reverses in seconds. The discipline is the same for a pricing model and for a Rust service, and it is the cheapest insurance in engineering.

Related practice →
03

Evaluation suites built from your own history

Adopt

A vendor benchmark tells you how a model performs on someone else's data. A harness built from your historical decisions tells you how it performs on yours, and it can be re-run every time the model changes. Without one, every model upgrade is a leap of faith.

Related practice →
04

Structured outputs for every model call that feeds code

Adopt

In a production pipeline, a malformed answer costs as much as a wrong one. When software consumes a model's answer, ask for it against a schema the API enforces instead of parsing free text afterwards, and keep a repair path for the calls that cannot use one.

Related practice →
05

Runtime boundaries for agents

Adopt

An agent that can run commands should not also have open network access, and neither should see credentials it does not need. Separate execution from egress, allowlist the domains, keep secrets out of the model's context and log what crosses each boundary. In October, researchers showed a poisoned open model exfiltrating credentials through a coding agent, built for under $50.

Related practice →

Trial

06

Decision models for classification and routing

Trial

A new class of model returns typed answers with probabilities instead of text. OpenAI's Decisions API became generally available and Liquid AI launched d1 in October. For ticket routing, content filtering or a guardrail before an agent's tool call, a calibrated probability is something you can threshold, route on and audit. Trial it on one high-volume step, against your current model, on your own labeled data.

Related practice →
07

Agent-driven language ports with parity tests

Trial

GitHub moved its Copilot agent runtime from TypeScript to more than 800,000 lines of Rust in about fourteen weeks, with agents writing most of the code. Cloudflare credits frontier models for making its port of the TypeScript compiler feasible. The speed is real. What makes it safe has not changed: old and new running side by side until their outputs agree.

Related practice →

Assess

08

Agent-built audit tooling

Assess

Trail of Bits describes using agents to build the tools an audit needs before it starts: analyzers, a decompiler, formal models. On one audit, that preparation surfaced a high-severity signature forgery issue and produced 95 machine-checked proofs. A failed side project now costs tokens, not weeks. A person still has to check what each proof actually claims.

Related practice →

Hold

09

Hard-wiring one model vendor into business logic

Hold

Model prices and capabilities changed several times this year. A decision flow that calls one vendor's proprietary features directly, with nothing between the business rule and the model, turns every price change into a migration. Put a typed interface in between and keep the evaluation harness that lets you switch.

Related practice →
10

Chat interfaces as an AI strategy

Hold

A chatbot in front of an unchanged process changes the conversation, not the outcome. The value sits in the decisions a business makes a thousand times a day: pricing, routing, approvals, risk, scheduling. Start there.

Related practice →
11

Big-bang rewrites

Hold

Replacing a system that works with one that does not exist yet, on a fixed date, is the most reliable way we know to lose a year. Migrate in place, one capability at a time, behind a gateway, with the old system still answering.

Related practice →
12

Merging agent-written code on green tests alone

Hold

Passing tests prove the code does what the tests check, and an agent optimizes for exactly that. Review agent-written changes for what they do outside the tests: new dependencies, widened permissions, removed checks, quietly changed error handling.

Related practice →
13

Disabling verification to clear certificate errors

Hold

After eight eMudhra intermediate certificates were compromised in October, patched systems began rejecting certificates they used to accept. The tempting fix, turning verification off, removes exactly the protection the patch restored. Fix the trust store, not the check.

Related practice →

Platforms (7)

Adopt

14

PostgreSQL, including for vectors

Adopt

The default store for business systems, and with pgvector the first place we put retrieval data. A separate vector database earns its place at a scale most organizations will not reach. Until then, one database to back up, secure and audit beats two.

Related practice →
15

Serverless functions for low-volume business endpoints

Adopt

Forms, webhooks, approval buttons and light APIs do not need a server running all month. Functions deployed with the site keep the attack surface small and the bill close to zero. The forms on this site run that way.

Related practice →

Trial

16

Self-hosted open-weight models for regulated data

Trial

When data may not leave your environment, a capable open-weight model on your own GPUs is now a realistic option rather than a compromise. Trial it on a bounded task with an evaluation harness, and budget for the operations work that a hosted API hides from you.

Related practice →
17

Dedicated EU servers for steady workloads

Trial

For workloads that run all month at a predictable load, dedicated servers from European providers cost a fraction of equivalent cloud instances and keep data residency simple. Keep the elastic cloud for what is genuinely elastic.

Related practice →

Assess

18

WebAssembly sandboxes for code you did not write

Assess

Compilers, plugins and agent-generated code are starting to run inside Wasm sandboxes in production products, and the fit with Wasm is one of the reasons given for porting developer tooling to Rust. Assess it wherever code you did not write has to run next to data you care about.

Related practice →
19

Agent-first version control

Assess

Anthropic replaced git internally with a centralized system after daily merges grew from about 2,500 to more than 30,000, and says plainly it is not a general replacement. Zed has announced DeltaDB, which ties agent conversations to the edits they produce. Watch the problem they describe. Keep git.

Related practice →

Hold

20

Kubernetes for small estates

Hold

Three services and a database do not need a cluster, a service mesh and an on-call rotation to look after them. Managed containers or plain virtual machines cost less to run and much less to understand. Revisit when the number of services, not the ambition, demands it.

Related practice →

Tools (7)

Adopt

21

Terminal coding agents under review gates

Adopt

Claude Code, Codex and their peers are now part of how software gets written. Adopt them with the controls you would put on a new engineer: rules checked into the repository, branch protection, required review, and no production credentials on the machine they run on.

Related practice →
22

Playwright for end-to-end checks and release gates

Adopt

Browser tests on every change, including checks that a page renders what it should and not only that it returns 200. Agents write these tests quickly. Keep a person deciding what they must prove.

Related practice →
23

Borg with an off-site repository

Adopt

Deduplicated, encrypted backups to a provider in another location, restored on a schedule to prove they work. Unglamorous, and the first thing we ask about in any system we are asked to keep alive.

Related practice →

Trial

24

OpenRouter for model evaluation

Trial

One API in front of dozens of models makes it cheap to run your evaluation harness against the alternatives before you commit. Use it to choose. Then go direct to the provider for production traffic that carries personal or regulated data.

Related practice →

Assess

25

Open-source AI penetration agents

Assess

Autonomous agents such as Strix that probe an application for vulnerabilities are good enough to find real issues and noisy enough to need an engineer reading every finding. Assess them on a staging environment you own. Never point them at systems you do not.

Related practice →
26

SearXNG for search inside internal tools

Assess

A metasearch engine you run yourself gives internal agents and tools web search without sending every query to a third party. Useful where the queries themselves are sensitive.

Related practice →

Hold

27

Abliterated models from unknown publishers

Hold

Models with their refusal behavior stripped out circulate freely and score normally on benchmarks. Research published in October showed one carrying a hidden trigger that sent project credentials to a remote server through a coding agent. A benchmark cannot tell you whether a model is backdoored. Provenance can.

Related practice →

Languages and frameworks (10)

Adopt

28

Rust for new performance- and safety-critical services

Adopt

Memory safety without a garbage collector, a type system that catches whole classes of defects before deploy, and a toolchain that agents now write well. For a new service on a hot path or a trust boundary, it is our default.

Related practice →
29

Tokio and Axum

Adopt

The standard async runtime for Rust and a small, well-maintained web framework built on it. Boring in the best sense: well documented, widely deployed and familiar to most Rust engineers.

Related practice →
30

PyO3 for Python hot paths

Adopt

When a Python pipeline is slow because of Python itself, move the hot loop into Rust and keep everything else. PyO3 and maturin turn that into a library change, not a rewrite.

Related practice →
31

Model Context Protocol

Adopt

The common way to give models access to tools and data across vendors. Adopt it for integrations, and treat every MCP server like any other privileged service: authenticated, scoped to what it needs and logged.

Related practice →
32

TypeScript for application code

Adopt

Still the language of the web front end and of most business APIs. Type checking became markedly faster this year with the native compiler, which removes the last common complaint about large codebases.

Related practice →
33

Astro for content-led sites

Adopt

Static by default, JavaScript only where a page needs it, and content collections with typed schemas. This site is built on it, and our briefing pipeline publishes straight into its content collections.

Related practice →

Assess

34

Generative UI protocols

Assess

Tools can now return interactive interfaces that render inside the conversation, sandboxed by the host: forms, dashboards, viewers. MCP Apps is already supported by several major clients, and AG-UI and A2UI address the same need. Promising for internal tools. The patterns are still settling.

Related practice →
35

tsrs, the Rust port of the TypeScript compiler

Assess

Cloudflare and VoidZero report checks up to 8x faster and about 70% less memory than TypeScript 7.0, on their own benchmark and with the TypeScript team's cooperation. It is experimental, and its diagnostics still differ from upstream. Run it beside your current checker on a branch. Do not gate merges on it yet.

Related practice →

Hold

36

New C or C++ without a memory-safety plan

Hold

US and UK security agencies have asked software makers to publish memory-safety roadmaps. New C or C++ in a component that parses untrusted input should come with a reason and a plan. For most new work, choose a memory-safe language.

Related practice →
37

Runtimes past end of security support

Hold

PHP 8.1 left security support at the end of 2025, and every older version before it. Running an unsupported runtime in production means carrying vulnerabilities nobody will patch. Upgrade first, modernize second.

Related practice →

Next edition: May 2027.

The systems that run your business should be built by people who have run systems like it.

The moon can't shine on its own.