Case studies

Selected engagements for operators, founders, and product teams — systems built to run in production, not just look convincing in a deck.

Laboratory operations coordination software interface

Operations Software

Lab coordination for samples, staff, and drivers

Give a laboratory one place to prioritize tests, assign work across instruments and people, schedule pickups, and let customers track orders the way they track a package — less spreadsheet chaos, clearer handoffs.

Build

Cross-platform mobile and web clients on a shared API, with role-aware workflows for scientists, drivers, and customers.

What it demonstrates

Multi-persona operations software: prioritization, machine/staff load balancing, driver navigation/scheduling, and a customer-facing tracking experience.

Flutter React FastAPI Python PostgreSQL AWS
Tournament director desk for bowling events

Event Operations

Tournament desk for directors running live bowling events

Replace paper stacks with one desk for registration, lanes, scoring, standings, brackets, and side pots — built for weekend directors and centers that need software that keeps up when the lanes are full.

Build

React director desk and public results surfaces on a FastAPI/PostgreSQL backend with payments, background jobs, and an embedded NotLM pack so directors can ask in plain language and get taken through complex flows without an LLM on every turn.

What it demonstrates

Domain-heavy SaaS: tournament → event → round → squad → game modeling, batch and match-play scoring, lane assignment boards, Stripe-backed commerce, and guided UX for power users.

React TypeScript FastAPI Python PostgreSQL Redis Celery Stripe AWS Aurora

Legal Technology

Matter research desk with grounded answers for law firms

A local-first research workspace for matter documents — ask questions with cited sources, run multi-user research sessions across assigned libraries, and keep an always-on faithfulness gate before anything is emitted. Built for firm control of data, ethical walls, and audit — not a generic chat wrapper over the open web.

Build

Rust API and workspace with local indexing, Ask and Research modes, firm installer, Docker options, and a dark Live Desk UI for chat, stages, and source panes.

What it demonstrates

Grounded legal retrieval with a faithfulness council before emit, privilege and ethical-wall enforcement, matter-scoped libraries, and operator tooling for install, backup, and DMS connectors.

Rust Cargo workspace Local LLMs Ollama Docker Playwright TypeScript
Hands-free gaze and gesture computer control

Accessibility Software

Hands-free Windows control with gaze and gestures

Webcam-based cursor control for people who need an alternative to mouse and trackpad — look to move, gesture to click and scroll, with guided calibration and a lightweight control panel so profiles stay personal and recoverable.

Build

Windows desktop app with gaze tracking, MediaPipe hand landmarks, accessibility-tree UI snapping, Alpine.js + pywebview control panel, system tray, and a single-file release executable.

What it demonstrates

OS-level assistive input: eye-driven pointing, V-sign / pinch click, thumb scroll, per-profile calibration persistence, and packaging for real Windows 10/11 machines.

Python eyeGestures MediaPipe pywebview Alpine.js PyInstaller Playwright
In-app product chat answering a plain-language ask and opening the right screen

Product Enablement

In-app chat that feels like AI — without an LLM on every message

Most product questions are predictable: “open billing,” “what’s this?,” “why can’t I save?” NotLM is a frontline chatbot for your SPA that captures that bulk of traffic with a local smart cache — packed intents, FAQs, and catalogs — so replies stay snappy and LLM spend stays on the rare misses. Optional smaller-model and full LLM fallbacks still cover novel asks. Spotlights and guided tours are one pattern you can pack; the point is a chat that understands your app.

Build

Open NotLM runtime (@notlm/*): deterministic pack NLU as the hot path, React host SDK, optional ONNX ranker and Laya decision fallback, then optional host LLM. A separate offline training repo turns miss logs into better pack aliases and intents without rewriting the sealed runtime customers ship.

What it demonstrates

LLM-like product chat with local-first cost and latency: FAQ, goto, query, confirm-gated mutations, context blockers, tours, search, compare, handoff, audit, clean OOD refusal, and disambiguation — UI actions only (navigate / spotlight / click guide IDs; never posting into product APIs).

Source

Runtime (notlm) Training (notlm-training)

TypeScript React Vite ONNX Playwright Node.js
SwissArmyNoife module marketplace browse, publish, and billing storefront

AI Infrastructure

Local capability broker so AI tools share one secure toolkit

Install once on a machine and give every assistant or IDE a controlled way to use models, files, sandboxes, memory, and research — without each tool inventing its own integrations, and with data staying local by default. A companion marketplace lets teams browse, publish, and pin versioned Wasm capability modules for the broker instead of shipping one-off plugins.

Build

Rust MCP server (stdio + HTTP) with a catalog → bind → invoke flow, SQLite-first persistence, optional Postgres, Wasm module marketplace (registry API + React storefront for browse/publish/billing/review), and multi-language client SDKs.

What it demonstrates

Harness-agnostic Model Context Protocol integration: one local broker many AI clients can call, with safer Wasm-first extensions and a versioned marketplace for installing capabilities instead of arbitrary native plugins.

Rust MCP Tokio SQLite Wasm React TypeScript SDK Python SDK
Ledger for goals, non-goals, and budgeted agent work slices

Agent Scope Control

Keep coding agents on budgeted, reviewable slices

Give AI coding tools a durable project ledger — goals, non-goals, and small micro-slices with acceptance criteria — so agents recover context and stay inside agreed bounds instead of rewriting the whole tree. It ships as a thin MCP client surface: a small tool set to assemble and update scope, with cache-aware context packing that reuses stable prefixes so prompts stay cheap as work progresses.

Build

Thin Rust stdio MCP server (not a full agent harness) over a local YAML project ledger, returning cache-optimized context packets and tracking attempts plus ADR pointers for coding agents.

What it demonstrates

Scope control for agent-assisted delivery: budgeted slices (file/LOC caps), explicit out-of-scope, fingerprint-stable context assembly that pins reusable prefix blocks until the ledger fingerprint changes (prompt-cache friendly), and a workflow that favors reviewable change over unbounded autonomy.

Rust MCP YAML Stdio Cargo
Nimbusware Agent and Models settings with per-role provider bindings

AI-Assisted Delivery

Governed workspace for agent-assisted software changes

A local-first platform where AI agents propose small, testable slices of work — and only proceed when gates and reviews pass. Built for teams that want agent help with an audit trail, not a black-box SaaS rewriting the whole codebase overnight.

Build

Python/FastAPI orchestrator with event-sourced runs, Maker and Admin surfaces, desktop launcher, and capability calls delegated to a local MCP broker for models, sandboxes, and memory.

What it demonstrates

Adversarial, slice-based agent workflows with unanimous gates, projections over an append-only store, and dual MCP bridges (IDE orchestration vs capability broker).

Python FastAPI PostgreSQL Alpine.js Preact MCP Poetry