The New Default. Your hub for building smart, fast, and sustainable AI software

See now
Illustration of Java, Node.js, React and database code blocks connected through a pipeline to an AI core

Add AI to Your Product Without Python

Michał Nowakowski
|   Nov 12, 2026

Adding an LLM feature to an existing product does not require a Python service. Lawrence Jones, an engineer at incident.io, put it this way in a February 2025 post: "The actual interaction with models is just HTTP requests with JSON payloads."

Since then, Spring AI, Microsoft Agent Framework, the Vercel AI SDK, the Laravel AI SDK and RubyLLM all shipped major versions in 2026.

This article shows what product teams use in each stack today, with real, dated examples and the limits worth knowing before you commit.

Executive Summary

You can build AI features without Python: adding an LLM feature to a product means calling a model over HTTP, validating structured JSON, streaming tokens to the UI and letting the model call your code, and every mainstream stack can do all four.

As of November 2026, Anthropic publishes official client SDKs in seven languages, OpenAI in six, and the Model Context Protocol has Tier 1 SDKs in six. Ruby, TypeScript, Java, Go, .NET and PHP each have an LLM framework that shipped a major release or a 1.0 in the last 18 months.

Python is still the default for training, fine-tuning and self-hosted model operations, so the decision hinges on which of those jobs your product actually needs.

Why Do Product Teams Think AI Features Require Python?

The belief comes from the research side of AI. Model training and deep-learning frameworks such as PyTorch, TensorFlow and JAX are Python-first, and so were many early LLM tools, including OpenAI's evals framework. When a team goes looking for "AI tooling," it lands in a Python ecosystem.

The operational effect is a second stack. Teams either stand up a separate Python service next to their product or move their AI work into a language they don't know. Jones, whose company runs its whole backend in Go, wrote that the teams he spoke with who switched to Python "all struggled," learning AI and a new language at once, and ended up with AI features living in a separate codebase from the core product.

The business impact shows up in delivery speed and infrastructure. In a February 2025 write-up, Lovable described rewriting 42,000 lines of Python in Go because its workloads were "highly concurrent and parallel." The company reported deploy times falling from 15 minutes to 3 and its server count dropping from 200 instances to 10.

There is an opposing view. In a Reddit discussion of Jones's post (February 2025), an engineer on a big-tech AI team pointed out that the Python SDK supported a new OpenAI model on launch day while the Java and .NET SDKs waited about two months for an update. Another commenter drew the line elsewhere: calling a hosted model works from any language, but self-hosting, fine-tuning and full MLOps are a different job.

Task

Typical language in 2026

Calling hosted LLM APIs (chat, summaries, extraction)

Any stack with an HTTP client or official SDK

Structured output, tool calling, agents

Any stack with a current LLM framework (see below)

RAG over your own database

Any stack with an embeddings API and a vector store

MCP servers and clients

Official SDKs in 10 languages

Fine-tuning and training models

Mostly Python

Self-hosted inference at scale, MLOps

Mostly Python

What Does an LLM Feature Need, Regardless of Programming Language?

Every LLM feature is built from the same few parts: a provider SDK or HTTP client, structured output enforced by a JSON schema, tool (function) calling, token streaming to the UI, retrieval over your own data (RAG), and evaluations that test prompts the way unit tests test code. The Model Context Protocol (MCP), an open standard for connecting models to tools and data, adds a common way to expose those tools.

Why AI Agents Need Knowledge Graphs | Andreas Kollegger, Neo4j (video)

incident.io's Go codebase shows how little of this is language-specific. As Jones describes it, each prompt is its own Go struct that names its model, its input type and its result type. A helper reflects over the result type to build a JSON schema, forces the model to answer in that shape, and parses the reply back into the typed struct. Each prompt file sits next to its own evaluation suite. The pattern relies on a type system and a JSON schema, both of which most backend languages have.

Official vendor support now covers most product stacks. Anthropic's SDK overview lists client SDKs for Python, TypeScript, C#, Go, Java, PHP and Ruby. OpenAI's libraries page lists official SDKs for JavaScript/TypeScript, Python, .NET, Java, Go and Ruby. The MCP project rates its TypeScript, Python, C#, Go, Rust and Ruby SDKs as Tier 1, Java as Tier 2, and Swift, PHP and Kotlin as Tier 3.

How Do You Build LLM Features in Each Stack Without Python?

