Coming from TypeScript or JavaScript¶
This route is for TypeScript and JavaScript developers evaluating Incan for command-line tools, services, and typed application packages.
Choose your route¶
StartRun the first projectInstall the toolchain once, then run, test, and release-build a native starter.
First projectBuild a native commandUse modules, explicit exports, typed functions, tests, and a native build without a JavaScript runtime.
PackageBuild a local typed boundaryExport a deliberately small library API and run its locked-workspace consumer.
EvaluateCompare JS/TS and IncanCheck runtime, deployment, type, error, package, and ecosystem tradeoffs before adopting.
Build a service or typed data tool¶
The typed API and typed data processor are executable 0.5 routes into web and serde authoring. They retain familiar module and model shapes while making errors, builds, and the native runtime explicit.
Install once¶
Follow Getting Started for the current installer choices and canonical first-project commands. If you already use Node tooling, the npm option installs command shims plus a host-specific release package; it does not make Incan a JavaScript runtime or TypeScript transpiler.
What transfers¶
- Modules, async functions, collection transforms, JSON-shaped models, and service or CLI architecture
- Static application types as documentation and editor feedback
- Familiar package-manager ergonomics for installing the compiler command
What changes¶
- Types participate in source checking and native compilation rather than being erased before execution.
Result,Option, and?make ordinary failure paths explicit instead of relying on exceptions or rejected promises.- Manifests, lockfiles, build reports, and generated-code inspection are compiler-owned project surfaces.
- The deployment artifact is native rather than a JavaScript bundle plus runtime.
What not to expect¶
- A JavaScript runtime, TypeScript transpiler, npm package compatibility, or browser DOM APIs
- Structural typing to behave exactly like TypeScript
- Existing Node services to run unchanged