System One · Migration

Replacing OpenAI/Anthropic apps with Jev

You will not replace your LLM. You will replace the calls that were never about language — the classify, route, score and verify steps hiding inside it. Here is what to swap, what to keep, and how to do it without breaking behaviour.

By Ritesh Agarwal
12 min readRead the guide

When TypeSafe AI launched Jev on 20 September 2026, the headline was the price: $0.042 per million input tokens, output free, and one evaluation quoted at 444.6× cheaper and 193.6× faster than a small frontier LLM. The instinct is to ask “can this replace OpenAI?”. It is the wrong question. The right one is narrower and far more useful: which of my OpenAI or Anthropic calls are decisions, not prose? Those are the ones you can move — and in most apps they are the majority of the traffic.

If you want the build-side view — the specific patterns worth moving — read the companion, 7 things you can actually build with Jev. This piece is the migration: the rule, the split, the path, and the math.

01The whole guide in one line

Swap the decisions, keep the generation

A System One model returns a typed value from a space you defined in advance — a true/false judgement, a choice from a fixed set, an ordered score — with a calibrated probability. An LLM generates open-ended language. So the migration rule writes itself: anywhere your app uses an LLM to produce an answer you could have enumerated beforehand, that call is a candidate for Jev. Anywhere it produces text a human will read, it stays.

The tell is the prompt. If you find yourself writing “reply with JSON”, “answer only yes or no”, “pick one of these labels”, or “rate this from 1 to 5”, you are already fighting a language model into behaving like a decision model. That fight — JSON parsing, enum guarding, retries on malformed output, no trustworthy confidence — is the tax a System One model removes.

The ruleIf the output belongs in a database column, it is a Jev job. If it belongs in a chat bubble, keep it on the LLM.

02Sort your calls

Keep vs swap

Run this split across your app. Most production systems land with more in the left column than the team expects — the “AI” is generation, but the plumbing around it is decisions.

Swap to Jev

  • Intent detection and request/model routing
  • Yes/no policy and safety checks — moderation, jailbreak, off-topic
  • Relevance and quality gating in a RAG pipeline
  • Scoring: lead fit, ticket priority, risk levels
  • Structured flags and single-choice field extraction
  • Per-row batch labelling over a large dataset

Keep on the LLM

  • Drafting: emails, replies, marketing and product copy
  • Summarisation, rewriting and translation
  • Conversational agents that plan and reason in language
  • Code generation and transformation
  • Anything a user reads as prose
  • Open-ended extraction into rich free text

03Do it without breaking behaviour

A four-step migration path

The safe way to adopt Jev is not a rewrite. It is a behaviour-preserving wrap, measured, then a backend switch. TypeSafe’s open-source system-one-adapter makes this possible: it is a drop-in for the system_one API, but backed by OpenAI or Anthropic — so you can adopt the interface before you adopt the model.

Step 1 — Inventory and tag every model call

List every place your app calls OpenAI or Anthropic. Tag each one prose or decision using the database-column-versus-chat-bubble test above. The decision calls are your migration surface.

Step 2 — Wrap each decision behind system_one, still on your LLM

Replace the raw completion with a system_one call through the adapter, pointed at the same model you already pay for. Nothing about your vendor or your bill changes yet — you have only swapped a hand-rolled JSON prompt for a typed, calibrated interface.

before.pypython
# BEFORE — a yes/no decision dressed up as a chat completion.
import json
from openai import OpenAI

client = OpenAI()

resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system",
         "content": 'Is the message spam? Reply JSON: {"spam": true|false}.'},
        {"role": "user", "content": message},
    ],
    response_format={"type": "json_object"},
)
is_spam = json.loads(resp.choices[0].message.content)["spam"]
# You still parse JSON, guard the value, get no calibrated confidence,
# and pay for output tokens — on the hot path, once per request.
after.pypython
# AFTER — the same decision as a typed System One call.
from system_one_adapter import SystemOneAdapterClient, Noul

client = SystemOneAdapterClient(
    structured_outputs=True,
    llm_answer_mode="probabilities",
    normalize_probabilities=True,
)

