{"id":18726612,"url":"https://github.com/rastreus/fablestarter","last_synced_at":"2025-07-10T06:35:28.469Z","repository":{"id":42176008,"uuid":"412872393","full_name":"rastreus/FableStarter","owner":"rastreus","description":"An Elmish F# Fable template that uses Tailwind for styling, the Vite bundler, the Vitest test runner and Storybook","archived":false,"fork":false,"pushed_at":"2023-02-16T07:44:48.000Z","size":935,"stargazers_count":30,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T16:43:53.663Z","etag":null,"topics":["elmish","fable","fsharp","storybook","tailwindcss","template","vite","vitest"],"latest_commit_sha":null,"homepage":"","language":"F#","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/rastreus.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,"zenodo":null}},"created_at":"2021-10-02T17:55:25.000Z","updated_at":"2025-01-09T18:44:35.000Z","dependencies_parsed_at":"2025-04-12T16:48:03.090Z","dependency_job_id":null,"html_url":"https://github.com/rastreus/FableStarter","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/rastreus/FableStarter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastreus%2FFableStarter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastreus%2FFableStarter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastreus%2FFableStarter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastreus%2FFableStarter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rastreus","download_url":"https://codeload.github.com/rastreus/FableStarter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastreus%2FFableStarter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264538587,"owners_count":23624437,"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":["elmish","fable","fsharp","storybook","tailwindcss","template","vite","vitest"],"created_at":"2024-11-07T14:14:56.799Z","updated_at":"2025-07-10T06:35:28.436Z","avatar_url":"https://github.com/rastreus.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FableStarter\n\n\u003cimg src=\"web/src/fable_logo.png\" alt=\"Fable Logo\" width=\"245.8\" /\u003e\n\nAn Elmish F# [Fable](https://fable.io) template which uses [Tailwind](https://tailwindcss.com) for styling, the [Vite](https://vitejs.dev) bundler, the [Vitest](https://vitest.dev) test runner and [Storybook](https://storybook.js.org) for [Component-Driven Development](https://www.componentdriven.org) (CDD).\n\n* Uses [Fable.Remoting](https://zaid-ajaj.github.io/Fable.Remoting/#/) with [Saturn](https://saturnframework.org/explanations/overview.html)\n* Inspired by [RedwoodJS File Structure](https://redwoodjs.com/docs/tutorial/chapter1/file-structure)\n\n## Install pre-requisites\n\nYou'll need to install the following pre-requisites in order to use the Fable Starter template:\n\n- [.NET 6.0 SDK](https://dotnet.microsoft.com/download/dotnet/6.0)\n- [Node](https://nodejs.org/en/download/)\n- [Yarn](https://classic.yarnpkg.com/lang/en/)\n\n## Getting Started with FableStarter\n\nUse [degit](https://github.com/Rich-Harris/degit) to set up the template:\n\n```bash\nnpx degit rastreus/FableStarter \u003cyour project name\u003e\n```\n\nRun the following commands from the root of the project directory:\n\n0. `cd \u003cyour project name\u003e`\n\n1. `dotnet tool restore`\n\n2. `dotnet paket install`\n\n3. `yarn install`\n\n4. `dotnet build shared/src/Shared.fsproj`\n\n5. `dotnet build api/src/Api./fsproj`\n\n6. `dotnet run --project api/src/Api.fsproj`\n\n7. `yarn dev:fable`\n\n8. Open a brower to `http://localhost:5173`\n\n## Running Tests\n\nTests can be run by Vitest in its watch mode. Open a separate terminal instance and run `yarn test`.\n\nCheck out [Fable.Expect](https://github.com/fable-compiler/Fable.Expect) to learn more about defining tests.\n\nMore testing resources:\n\n- [Testing documentation](https://fable.io/docs/your-fable-project/testing.html)\n- [Fable.Jester](https://github.com/Shmew/Fable.Jester)\n- [Fable.Mocha](https://github.com/Zaid-Ajaj/Fable.Mocha)\n\n## Running Storybook\n\nSimilar to tests, Storybook can run in its watch mode in a separate terminal instance with `yarn storybook`.\n\nCheck out the [Storybook Docs](https://storybook.js.org/docs/react/get-started/introduction) and their [Storybook for React tutorial](https://storybook.js.org/tutorials/intro-to-storybook/react/en/get-started/) to learn more about writing stories for components.\n\n---\n\n## Other Templates\n\nIf this template isn't what you're wanting, there are other templates. Some only set up a frontend Fable project and then others are full-stack web app templates that include a F# backend:\n\n- [MangelMaxime/template-gitpod-fable-3-vite-react](https://github.com/MangelMaxime/template-gitpod-fable-3-vite-react)\n- [fable-compiler/fable-templates](https://github.com/fable-compiler/fable-templates)\n- [albertwoo/FablePlayground](https://github.com/albertwoo/FablePlayground)\n- [Bjorn-Strom/elmish-fss-template](https://github.com/Bjorn-Strom/elmish-fss-template)\n- [SAFE-Stack/SAFE-template](https://github.com/SAFE-Stack/SAFE-template)\n- [Zaid-Ajaj/SAFE.React](https://github.com/Zaid-Ajaj/SAFE.React)\n- [Dzoukr/SAFEr.Template](https://github.com/Dzoukr/SAFEr.Template)\n\nAdditional templates can be found at [https://fable.io/resources.html#Templates](https://fable.io/resources.html#Templates)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frastreus%2Ffablestarter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frastreus%2Ffablestarter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frastreus%2Ffablestarter/lists"}