What is this?

Malaysian market traders have tracked customer credit ("hutang") for decades using the iconic red-and-blue Buku 555 notebook. Paper gets wet at the fish stall, pages get lost, and asking a neighbour for money is awkward.

Buku 555 Berhantu resurrects the Buku 555 as a phone-first web app:

  • The trader speaks or types an entry in Bahasa Melayu (e.g. "Kak Ros ambil 2 kilo kembung RM18, bayar Jumaat")
  • It parses customer, item, amount (RM) and due day
  • It shows who owes what, total outstanding, and who is overdue
  • For overdue customers, a polite ghost reminder message is prepared and opened in WhatsApp via a click-to-chat link — the trader always presses Send; nothing is sent automatically
  • Marking an entry paid exorcises the ghost 👻✨

Designed for a 60-year-old fish seller on a cheap Android phone at 5am: big tap targets, Malay-first UI, works offline, no login, no server.

How it was built with Kiro

Built entirely with the Kiro CLI agentic workflow:

  1. Steering docs (.kiro/steering/) — Malay-first copy, no server or tracking, big tap targets for older traders.
  2. Spec generation — Kiro produced requirements.md (EARS user stories), design.md (architecture, parser grammar, correctness properties), and tasks.md (T-1 to T-27) in .kiro/specs/buku-555/.
  3. Implementation — Kiro implemented all source files (parser.js, ledger.js, i18n.js, app.js, index.html, styles.css, assets/ghost.svg) from the specs.
  4. Property-based testing — fast-check properties designed in design.md then coded in tests/ (e.g. amountRM ≥ 0, totalOutstanding equals sum of unpaid entries, export→import round-trip preserves entries).
  5. Agent hooks (.kiro/hooks/): run-tests-on-save runs npm test on every .js save and fixes failures without weakening tests; i18n-check verifies every key in i18n.js has both Malay and English.
  6. Verification loop — Kiro ran npm install && npm test and fixed failures until all tests were green.

Kiro features used: steering docs (.kiro/steering), spec generation (.kiro/specs), agentic code generation from specs, property-based testing with fast-check, and custom agent hooks (.kiro/hooks).

Built With

Share this project:

Updates

Submission history