response = client.system_one(
    state=message,
    questions={"spam": Noul(instructions="The message is spam.")},
    provider="openai",   # switch this to the Jev backend when you have access
    model="gpt-4o-mini",
)
# A typed judgement with a calibrated probability — no JSON, no enum guard.
# For a multi-way route, swap Noul for Choice; for a rating, use Score.

Step 3 — Shadow-run and measure

Run the new path in shadow against the old prompt on real traffic. Compare three things: agreement with your previous output (accuracy), latency, and cost per thousand decisions. This is also where the calibrated confidence earns its keep — you can set a threshold that auto-decides on high confidence and escalates the rest.

Step 4 — Switch the backend to Jev

For the decisions that pass, change one argument — the backend — from your LLM to Jev, and keep the adapter in place as a fallback. Because you migrated the interface first, this last step is a config change, not a code change.

Why this order matters

Adopting the interface before the model de-risks everything. If Jev’s early-access limits or your own accuracy tests disappoint on a given call, you simply leave that one on the LLM backend — same code, same behaviour. You capture the wins without betting the app on a five-day-old model.

04Where the savings come from

The cost and latency math

Two things drive the gap. First, architecture: Jev is non-autoregressive, so a decision comes back in a single 70–500ms pass instead of an LLM’s token-by-token 3–329 seconds. Second, pricing: $0.042 per million input tokens against roughly $0.20–$10 per million for LLM input, and — the one that compounds — output tokens are free where an LLM meters every one.

That free-output line is why bulk and hot-path decisions move the needle most. A yes/no check or a route emits only a token or two of output, but on an LLM you still pay for them, per request, forever. Multiply by a moderation gate on every message or a router on every request and the decision layer can quietly become a large share of the bill — the exact dynamic we traced in the per-token economics of AI features.

Evidence boundary

The multiples above — up to 444.6× cheaper, 193.6× faster — are TypeSafe’s own figures for one workflow evaluation on an early-access model, and LLM prices move constantly. They set an expectation, not a guarantee. Your real saving is a function of how many calls are decisions, your token sizes, and your accuracy bar. The four-step path exists precisely so you decide on measured numbers from your own traffic, not a launch-post headline.

05Stay honest

When not to replace the call

Do not force a decision model onto a language task. If the output is a paragraph, a conversation, a summary or code, keep it on OpenAI or Anthropic — a typed value cannot express it, and trying will make the product worse. Be cautious, too, with decisions whose option space is genuinely open-ended or changes per request; System One models are strongest when the answer space is defined up front.

And keep an LLM fallback for the long tail. The pattern that ages well is a fast System One decision on the hot path, escalating low-confidence or out-of-distribution cases to a heavier model — not an all-or-nothing switch.

Where Appycodes fits

We build and harden production AI systems, and this kind of migration — finding the decisions inside an LLM app and moving them without regressing behaviour — is core to our AI systems work. If you have an OpenAI or Anthropic app whose bill or latency is dominated by classification, routing or scoring, tell us about it from the contact page and we will map the swap with you.

06Questions

Frequently asked questions

Can Jev replace OpenAI or Anthropic entirely?

No, and it is not meant to. Jev, TypeSafe’s System One model, replaces the parts of your app that make bounded decisions — classify, route, score, verify. Anything that produces language a human reads (chat, drafts, summaries, code) stays on your LLM. Most apps are a mix, so the realistic move is to swap the decisions and keep the generation.

How much cheaper is Jev than an LLM?

TypeSafe prices Jev at $0.042 per million input tokens with output tokens free, versus roughly $0.20–$10 per million input for LLMs plus metered output. It quotes one workflow evaluation at 444.6× cheaper and 193.6× faster. Your real saving depends on how many of your calls are decisions rather than prose, and on your token sizes — measure before you rely on a headline multiple.

How do I migrate an existing classification prompt to Jev?

Wrap the decision behind the system_one interface using TypeSafe’s MIT-licensed system-one-adapter, backed by the OpenAI or Anthropic model you already use. That is behaviour-preserving — no new vendor yet. Shadow-run it against your old prompt to compare accuracy, latency and cost, then switch the backend to Jev for the calls that pass.

Is Jev generally available?

