{"id":15060949,"url":"https://github.com/davedawkins/sutil","last_synced_at":"2025-04-02T03:15:17.874Z","repository":{"id":40463947,"uuid":"321643286","full_name":"davedawkins/Sutil","owner":"davedawkins","description":"Lightweight front-end framework for F# / Fable. No dependencies.","archived":false,"fork":false,"pushed_at":"2024-10-09T16:12:19.000Z","size":24503,"stargazers_count":306,"open_issues_count":21,"forks_count":19,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-02T02:04:40.195Z","etag":null,"topics":["fable","fsharp","html"],"latest_commit_sha":null,"homepage":"https://sutil.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davedawkins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-15T11:12:40.000Z","updated_at":"2025-03-13T09:47:12.000Z","dependencies_parsed_at":"2025-03-26T02:10:29.319Z","dependency_job_id":null,"html_url":"https://github.com/davedawkins/Sutil","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davedawkins%2FSutil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davedawkins%2FSutil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davedawkins%2FSutil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davedawkins%2FSutil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davedawkins","download_url":"https://codeload.github.com/davedawkins/Sutil/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246746938,"owners_count":20827061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fable","fsharp","html"],"created_at":"2024-09-24T23:07:14.917Z","updated_at":"2025-04-02T03:15:17.857Z","avatar_url":"https://github.com/davedawkins.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sutil [![Nuget](https://img.shields.io/nuget/v/Sutil.svg?maxAge=0\u0026colorB=brightgreen)](https://www.nuget.org/packages/Sutil)\n\n[Sutil](https://sutil.dev) is a web application framework for F#.\n\nIts features are:\n\n- Simple DOM builder, courtesy of [Feliz.Engine](https://github.com/alfonsogarciacaro/Feliz.Engine)\n- No dependencies. Sutil is written entirely in F#, and so does not layer on top of another JS framework, such as React.\n- Reactivity using IObservable and stores. Sutil does not use a virtual DOM.\n- Support for Elmish (Model-View-Update) architecture.\n\nIn addition, Sutil inherits all the benefits of both Fable (F# with excellent JS interop) and F# itself.\n\nSutil 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.\n\n## Getting Started\n\nSee 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).\n\n## Development (of Sutil)\n\nTo compile Sutil and build the main Sutil app in watch mode:\n\n```shell\nnpm run start\n```\n\nTo run tests:\n\n```shell\nnpm run test\n```\n\nTo deploy to https://sutil.dev (you will need to be Dave Dawkins for this to work). This will:\n- build Sutil\n- build documentation\n- install to sutil.dev\n\n```shell\nnpm run deploy:linode\n```\n\n## Building the REPL\n\nManually:\n\n- ensure that repl/src/Fable.Repl.Lib/Fable.Repl.Lib.fsproj is up-to-date with the list of Sutil file names.\n- review `repl/public/samples/samples.json` for examples that should be included or removed\n\nBuild the REPL and deploy (to sutil.dev if you're Dave Dawkins):\n\n```shell\ncd ../davedawkins/repl\n./sutilbuild.sh\nnpm run deploy:linode\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavedawkins%2Fsutil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavedawkins%2Fsutil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavedawkins%2Fsutil/lists"}