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. 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