Jev launched in early access in September 2026. You can build against the interface today through the open-source adapter, which mirrors the system_one call on OpenAI or Anthropic, and move the backend to Jev when you have access.

Primary sources

Published Sep 20, 2026Reviewed Sep 20, 2026Reviewer Appycodes Editorial Team

Not affiliated with or endorsed by TypeSafe AI. Product names are used for identification only.

The engagements this writing comes from

UK · Europe · Worldwide

selected work

Where these numbers came from

Production systems with the delivery figures attached.

Creoate product interface01
B2B commerce

The engineering partnership behind a cross-border wholesale marketplace.

Next.js storefront, Python ingestion pipelines, DynamoDB data layer and AWS infrastructure.

8+ yearsone team, still shipping
Ontick product interface02
Event technology

A commission-free ticketing platform built for ownership and scale.

Multi-organiser commerce, Stripe instalments and two native apps in one connected platform.

£2M+processed since launch
Easyship product interface03
Global logistics

Embedded product engineering for a global shipping platform.

Rate, tax and duty calculators, server-rendered courier pages and a custom MongoDB CMS.

550+couriers on the calculator
TEFL.ie product interface04
Education & training

A course-commerce and learning platform wired into one system.

WordPress and WooCommerce, a Moodle LMS, Stripe deposits and Zoho CRM, tied together with Zapier automation.

8 yrsengineer & run, since 2017
All White Laser product interface05
Medical aesthetics

A bespoke platform that finances aesthetic machines on Direct Debit.

A lead-to-billing system on GoCardless Direct Debit, provider certification, and a React Native app for machine owners.

9 yrsbuild & run, since 2017
Decofetch product interface06
Luxury commerce

A custom furniture marketplace engineered from storefront to infrastructure.

Server-rendered Next.js commerce over a Laravel API, bespoke operations tooling and re-architected AWS infrastructure.

0→livecustom, front to back
BA Engine Room product interface07
AI operations

An AI-native operating system that runs a consultancy lead to invoice.

Discovery briefs, e-signed contracts, Stripe deposits, delivery milestones and time tracking in one operational system.

0→1built from the ground up
PlusHeat product interface08
Home services

A conversion platform for a growing UK boiler-cover provider.

Custom plan configuration, postcode-qualified lead journeys, CRM synchronisation and campaign landing pages.

5 yrsweb partner since 2021
Léonia product interface09
Beauty commerce

A custom Shopify store for a French beauty brand.

Custom theme, customer accounts, loyalty rewards, referrals and gift-with-purchase offers.

5 yrspartners since 2021
Shutters 365 product interface10
Home improvement

Made-to-measure shutters with live pricing.

A seven-step product builder with live previews, sample orders and supplier tools.

7-stepconfigurator, live pricing
Bloc Ads Manager product interface11
Advertising

A self-service advertising platform for venues.

Campaign creation, audience targeting, in-app ads and reporting linked to venue check-ins.

check-insclosed-loop attribution
Bloc product interface12
Social events

An events app with the tools to run it.

Mobile app, backend, advertising tools, a digital marketplace and website.

4+ yrsone team, five codebases
Zonely product interface13
Social mobile

Two mobile apps for real-time companionship.

Customer and buddy apps with per-minute billing, wallets, moderation and admin tools.

2 appsconsumer + buddy, iOS & Android
Player Profile Hub product interface14
Grassroots football

Player profiles and discovery for youth football.

Verified profiles, video highlights, coach discovery and safeguarding on web and mobile.

0→1built from the ground up
DeepSpatial product interface15
Geospatial AI

Websites and a talent platform for DeepSpatial.

Corporate and investor pages, the Xploor talent platform and ongoing releases on AWS Amplify.

2 yrsone team, ongoing
Yippee Malta product interface16
Travel

Tour bookings with a custom mobile-first checkout.

A multilingual website connected to the booking API, with deposits, coupons and affiliate tracking.

90+core web vitals, mobile & desktop
Professional Energy product interface17
Energy brokerage

One platform for tenders, contracts and accounts.

Supplier tenders, contract management, brokerage accounting and client records.

100+suppliers in one tender

LLM bill dominated by classification?

A thirty-minute call with the engineer who would run the migration.

Map the swap with us