[ANN] Hyperbole 0.5 - custom JS interop, OAuth2, trigger actions, and more!

I’m pleased to announce Hyperbole 0.5!

Hyperbole enables you to write interactive HTML applications with type-safe serverside Haskell. It is inspired by HTMX, Elm, and Phoenix LiveView.

Improvements

  • trigger actions in other views

  • Javascript FFI

    • window.Hyperbole - API available from custom JS. runAction allows JS to trigger actions

    • pushEvent - send events to JS from the server

  • Documents

    • Choose to configure with View DocumentHead () instead of ByteString -> ByteString

    • quickStartDocument

    • Live Reload

  • Websocket - ping keepalive

  • New form fields: radio, select

  • Web.Hyperbole.Effect.OAuth2 - Authentication

  • Web.Hyperbole.Effect.GenRandom - Simple random effect used by OAuth2

  • Error handling, custom errors

  • Examples

    • Many additions and improvements

    • External Stylesheet TodoMVC

    • OAuth2 example

Breaking Changes / Improvements

  • Web.Atomic.CSS overhauled, and is now opt-in. Use new @ and ~ operators to apply attributes and styles

  • Web.Hyperbole.Data.Param - unified param encoding for Forms, ViewId, ViewAction, Sessions, Queries

  • Web.Hyperbole.Data.Encoding - encoding for ViewId, ViewAction

  • Web.Hyperbole.Data.URI - Standardize on Network.URI, extra utilities to manage paths

  • trigger: required refactor of Page type alias to support type-checking: Eff es (Page '[]) is now Page es '[]

Thanks to Adithya Kumar and Benjamin Thomas for their contributions on this version!

13 Likes