skip to main content
Browse documentation

Framework support

The languages and frameworks the discovery CLI can read automatically — and what to do when yours is not one of them.

Discovery reads your code without you naming a framework. It recognizes a wide range of backend stacks across many languages — and, when your API is somewhere else entirely, it can work from your frontend code instead.

Languages and frameworks

  • JavaScript / TypeScript — Express, NestJS, Next.js, Fastify, Hono, GraphQL, tRPC, and WebSocket.
  • Python — FastAPI, Django, and Flask.
  • Ruby — Rails.
  • PHP — Laravel and Symfony.
  • Go — Gin and other common routers.
  • Rust — Actix and Axum.
  • Java / Kotlin — Spring Boot.
  • C# — ASP.NET Core.
  • Elixir — Phoenix.
  • And a long tail across Scala, Clojure, Erlang, OCaml, Haskell, Lua, R, Swift, and gRPC / Protobuf.

When your API is somewhere else

Plenty of teams have no backend to scan — the API is in another repository, it belongs to a third party, or there is not one at all. Discovery can work from the frontend instead, reading the calls your own client code makes and describing each as something the assistant could do.

  • Ordinary HTTP calls, however you make them — the browser’s own fetch, axios, and the other common request libraries.
  • Typed clients, where the shape is already written down — GraphQL documents and tRPC procedures.
  • Live connections — WebSockets and server-sent events.
npx syncanix init --surface frontend

Overriding detection

Detection is automatic, so you rarely need to name a framework. When you do, the --framework flag accepts the identifier of any framework Syncanix supports — for example nestjs, express, fastapi, django, laravel, or springboot.

Next steps