Backend SDK framework setup and compatibility
Choose your framework and follow its setup path. For a server you host, start with Backend SDK setup. For a supported SSR application hosted by Claron, enable Backend Evidence and rebuild the application.
Before you start
Your framework, runtime version, and normal build/start command.
What you get
Know which setup to use, its requirements, and its current limits.
SSR applications hosted by Claron
Enable backend evidence
Open the project's Backend settings as the owner, enable capture, and keep the recovery backup.
Rebuild the SSR application
Use the supported Node server output below. The hosted build applies the integration; you do not run customer-backend setup for that same server.
Check a new request
Start a fresh review, submit a report, and open Network evidence → the request → Backend evidence.
| Framework | Server output and compatibility |
|---|---|
| Next.js | Node SSR with webpack. Next.js 15.3.6 and 16.1.6 paths are tested. Turbopack and edge/middleware capture are not covered. |
| Nuxt / Nitro | Nitro node-server output. Tested Nuxt 3.19.3, 4.1.3, and 4.3.1 paths include SSR and API requests. |
| SvelteKit | adapter-node output. Kit 2.49.5 / adapter-node 5.5.1 capture is tested; Kit 2.16.1 / adapter-node 5.2.12 also has build compatibility checks. |
| Remix | Node framework server output. Remix 2.17.0 capture is tested; Remix 2.9.0-pre.1 / Vite 5.2.6 also has build and source-map checks. |
| React Router framework mode | Node SSR framework output. React Router 7.13.0 is tested. A client-only router has no SSR server to capture. |
| Astro SSR | Node standalone adapter. Astro 5.13.5 / @astrojs/node 9.4.4 capture is tested; Astro 5.16.11 / Node adapter 9.5.2 also has build and source-map checks. |
| Angular SSR | Node application-builder SSR output. Angular 20.3.0 is tested. Preserve the workspace's server output and required runtime variables. |
JavaScript and TypeScript
Run claron backend init from the backend root. Setup installs the bundled SDK and configures the existing startup. Node applications need a direct node start script; Elysia needs a direct bun start script. Compiled TypeScript needs source maps back to the original application files.
| Framework | Setup and compatibility |
|---|---|
| Express | Use the configured Node start command. Express 5.1.0 ESM, CommonJS, and TypeScript request paths are tested. |
| Fastify | Use the configured Node start command. Fastify 5.6.1 ESM, CommonJS, and TypeScript request paths are tested. |
| Koa | Use the configured Node start command. Koa 3.0.1 ESM, CommonJS, and TypeScript request paths are tested. |
| Hono | Use @hono/node-server on Node. Hono 4.9.9 / node-server 1.19.3 is tested. Bun, Deno, and edge adapters are not covered. |
| NestJS | Build the existing app, then use its configured Node start command. NestJS 12.1.2 / TypeScript 5.9.3 compiled ESM is tested; other adapters and request-scoped variants need verification. |
| Next.js | Setup adds the backend webpack integration and Node startup. Rebuild with webpack before starting. Next.js 15/16 Node paths are tested; Turbopack and edge capture are not covered. |
| Nuxt / Nitro | Use the Claron-hosted path for hosted SSR. A separately hosted Nitro server needs its dedicated SDK adapter and startup configuration; generic Node setup does not cover every Nitro layout. |
| Elysia | Use the configured Bun start command. Bun 1.3.6 / Elysia 1.4.30 JavaScript and TypeScript paths are tested, including AOT and dynamic dispatch. |
Python
Use the application's Python environment
Use CPython 3.10 or later with the existing server and dependencies installed.
Provide the existing application target
Run setup and enter module:object, such as app.main:app, then choose the interface below.
Use the printed startup wrapper
Start through .claron/backend-start.py with your normal server options. Prefix startup with claron backend run -- to restore the local collector.
| Framework | Interface and compatibility |
|---|---|
| Flask | WSGI / gunicorn. Flask 3.1.2 is tested. |
| FastAPI / Starlette | ASGI / uvicorn. FastAPI 0.119.1 / Starlette 0.48.0 is tested. |
| Django | Choose the existing WSGI or ASGI target. Django 5.2.17 requests are tested; wider worker and middleware configurations need verification. |
| aiohttp | Choose the aiohttp application factory. The current CLI requires aiohttp 3.14.3. |
Java and JVM frameworks
Build the original application first. The current CLI uses JDK 22.0.1 and asks for its application-owned classes directory, such as target/classes. Follow the printed agent build/start commands, preserving your original Java arguments.
| Framework | Setup and compatibility |
|---|---|
| Spring MVC | CLI setup covers ordinary compiled classes. Spring 6.2.11 / Tomcat 10.1.46 synchronous and DeferredResult requests are tested. Spring Boot executable JARs and custom loaders are not covered by the installer. |
| Spring WebFlux | CLI setup covers ordinary compiled classes. Spring 6.2.11 / Reactor Core 3.7.12 / Reactor Netty 1.2.11 is tested. Custom operators, cleared contexts, and wider streaming paths can leave evidence incomplete. |
| Quarkus | Use Maven fast-JAR packaging. Build the app, then rebuild the generated Claron agent after each application rebuild. Quarkus 3.27.2 is tested; native, uber-JAR, development, and Gradle paths are not covered. |
| Micronaut | The dedicated SDK adapter has tested HTTP capture with Micronaut 4.10.4 / Reactor 3.7.12 / Netty 4.2.6.Final. Automatic CLI enrollment is not available yet; claron backend init does not support Micronaut. |
.NET and ASP.NET Core
Use the .NET 10 SDK and ASP.NET Core 10 runtime. Setup selects the application's .csproj and prints the build and output paths. Build in Release mode, then start through .claron/backend-dotnet/start.mjs with the exact assembly path printed by setup.
| Framework | Setup and compatibility |
|---|---|
| ASP.NET Core Minimal APIs | Managed .NET 10.0.12 and Windows x64 NativeAOT paths are tested. Choose the generated managed or native startup mode matching your output. |
| ASP.NET Core MVC | Managed .NET 10.0.12 controller and model-binding paths are tested. MVC NativeAOT is not available. |
| ASP.NET Core gRPC | Grpc.AspNetCore / Grpc.Net.Client 2.84.0 HTTP/2 unary and server-stream paths are tested. RPC status is separate from HTTP status. Client/bidirectional streams, TLS, and grpc-web need further compatibility checks. |
Go
The current CLI requires Go 1.25.6. After setup, use .claron/backend-go/build.mjs with your original build, run, or test options. Start the resulting executable with the generated backend configuration available; set CLARON_BACKEND_CONFIG when starting from another directory.
| Framework | Checked configuration |
|---|---|
| net/http | Named HTTP handlers and exact-request capture are implemented. |
| Chi | Chi 5.2.3 named handlers and RequestID middleware are tested. |
| Gin | The current CLI requires Gin 1.11.0. New/Default engines and native request-pool isolation are tested. |
| Echo | The current CLI requires Echo 4.13.4. The verified path covers GET requests; check other methods separately. |
| Fiber | The current CLI requires Fiber 2.52.12. GET/POST and native fasthttp request scope are tested. Fiber v3 is not covered. |
| Go gRPC | The current CLI requires grpc-go 1.75.1. HTTP/2 unary and server-stream capture is tested. Client and bidirectional streams are not covered. |
PHP
Run setup with PHP and Composer available. It prepares the customer-local parser dependency unless you supply an existing parser path. Compile each deployment with .claron/backend-php/build.mjs, then apply the generated claron.ini to this service while preserving its existing PHP settings and startup.
| Framework | Checked configuration |
|---|---|
| Slim | Slim 4.15.3 / Slim PSR-7 1.8.0 HTTP requests are tested. |
| Laravel | Laravel 12.69.3 routes, controllers, middleware, and termination paths are tested. |
| Symfony | Symfony FrameworkBundle 7.4.20 controllers, dependency injection, routes, events, and warm/cold caches are tested. |
| WordPress | WordPress 7.1.3 plugin/MU hooks, REST permissions, theme rendering, and shutdown paths are tested with the SQLite integration. MySQL/MariaDB, multisite, admin/AJAX/cron, and custom content roots need separate verification. |
Ruby
Run setup, then bundle install to resolve the customer-local SDK gem. Keep the existing server command and load claron_backend after Bundler setup. The checked stack uses CRuby 4.0.7, Prism 1.8.1, and Rack 3.2.4.
| Framework | Setup and compatibility |
|---|---|
| Sinatra | Sinatra 4.2.1 / Rackup 2.3.1 requests are tested. Use the generated preload with the existing Rack server options. |
| Rails | Rails Railties/ActionPack 8.1.4 controller, callback, and autoload paths are tested. Full views, ActiveRecord, ActiveJob, engines, reloads, Puma, and forks need separate verification. |
Rust
The current adapter needs nightly-2025-03-28 with rustc-dev. Setup asks for that toolchain root. Build and start the single-package application through .claron/backend-rust/build.mjs, preserving your Cargo build and application options.
| Framework | Checked configuration |
|---|---|
| Axum | Axum 0.8.4 / Tokio 1.47.1 request and private-helper capture is tested. |
| Actix Web | Actix Web 4.11.0 / actix-http 3.11.0 request scope is tested, including a multi-worker application. |
| Rocket | Rocket 0.5.1 ordinary macro routes and managed build/start are tested. |
Elixir and Erlang
The automatic CLI path covers a single Mix application using Plug.Cowboy. Setup asks for existing Erlang/OTP and Elixir installation roots. Use OTP 28.5.0.7 / Elixir 1.19.5, then follow the generated compile/start commands.
| Framework | Setup and compatibility |
|---|---|
| Plug / Plug.Cowboy | CLI setup requires Plug 1.20.3 / Plug.Cowboy 2.9.0 / Cowboy 2.19.0. Compile and start through the generated backend-beam wrapper. |
| Phoenix | Phoenix 1.8.15 has an implemented SDK adapter and tested endpoint/router/controller capture. Automatic CLI installation/startup is not available yet; claron backend init does not support Phoenix. |
