| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sat, 17 Jan 2026 05:13:31 GMT
X-Served-By: cache-dfw-kdal2120144-DFW, cache-bom-vanm7210076-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768626811.157487,VS0,VE412
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
hyperbole: Interactive HTML apps using type-safe serverside Haskell
[Skip to Readme]
hyperbole: Interactive HTML apps using type-safe serverside Haskell
Interactive HTML applications with type-safe serverside Haskell. Inspired by HTMX, Elm, and Phoenix LiveView.
[Skip to Readme]
Modules
[Index] [Quick Jump]
Downloads
- hyperbole-0.6.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
| Versions [RSS] | 0.1.1, 0.1.2, 0.2.0, 0.3.5, 0.3.6, 0.4.2, 0.4.3, 0.5.0, 0.6.0 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson (>=2.1.2.1 && <2.3), atomic-css (>=0.2 && <0.3), attoparsec (>=0.14 && <0.15), attoparsec-aeson (>=2.1 && <2.3), base (>=4.16 && <5), bytestring (>=0.11 && <0.13), casing (>=0.1.2 && <0.2), containers (>=0.6 && <1), cookie (>=0.4 && <0.6), data-default (>=0.8 && <0.9), effectful (>=2.4 && <3), file-embed (>=0.0.10 && <0.1), filepath (>=1.4 && <2), http-api-data (>=0.6 && <0.7), http-client (>=0.7 && <0.8), http-client-tls (>=0.3 && <0.4), http-types (>=0.12 && <0.13), network (>=3.1 && <4), network-uri (>=2.6.4.1 && <2.7), random (>=1.2 && <2), string-conversions (>=0.4 && <0.5), string-interpolate (>=0.3 && <0.4), text (>=1.2 && <3), time (>=1.12 && <2), wai (>=3.2 && <4), wai-websockets (>=3.0 && <4), warp (>=3.3 && <4), websockets (>=0.12 && <0.14) [details] |
| Tested with | ghc ==9.8.2, ghc ==9.6.6 |
| License | BSD-3-Clause |
| Author | Sean Hess |
| Maintainer | seanhess@gmail.com |
| Uploaded | by seanhess at 2026-01-15T20:35:22Z |
| Category | Web, Network |
| Home page | https://github.com/seanhess/hyperbole |
| Bug tracker | https://github.com/seanhess/hyperbole/issues |
| Source repo | head: git clone https://github.com/seanhess/hyperbole |
| Distributions | LTSHaskell:0.4.3, Stackage:0.6.0 |
| Downloads | 518 total (41 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user Build status unknown [no reports yet] |
Readme for hyperbole-0.6.0
[back to package description]
Create interactive HTML applications with type-safe serverside Haskell. Inspired by HTMX, Elm, and Phoenix LiveView.
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
module Main where
import Data.Text (Text)
import Web.Atomic.CSS
import Web.Hyperbole
main :: IO ()
main = do
run 3000 $ do
liveApp quickStartDocument (runPage page)
page :: (Hyperbole :> es) => Page es '[Message]
page = do
pure $ do
hyper Message1 $ messageView "Hello"
hyper Message2 $ messageView "World!"
data Message = Message1 | Message2
deriving (Generic, ViewId)
instance HyperView Message es where
data Action Message
= Louder Text
deriving (Generic, ViewAction)
update (Louder msg) = do
let new = msg <> "!"
pure $ messageView new
messageView :: Text -> View Message ()
messageView msg = do
button (Louder msg) ~ border 1 $ text msg
Documentation
Visit hyperbole.live for documentation and live examples. Also see the Hackage Documentation
Getting Started with Cabal
Create a new application:
$ mkdir myapp
$ cd myapp
$ cabal init
Add hyperbole and text as dependencies to the .cabal file:
build-depends:
base
, hyperbole
, text
default-language: GHC2021
Paste the above example into Main.hs, then run it:
$ cabal run
Visit https://localhost:3000 to view the application
Learn More
In the Wild
The NSO uses Hyperbole to manage Level 2 Data pipelines for the DKIST telescope. It uses complex user interfaces, workers, databases, and more. The entire codebase is open source.