Hatter: Native Haskell mobile apps
Haskell Community [Unofficial]
May 15, 2026
Yeah I did reply to that. I assumed it’d be a webview approach seing the javascript stuff, clearly I was wrong, it appears to be more like flutter, nice
To be clear, I want a /working/ approach for device / integration access on mobile in haskell, I don’t care who makes it. For example access to the camera or bleutooth. miso-lynx doesn’t appear to do this right now and is a fair bit away from doing that.
I told it to make a full comparison here:
github.com/jappeace/hatter
docs/miso-lynx-comparison.md
master
# Hatter vs miso-lynx: Technical Comparison
A technical comparison of the two native Haskell mobile frameworks, focused on architecture, device API access, and what it takes to ship a Bluetooth scan.
---
## Executive Summary
Hatter and miso-lynx take fundamentally different approaches to putting Haskell on mobile:
- **Hatter** cross-compiles Haskell to native ARM binaries via GHC. The Haskell runtime runs natively on the device. Device APIs are accessed through a C FFI bridge that dispatches to JNI (Android) or Objective-C (iOS).
- **miso-lynx** compiles Haskell to JavaScript via GHC 9.12's JS backend. The code runs inside a JS interpreter embedded in LynxJS (ByteDance's cross-platform engine, used in production by TikTok). Native views are created through LynxJS's Element PAPI.
| Concern | Hatter | miso-lynx |
|---|---|---|
| Execution model | Native ARM binary (GHC RTS on device) | JavaScript in LynxJS interpreter |
| UI toolkit | Platform-native (UIKit, Android Views, SwiftUI) | LynxJS native views via Element PAPI |
| Language boundary | C FFI (direct function calls) | GHC JS backend → LynxJS PAPI |
| Layout engine | Platform-native (Auto Layout, LinearLayout) | LynxJS CSS engine (flexbox/grid/linear) |
| Device APIs | 10+ working (BLE, Camera, Location, HTTP, etc.) | None yet (blocked on dual-thread PR) |
This file has been truncated. show original
NB: This is a cookbook on how to use agents better: A Practical Guide to Agentic Software Development — Jappie Software B.V.
Discussion in the ATmosphere