Skip to content

Repository files navigation

Profunctor User Interfaces

This is a prototype of the idea of profunctor user interfaces for Web/Material Design Component-based UIs written in PureScript.

Why Bambik? — a long-form introduction

20 minutes-long presentation of the idea

Variant syntax sugar — the forked PureScript compiler this repo builds on

Using it in your own application

bambik is consumed as a spago git package pinned to a release tag — no clone, nothing vendored. The v0.1.5 release ships developing-bambik-apps, the authoring skill: how to bootstrap a project, the vocabulary and its four row directions, separation of concerns, the definitive code-style contract, and the build/verify workflow — with a scaffold that produces a working application, left running in dev mode.

Its bootstrap.md gives the packages.dhall entry and the two toolchain pins the library requires (the variant-sugar compiler and the matching purescript-variant fork; stock purs cannot build bambik).

mkdir -p .claude/skills
curl -sL https://github.com/restaumatic/bambik/releases/download/v0.1.5/developing-bambik-apps-v0.1.5.tar.gz | tar xz -C .claude/skills

Its source of truth is .claude/skills/developing-bambik-apps/; bootstrap.md is readable on its own if you would rather follow the procedure by hand.

Start here

Read the demos in this order — counter, temperature-converter, flight-booker, todomvc, checkout, order-form — each adding one idea to the last. walkthrough.md reads flight-booker line by line, and vocabulary.md is the lookup index from what the screen needs to the word for it, and writing.md's What the laws guarantee says what the six shape laws buy you when composing. The toolchain is one command: npm install fetches the forked compiler as a pinned GitHub release together with the matching variant library — nothing is built locally.

Demo

In order to run the demo:

$ npm install

Demo of Material Design Component-based UI:

$ npm run dev order-form

Demo of plain HTML-based UI — a fancy static page with no Material components, part of the nGUIs set:

$ npm run dev restaurant-menu

About

Prototype of the idea of profunctor user interfaces for PureScript Web UIs

Topics

Resources

Stars

9 stars

Watchers

4 watching

Forks

Releases

Used by

Contributors

Languages