
Fable
Fable is an open-source compiler that lets developers write applications in F# and generate code for multiple target languages.
What Fable is
Fable is an open-source compiler that lets developers write applications in F# and generate code for multiple target languages. JavaScript and TypeScript are stable targets; Dart and Python are beta, Rust is alpha, and PHP and Beam (Erlang) are experimental. For JavaScript, Fable produces readable ES2015-compatible output and supports importing JavaScript modules and NPM packages. The setup installs Fable as a .NET tool and adds Fable.Core to an F# project. Its command-line interface includes release, watch and clean commands, with output-directory and source-map options. The project names Visual Studio Code and JetBrains Rider as editor choices and links to an online REPL. Listed libraries include Fable.Core, Fable.Browser.Dom, Fable.Elmish.React and Thoth.Json. JavaScript projects can use Vite, Parcel or Webpack. Python targets require Python 3.12 or newer, while Beam requires Erlang/OTP 25 or newer and rebar3. The repository uses the MIT license.
Good
- Compiles F# to stable JavaScript and TypeScript
- Supports JavaScript modules and NPM packages
- Includes release, watch and clean CLI commands
- Offers integrations with Vite, Parcel and Webpack
- Provides an online Fable REPL
Watch out
- Several targets remain beta, alpha or experimental
- Not every NuGet library is Fable-compatible
- Python target requires Python 3.12 or newer
- Beam setup requires Erlang/OTP 25 and rebar3
Who it suits
Fable suits .NET or JavaScript developers who want to build applications with F# and target browser or other language runtimes. It also fits teams comfortable evaluating targets with different maturity levels.
Verdict
Fable gives F# developers a source-to-source path into JavaScript, TypeScript and additional targets. Stable JavaScript tooling is its clearest fit, while other back ends carry the maturity limits listed in the documentation.
The facts
Each one read from Fable's own pages, with the date it was checked.
What it does
- Audience
- The documentation describes Fable as a way to build applications with F#, including browser UIs, and provides guidance for .NET and JavaScript developers.checked 9 Oct 2026
- Beam requirement
- The Beam setup guide requires Erlang/OTP 25 or higher and rebar3.checked 4 Oct 2026
- Build integrations
- For JavaScript projects, Fable integrates with bundlers including Vite, Parcel, and Webpack.checked 9 Oct 2026
- Build workflow
- The CLI supports release, watch, and clean commands, plus options such as output directory and source maps.checked 4 Oct 2026
- Compatibility limit
- Not all NuGet packages work with Fable; the documentation advises checking whether each library is Fable-compatible.checked 9 Oct 2026
- Dependencies
- Fable uses NuGet to load F# libraries, while JavaScript dependencies are listed in package.json.checked 9 Oct 2026
- Editor support
- The official site names Visual Studio Code and JetBrains Rider among the editors usable with Fable.checked 9 Oct 2026
- JavaScript interop
- Fable supports importing JavaScript modules and using NPM packages from F# code.checked 4 Oct 2026
- JavaScript output
- Fable transpiles F# to ES2015 JavaScript.checked 9 Oct 2026
- Language features
- The site highlights F# features including immutability by default, pattern matching, units of measure, and type providers.checked 9 Oct 2026
- Libraries
- The documentation lists Fable.Core, Fable.Browser.Dom, Fable.Elmish.React, and Thoth.Json as libraries available for Fable projects, and cautions that not all NuGet libraries work with Fable.checked 4 Oct 2026
- License
- The Fable repository identifies its license as MIT.checked 9 Oct 2026
- Online access
- The homepage links to an online Fable REPL.checked 4 Oct 2026
- Other targets
- Dart and Python are listed as beta, Rust as alpha, and PHP and Beam (Erlang) as experimental.checked 4 Oct 2026
- Output targets
- Fable lists JavaScript and TypeScript as stable targets, Dart and Python as beta, Rust as alpha, and PHP and Beam (Erlang) as experimental.checked 9 Oct 2026
- Project setup
- The getting started guide installs Fable as a .NET tool and adds Fable.Core to an F# project.checked 4 Oct 2026
- Python requirement
- Fable Python targets Python 3.12 or higher; Python 3.10 and 3.11 are deprecated.checked 4 Oct 2026
- Stable targets
- JavaScript and TypeScript are listed as stable targets.checked 4 Oct 2026
- Support
- The project repository accepts bug reports and feature requests, and notes that maintainers do not check its Gitter chat regularly.checked 9 Oct 2026
- Testing
- The documentation says unit testing is available through Fable.Mocha and that another test runner can be used.checked 9 Oct 2026
- What it does
- Fable is a compiler that lets developers use F# to build applications.checked 9 Oct 2026
Alternatives to Fable
- 1
JSweet
Free planOpen sourceAndroidiOSWebAPI7.7Free plan - 2

SWC
Free planAndroidWebAPILinux7.1Free plan - 3
Transcrypt
Free planWebLinuxmacOSSelf-hosted6.7Free plan - 4
TypeScript Playground
Free planWeb6.6Free plan - 5
Google Web Toolkit
Free planWebExtensionLinuxmacOS6.5Free plan - 6
Haxelib
Free planAPILinuxmacOSWindows6.5Free plan
