websmith — open-source compiler frontend for the TypeScript compiler.

Your own AST transformations and code generation in the compile step, open source.
websmith is an extension point for the TypeScript compiler — you hook your own transformations and code generation into the compile step, without forking the compiler. This page doesn't sell; it shows you one of the technologies we build with. The strongest proof: we build Magellan and webbloqs, among others, with websmith.

What is websmith?

websmith is an open-source compiler frontend for the TypeScript compiler — an extension point where you hook your own AST transformations and code generation into the TypeScript compile step. Instead of forking the compiler, you dock onto it: your code runs in the same step in which TypeScript compiles anyway.

Three characteristics

  • AST transformations in the compile step

    You transform the TypeScript AST during compilation — the customisation happens in the compile step, not in a downstream tool.

  • Code generation

    From what the compiler sees, you generate additional code — generation as part of the compile step.

  • Compiler plugin mechanism

    websmith is the mechanism through which such extensions dock onto the TypeScript compiler as a plugin.

What it gives you

  • Your own extensions without a fork

    You build your own compiler extensions without forking the TypeScript compiler — the dock stays, the compiler stays the compiler.

  • A foundation for higher-level tools

    websmith is the base that higher-level tools build on — we build Magellan and webbloqs, among others, on top of it.

Proven, not claimed

The strongest proof: we build Magellan and webbloqs, among others, with websmith — we use our own tools. The code is open source; look for yourself rather than taking our word for it.websmith on GitHubFor developers

Sounds like the right foundation for your tooling?

Let's talk about how websmith serves your project — open-ended, we look together at what your case really needs.

Jan

Prefer a conversation?

JanGive us a call, send an email, or tell us what it is about — whatever suits you best.

jan@quatico.com