Welcome to KISDigital

ColdFusion, Lucee
& BoxLang.

Deep dives into ColdFusion, Lucee, and BoxLang — modern CFML development, runtime internals, and the future of the JVM web stack.

Adding Gamification to DismalThreads

DismalThreads forum implements a gamified achievement system inspired by Dungeon Crawler Carl's snarky tone. Achievements have five tiers (Common to Legendary) plus secret achievements for specific behaviors.


RZ
May 18, 2026
Read →
Writing Effective Claude Skills

Claude skills are reusable, prompt-based automation shortcuts stored as `SKILL.md` files with YAML frontmatter and Markdown instructions. Best practices: narrow scope (one job per skill), specific instructions with examples, separate process (SKILL.md) from knowledge (REFERENCE.md), use XML tags for structure, control invocation via `disable-model-invocation` and `user-invocable` flags, and iterate based on real outputs.


RZ
Apr 15, 2026
Read →
Stump the Programmer: The Recursive Shelf

Robert presents a ColdFusion/BoxLang coding challenge to build a recursive function that converts a flat array of hierarchical category data (using `id` and `parent_id` relationships) into a nested tree structure without using loops. The solution uses `arrayFilter()` to find children of each parent and `arrayMap()` to recursively build the `children` array for each node, with an optional bonus feature to alphabetically sort children at each nesting level using a `sortKey` parameter.


RZ
Apr 10, 2026
Read →
cli
Stop Memorizing rsync Flags: Use a Wrapper Instead

`rsync-profiles` is a simple bash wrapper that replaces long, error-prone `rsync` commands with named profiles. Define your source, target, and exclusions in an INI-style config file, then sync with a single command like `rsync-profiles myprofile`. It supports remote servers via SSH, dry-run previews, custom rsync flags, and profile listing. Great for anyone tired of fat-fingering remote paths or digging through bash history to find that one sync command they ran three months ago.


RZ
Apr 2, 2026
Read →
Building a better spider

Robert evolved a web scraping service over several years to extract link metadata (Open Graph, Twitter Cards, oEmbed, JSON-LD) for social sharing features, progressively hardening it against bot detection, timeouts, and SSL errors. The latest version uses a multi-layered extraction strategy—rotating user-agents, disabling certificate validation, adding browser headers only for non-bot UAs to maximize successful extraction.


RZ
Mar 24, 2026
Read →
CBWire: Computed vs Data Properties

CBWire uses data properties for reactive state that persists between requests and supports two-way binding, making them ideal for form inputs and user interactions. Computed properties are read-only, derived values that are automatically cached per request, perfect for expensive operations like database queries or calculations that depend on data properties.


RZ
Mar 24, 2026
Read →