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
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/skillsIts 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.
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. 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.
In order to run the demo:
$ npm installDemo of Material Design Component-based UI:
$ npm run dev order-formDemo of plain HTML-based UI — a fancy static page with no Material components, part of the nGUIs set:
$ npm run dev restaurant-menu