Source formats
| Language or format | Parsed | Detected frameworks or stacks |
|---|---|---|
| TypeScript and TSX | Yes | Next.js, TanStack Start, React, Angular, Node.js |
| JavaScript and JSX | Yes | Next.js, React, Vue, Node.js |
| Vue single-file components | Yes | Vue, Nuxt |
| Svelte | Yes | SvelteKit |
| Python | Yes | Django, FastAPI, Flask |
| Go | Yes | Wails, Gin, Echo, Fiber, Chi, Connect RPC, gRPC, Cobra |
| Swift | Yes | Swift |
| Kotlin and Java | Yes | JVM |
| Rust | Yes | Rust |
| Ruby, C, C++, C#, PHP | Yes | No framework-specific claim |
| Bash, Lua, Scala, Elixir | Yes | No framework-specific claim |
| Markdown and MDX | Yes | No framework-specific claim |
Coverage limits
Dynamic calls, reflection, and generated code need a closer look. A parsed function is not a guarantee that Panolayer can resolve every caller or check every expectation. Framework detection identifies the stack; it does not establish complete framework coverage.
Repositories with several apps
Panolayer detects apps within monorepos. Inspect Architecture to check which apps and relationships appear. Do not assume that every nested app or generated dependency was discovered.