Languages

One engine, 30 grammars, the same metrics everywhere.

Polyglot repos are the norm now: a TypeScript front end, Go or Python services, Terraform underneath, and a Dockerfile holding it together. Semfora parses all of it with one engine, so a complexity score in Rust means the same thing as a complexity score in Ruby, and the call graph doesn't stop at a language boundary in your repo's directory tree.

30 grammars, one engine

From TypeScript to Terraform, with framework-aware analysis that goes deeper on the stacks big teams actually run.
  • TypeScript
  • JavaScript
  • React
  • Python
  • Rust
  • Go
  • Java
  • Kotlin
  • C++
  • C
  • C#
  • Ruby
  • PHP
  • Swift
  • Scala
  • Bash
  • Vue
  • HTML
  • CSS
  • SCSS
  • Terraform
  • Dockerfile
  • Gradle
  • TLA+

That's 24 chips on the wall, counting React, which rides the JSX and TSX grammars. The engine's own language table has 30 entries: these 23 languages, the JSX and TSX variants, Markdown, and the four config formats that wire a system together (JSON, YAML, TOML, and XML). Config gets parsed and graphed like everything else; we just don't call it a language.

Framework-aware analysis

React

Components, hooks, context

Next.js

App Router, Pages, API routes

Vue

SFCs, Composition API

Angular

Components, services, decorators

Svelte

Components and entry points

Express

Routes, middleware detection

NestJS

Controllers, decorators, modules

Fastify

Routes and plugins

Also framework-aware for Remix, SolidJS, Hono, Koa, tRPC, and Redux. Stack detection recognizes hundreds of libraries across 12 package ecosystems, including 100+ database drivers, ORMs, and schema tools, so your data layer gets read and risk-scored like any other code.

Config is code too

The formats that wire a system together (JSON, YAML, TOML, XML, and Terraform's HCL) get parsed and graphed like everything else. That's how the engine can notice that a billing service and a queue definition change together in almost every commit, even though no import connects them.