fsharp-frontend

Implement F# frontend architecture with Elmish MVU and Feliz components.

1|Updated Nov 26, 2025
One-click install
npx skills add https://github.com/heimeshoff/Cinemarco --skill fsharp-frontend
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fsharp-frontend
Source: https://github.com/heimeshoff/Cinemarco/tree/main/.claude/skills/fsharp-frontend
Command: npx skills add https://github.com/heimeshoff/Cinemarco --skill fsharp-frontend

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a complete F# frontend blueprint using Elmish MVU with Feliz, enabling predictable state management and reusable UI components.

Core Features & Use Cases

  • MVU Architecture: Model, Msg, Update, Cmd pattern.
  • RemoteData for Async: integrate Loading/NotAsked/Success/Failure flows.
  • View Components: Reusable cards, forms, and lists with Tailwind/DaisyUI styling.
  • Use Case: Build a responsive Todo UI with real-time API integration.

Quick Start

Use the fsharp-frontend skill to scaffold the client side structure (src/Client) and components, including State.fs, View.fs, and Types.fs templates.

Frequently Asked Questions about fsharp-frontend

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a frontend with F# using the MVU pattern?

MVU (Model-View-Update) is a functional architecture that manages state through immutable models, user messages, and pure update functions. F# with Elmish implements MVU by defining a Model type, Msg discriminated union, Update function, and View function using Feliz components, enabling predictable state flows and easy testing.

Can I handle async operations like API calls in an Elmish F# frontend?

Yes, Elmish uses Cmd to manage side effects including async API calls. RemoteData patterns (NotAsked, Loading, Success, Failure) type-safely model async states, allowing you to render loading indicators, handle errors, and display results without callback hell.

What's the best way to structure reusable UI components in F# with Feliz?

Feliz provides a DSL for building composable React components in F#. Structure components as pure functions accepting props, use discriminated unions for component state variants, and combine them with TailwindCSS and DaisyUI utilities for styling, enabling type-safe, reusable UI blocks.

Does Elmish work with forms and real-time data validation?

Elmish supports forms through separate form state in your Model and dedicated Msg cases for field updates and validation. RemoteData tracks submission status; Cmd handles API validation calls; Update applies form logic and error handling, creating responsive forms with real-time feedback.

How do I integrate TailwindCSS and DaisyUI styling with F# components?

Feliz accepts className strings for Tailwind utilities and DaisyUI component classes directly in component definitions. Compose utility classes as strings in View functions, or extract repeated patterns into helper functions, keeping styling colocated with component logic.

What's required to start using Elmish and Feliz in an F# project?

Set up an F# web project with Elmish.React and Feliz packages, create Types.fs for Model and Msg, State.fs for init and update logic, and View.fs for Feliz components. Import RemoteData for async handling and configure TailwindCSS for styling.