Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/davedawkins/sutil
Lightweight front-end framework for F# / Fable. No dependencies.
https://github.com/davedawkins/sutil
fable fsharp html
Last synced: 4 days ago
JSON representation
Lightweight front-end framework for F# / Fable. No dependencies.
- Host: GitHub
- URL: https://github.com/davedawkins/sutil
- Owner: davedawkins
- License: mit
- Created: 2020-12-15T11:12:40.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-09T16:12:19.000Z (4 months ago)
- Last Synced: 2025-02-02T21:45:43.564Z (4 days ago)
- Topics: fable, fsharp, html
- Language: JavaScript
- Homepage: https://sutil.dev
- Size: 23.4 MB
- Stars: 304
- Watchers: 18
- Forks: 19
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sutil [![Nuget](https://img.shields.io/nuget/v/Sutil.svg?maxAge=0&colorB=brightgreen)](https://www.nuget.org/packages/Sutil)
[Sutil](https://sutil.dev) is a web application framework for F#.
Its features are:
- Simple DOM builder, courtesy of [Feliz.Engine](https://github.com/alfonsogarciacaro/Feliz.Engine)
- No dependencies. Sutil is written entirely in F#, and so does not layer on top of another JS framework, such as React.
- Reactivity using IObservable and stores. Sutil does not use a virtual DOM.
- Support for Elmish (Model-View-Update) architecture.In addition, Sutil inherits all the benefits of both Fable (F# with excellent JS interop) and F# itself.
Sutil was heavily inspired by Svelte, and imports several of its design features, such as stores and component styling. Some parts of Sutil are direct ports from Svelte.
## Getting Started
See the documentation [here](https://sutil.dev/#documentation-about-sutil). This will show you how to start your own Sutil project in a variety of ways, and explain the basic concepts. You'll also many examples [here](https://sutil.dev/#examples-hello-world).
## Development (of Sutil)
To compile Sutil and build the main Sutil app in watch mode:
```shell
npm run start
```To run tests:
```shell
npm run test
```To deploy to https://sutil.dev (you will need to be Dave Dawkins for this to work). This will:
- build Sutil
- build documentation
- install to sutil.dev```shell
npm run deploy:linode
```## Building the REPL
Manually:
- ensure that repl/src/Fable.Repl.Lib/Fable.Repl.Lib.fsproj is up-to-date with the list of Sutil file names.
- review `repl/public/samples/samples.json` for examples that should be included or removedBuild the REPL and deploy (to sutil.dev if you're Dave Dawkins):
```shell
cd ../davedawkins/repl
./sutilbuild.sh
npm run deploy:linode
```