Skip to main content
Miso Miso is a small, production-ready, component-oriented, isomorphic Haskell front-end framework for quickly building highly interactive single-page web and mobile applications. It features a virtual DOM, recursive diffing/patching algorithm, attribute and property normalization, event delegation, event batching, SVG, 2D/3D Canvas (WebGL), Server-sent events (SSE), WebSockets, type-safe servant-style routing and an extensible subscription-based subsystem. Inspired by Elm and React.

Quickstart

Get a miso app running in minutes using the sampler template

Installation

Set up GHC with WASM or JS backend and compile your first app

Architecture

Understand the Model-View-Update pattern and component system

API Reference

Explore every module and type exported by miso

Why miso?

Virtual DOM

High-performance recursive diffing and patching with 100% test coverage on the core engine

Pure by default

Side effects are explicit and typed via the Effect monad — no surprises

WASM & JS targets

Compile to WebAssembly or JavaScript using standard GHC tooling

Type-safe routing

Servant-style routing with correct-by-construction URL encoding and decoding

Component system

Nest components with typed parent-child bindings, lifecycle hooks, and data bindings

Isomorphic

Render on the server, hydrate on the client — one codebase for both

Compilation targets

Miso supports three compilation backends:
BackendCompilerUse case
WebAssemblywasm32-wasi-ghcRecommended default — full GHC, best tooling
JavaScriptjavascript-unknown-ghcjs-ghcGHCJS-compatible JS output
Vanilla GHCStandard ghcServer-side rendering and testing

Real-world examples

Miso has been used in quantitative finance, network security, defense research, SaaS products, and academic settings. The largest known installation runs ~200,000 lines of miso code serving 10,000+ users.

TodoMVC

Classic TodoMVC implementation

2048

A clone of the 2048 puzzle game

Snake

Classic Snake game

Fetch

AJAX/HTTP request example

Community

GitHub

Browse the haskell-miso organization

Matrix

Chat on Matrix

Discord

Join the Discord server

Hackage

Official Haskell package on Hackage

Build docs developers (and LLMs) love