Each major product stack now has at least one dedicated LLM framework, and most shipped a major release in 2026. The timeline below shows the releases covered in this section.

How Do You Build LLM Features in Ruby on Rails?

RubyLLM, an open-source Ruby framework, gives Rails apps one API across 23 model providers. Version 2.2, released on November 10, 2026, added sandboxed code execution, tools that pause to ask a person for approval, chats that resume after a deploy, and scripted model replies for testing without an API key. Chat history persists in Active Record, so AI conversations live in the same database as the rest of the app.

RubyLLM's creator, Carmine Paolino, published a benchmark on November 12, 2026. A coding agent (Codex) built the same chat app, with streaming, tool approvals, file handling, MCP and five providers, on four stacks. After eleven steps, it had hand-written 246 lines of app code with Rails and RubyLLM, 748 with the Vercel AI SDK, 962 with LangChain and LangGraph, and 1,070 with no framework. Without a framework, streaming from AWS Bedrock alone took 93 lines of hand-written request signing and binary stream decoding. Paolino lists the caveats himself: he wrote both the benchmark and the library, it covers one kind of app, and it uses a handful of attempts per stack.

Chart: Carmine Paolino, "How I Optimized RubyLLM for Coding Agents", November 12, 2026.

How Do You Build LLM Features in Node.js and TypeScript?

The Vercel AI SDK is a TypeScript toolkit with one interface across model providers. It works with React, Next.js, Vue, Svelte and plain Node.js. Version 7, released on June 25, 2026, added tool approvals, durable agent execution and a revamped telemetry system; Vercel reports more than 16 million weekly downloads. Mastra, a TypeScript agent framework, reached 1.0 in January 2026.

Zo Computer, an eight-person team that gives each user a personal cloud computer with an always-on AI agent, replaced its custom per-provider adapter code with the AI SDK and moved retries, routing and fallbacks to Vercel's AI Gateway. In Vercel's April 2026 case study, the company reported that its retry rate fell from 7.5% to 0.34%.

How Do You Add AI Features to a React Frontend?

On the frontend, the work is mostly about streaming and state. The AI SDK's React hooks render a model's reply token by token as the server streams it, so users see text appear instead of waiting several seconds for a full answer. The same front end can sit on a Rails, Laravel, Java or Node backend, as long as the backend streams in a format the client understands.

Some features can now run in the browser with no server call at all. Hugging Face's Transformers.js v4, released on February 9, 2026, added a WebGPU runtime rewritten in C++ that runs models in browsers as well as in Node, Bun and Deno. Chrome's Prompt API gives web pages access to Google's on-device Gemini Nano model from Chrome 148, with extensions supported since Chrome 138. Both keep the input on the user's device, but the model is downloaded on first use and runs only on hardware that supports it.

How Do You Build LLM Features in Java and Spring?

Spring AI 2.0 reached general availability on June 12, 2026. It requires Spring Boot 4 and ships with version 2.0 of the MCP Java SDK; teams still on Boot 3 stay on the maintained 1.1.x line. LangChain4j, the main alternative, was at version 1.23.0 as of October 28, 2026.

Horus, a Warsaw software house that builds Java and Spring systems for enterprise clients, published a three-day experiment on July 24, 2026. The team built a conversational advisor on Spring Boot 4.1 and Spring AI 2.0 with 104 lines of Java in the backend and 240 lines of React for the chat UI. Streaming came down to swapping call() for stream(), conversation memory took four lines of configuration, and the 14,281-character system prompt was roughly twice the size of the code that served it. A Spring profile switches the agent between OpenAI and an LLM running in Horus's own server room through an OpenAI-compatible API, which the team calls a precondition in banking, insurance and healthcare projects.

The write-up also names what the prototype lacks: tool calling, structured output and regression tests for the prompt. It flags one trap: Spring AI treats curly braces in a system prompt as template variables, so a prompt containing a JSON example passes startup and fails on the first user question.

How Do You Build LLM Features in Go?

Go teams have official SDKs from both Anthropic and OpenAI, a Tier 1 MCP SDK, and Google's Genkit Go, which reached 1.0 in September 2025 with type-safe flows built from Go structs and JSON schema validation.

Two public production cases come from 2025. incident.io built its AI investigation features in Go and, according to Jones, uses Go's concurrency to run prompts in parallel and execute tools speculatively. Lovable's move from Python to Go, described above, was driven by the same concurrency needs. Lovable engineer Viktor Eriksson summed it up as "Python is great, but not for what we do."

