A fresh retake of the React API in Fable for building React applications in F#, optimized for developer happiness.
Feliz is a library that reimagines the React API for Fable, enabling developers to build React applications using F#. It focuses on type safety, a pleasant developer experience, and provides a collection of high-quality components and utilities that integrate seamlessly with the F# ecosystem.
F# developers building React applications who prioritize type safety, discoverability, and seamless integration with the F# and JavaScript ecosystems.
Developers choose Feliz for its type-safe CSS and HTML attributes, zero bundle size impact due to function body erasure, and seamless integration with Elmish state management via the React.useElmish hook.
A fresh retake of the React API in Fable and a collection of high-quality components to build React applications in F#, optimized for happiness
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Utilizes overloaded functions to provide type-safe CSS, covering over 90% of CSS styles and properties, which reduces runtime styling errors and enhances code reliability.
Function bodies are erased from generated JavaScript unless used, minimizing bundle size impact—ideal for performance-sensitive applications.
Offers a React.useElmish hook to integrate Elmish state machines with React components, enabling predictable state management in F# without boilerplate code.
All HTML attributes and CSS properties are globally available and easy to find via IntelliSense, speeding up development and reducing documentation lookup.
Compared to JavaScript/TypeScript React communities, the pool of pre-built Feliz components is smaller, often requiring custom wrappers or development for third-party libraries.
Requires knowledge of F# and .NET tooling like Fable, which can be a steep learning curve for teams not already invested in the Microsoft ecosystem.
Initial setup involves .NET templates, npm dependencies, and Fable configuration, which is more involved than standard React projects with create-react-app or Vite.