ABLA GitHub

Making compile time as important as run time.

Abla is an experimental programming language with arbitrary compile-time execution for expressive code generation, program transformation, and less boilerplate.

... people on this page - refreshes every 5 seconds

Ablu, the Abla owl BUILT WITH ABLA

One action, two places to run.

The same typed interaction can execute in the native server or in your browser as WebAssembly.

$mvcview · server action · client Wasm
SERVER 0
BROWSER 0
THE CORE OF THE DEMO

Abla all the way through.

fun siteServer(amount: int): MvcAction {
  serverCounter = serverCounter + amount
  replace("#server-counter", serverCounterView(serverCounter))
}

@client
fun siteClient(current: int): int = current + 1

fun demo(value: int): MvcHtml = $mvcview
  <button onclick={siteServer(1)}>Server +1</button>
  <button onclick={siteClient(0)}>Browser +1</button>