pream

Package VersionHex DocsLicense

Type-safe Gleam bindings for Preact with @preact/signals integration. Ships ergonomic HTML constructors, fine-grained reactivity, and Result/Option-aware rendering — no React-style hooks required.

Install

gleam add pream

Requires Preact and @preact/signals as npm dependencies:

npm install preact @preact/signals

Quick start

import pream
import signal
import vnode
pub fn main() {
let count = signal.new(0)
let app =
vnode.div()
|> vnode.children([
vnode.text("Clicked "),
vnode.reactive_text(signal.map(count, fn(n) { "clicked " <> n })),
vnode.text(" times"),
vnode.button()
|> vnode.on("click", fn(_) { signal.set(count, signal.value(count) + 1) })
|> vnode.child(vnode.text("Increment")),
])
pream.to_preact(app)
}

Features

Documentation

License

MIT © 2026 soulsam480