How Do You Build LLM Features in .NET?

The .NET stack has a provider-neutral base layer: Microsoft.Extensions.AI, generally available since May 21, 2025, defines a common IChatClient interface that provider SDKs, including Anthropic's C# SDK, plug into. On top of it, Microsoft Agent Framework 1.0 shipped on April 3, 2026 as the successor to Semantic Kernel and AutoGen, with stable APIs for .NET and Python. The official MCP C# SDK is Tier 1.

The entry point can be small. In a June 27, 2026 tutorial, developer Sunita Rawat builds a customer-feedback analyzer with the official OpenAI NuGet package: a console app sends feedback to a model and gets back a sentiment label and a one-line summary. She suggests next steps that stay inside .NET: a minimal API endpoint, a queue worker that tags every new support ticket, and Azure OpenAI for companies that need their existing compliance and networking setup.

Solution architect Jose Mathew made the broader case in a July 2026 LinkedIn article: chat assistants, RAG, document search, invoice processing and support bots, he wrote, "none of these require you to throw away your C# skills."

How Do You Build LLM Features in PHP and Laravel?

Laravel released version 1.0 of its first-party Laravel AI SDK on September 23, 2026. It gives Laravel apps one API across providers, stores conversations in the database, streams responses, runs agents, and pauses tool calls that need human approval. It also speaks the Vercel chat and AG-UI streaming protocols, so a Laravel backend can feed React chat components built with the AI SDK or CopilotKit. Anthropic's official PHP SDK and the Tier 3 MCP PHP SDK cover the lower layers.

What Are the Limits of Building AI Features Without Python?

The sources above name five limits:

  • New model features can reach Python first. The two-month SDK gap described on Reddit dates from February 2025. Most providers now publish SDKs in several languages, but it's worth checking the release history of the SDK you plan to use.

  • Training, fine-tuning and self-hosted MLOps stay Python-centric. If your roadmap includes training your own models, that part of the system will most likely be Python, even if the product around it isn't.

  • Evaluation tooling leans toward Python. Jones pointed to OpenAI's Python-native evals framework as a reason teams drift toward Python. Promptfoo is one exception: an MIT-licensed eval tool installable through npm or pip, which OpenAI announced it would acquire on March 9, 2026.

  • A framework reduces code, not necessarily cost. In Paolino's benchmark, RubyLLM cut hand-written code to about a quarter, but the coding agent's token bill stayed roughly the same, and in one Claude Opus run it was higher ($19 vs. $11).

  • Data residency is a design decision. Horus built provider switching in from day one because clients in regulated industries may not allow conversation data to reach a public model API. Keeping the AI feature inside your existing app keeps your existing authorization, logging and audit controls in the request path, but where the model runs still needs a decision.

Key Takeaways

  • An LLM feature needs HTTP, JSON schemas, streaming and tool calling, which every mainstream stack supports.

  • Anthropic ships official SDKs in seven languages, OpenAI in six, and MCP has Tier 1 SDKs in six.

  • Spring AI 2.0, Microsoft Agent Framework 1.0, Vercel AI SDK 7, Laravel AI SDK 1.0 and RubyLLM 2.2 all shipped in 2026.

  • In one 2026 Java prototype, the system prompt was twice the size of the code serving it.

  • Python remains the default for training, fine-tuning and self-hosted model operations.

What Should You Decide Before Adding an LLM Feature to Your Product?

The examples above share one pattern: the teams kept AI inside the codebase, data model and deployment pipeline they already had, and spent their effort on prompts, evaluations and provider choices. The language decision only becomes difficult when the roadmap includes training or hosting models. Before choosing tools, decide which feature you're building, what data it needs, where the model may run, and how you'll test its output.

If you're weighing where an LLM feature fits in your product and architecture, Monterail's team can talk it through with you, including whether it's worth building at all.

Building AI Features Without Python FAQ

Michał Nowakowski
Michał Nowakowski
Solution Architect and AI Expert at Monterail
Linkedin
Michał Nowakowski is a Solution Architect and AI Expert at Monterail. His strong data and automation foundation and background in operational business units give him a real-world understanding of company challenges. Michał leads feature discovery and business process design to surface hidden value and identify new verticals. He also advocates for AI-assisted development, skillfully integrating strict conditional logic with open-weight machine learning capabilities to build systems that reduce manual effort and unlock overlooked opportunities.