FAQ
Does Archora upload my code anywhere?
No. Everything runs locally — the desktop app, the CLI, the analyzer. There is no telemetry, no analytics ping, no auto-update server. See Privacy for the exhaustive list of what does and doesn't leave your machine.
The only exception is the optional AI explanation feature (currently disabled, planned). It would send a structured summary of metrics — never source files, never imports — to whichever provider you opt into. It will be off by default and require explicit configuration.
Why BUSL-1.1, not MIT?
Business Source License 1.1 is "source-available with a commercial-use restriction that auto-converts to OSS after a few years." It lets us release the full source — you can read, build, fork, audit, run on your own projects — while preventing third parties from cloning the project and running it as a hosted service.
Practically, for almost everyone reading this:
- You can build and run it on your own code. Yes, including at work.
- You can read and study the source. Yes, including learn from it and patch it locally.
- You can't take it and offer "Archora-as-a-service" yourself. That's the carve-out.
After 4 years each released version flips to Apache 2.0. We picked BUSL because we'd rather be honest about the boundary than pretend MIT solves all licensing problems.
Does Vue 2 work?
Partially. The Vue parser handles <script> and <script setup> blocks of any Vue version that uses single-file components — Vue 2.7+ with composition API mostly works. Older Vue 2 codebases with Options API still parse, but file classification (composable / store) is tuned for Composition API patterns, so heuristics will be less precise.
If your project is on Vue 2 and the results look off, please open an issue with a reproducer. Vue 2 isn't a first-class target but we'd rather know what's broken.
Monorepo with multiple tsconfig.json?
Supported. Point Archora at any directory containing a package.json — typically a workspace package. The analyzer:
- Walks
extendschains intsconfig.json(any depth). - Resolves path aliases from the closest
tsconfig.jsonto each file. - Scans only the directory you point at, not the whole monorepo.
For a per-workspace dashboard, run the CLI per package and aggregate the JSON outputs yourself. A built-in monorepo scan that walks pnpm-workspace.yaml / package.json#workspaces and produces a multi-package report is on the roadmap (no fixed date yet).
Does it work on React / JSX / TSX?
Yes. JSX and TSX are first-class. *.jsx and *.tsx parse through the TypeScript compiler API, same as *.ts/*.js.
What it doesn't do is interpret framework-specific patterns (Next.js dynamic routes, RSC boundaries, etc.) as architectural rules. If you want a rule like "server components may not import client components", that's the layered architecture feature — define server and client as layers in archora.config.
What about Svelte?
Yes — .svelte files are parsed (script block only). Same approach as .vue: the script is extracted and analyzed as TypeScript/JavaScript. Templates aren't parsed for imports because Svelte resolves them through the script.
Will it slow down my CI?
For a 1000-module project the scan takes ~2 seconds. For 5000 modules — about 10 seconds. The bottleneck in CI is almost always the npm ci install step, not Archora.
If your job is timing out, suspect package install caching first.
How does Archora compare to madge / dependency-cruiser?
Both are great tools. Archora adds:
- An analyzer-first Architecture Workspace with Overview, Explorer, Matrix, Cycles, Hotspots, Impact and Rules.
- Cycle-break edge detection via feedback arc set, not just "here's the SCC."
- Composite hot zone ranking.
- Shareable reports: readable HTML brief, full analyzer JSON and evidence-backed fix-plan JSON.
- Layer-aware recommendations (misplaced-by-layer, top-violator).
If you only need a CLI-only "list cycles in JSON" tool, both alternatives are fine. If you want guided architectural triage, Archora's design is built around it.
What's the smallest project this is useful for?
Below ~50 modules the dependency structure is often small enough to hold in your head — Archora is honest about this and won't fabricate insights. You'll get an accurate scan and probably zero recommendations. That's a feature, not a bug.
The product really starts paying off around 200+ modules and gets more useful the larger the project gets. Around 5000+ we hit the current scaling target.
Is there a configuration file?
Optional archora.config.{ts,js,json,mjs,cjs} at the project root. See Configuration for the full schema. No config = sensible defaults (no layer rules, full-tree scan, default include/exclude).
How do I report a bug?
GitHub Issues with a reproducer. A scan over a public repo plus the resulting JSON envelope (archora analyze . > scan.json) is the most actionable kind of report.