Blog
Replaying a sniffed port knock, then watching SPA refuse the copy
A browser lab and a Docker lab let you sniff a port knock and replay it to get in, then see Single Packet Authorization refuse the same kind of copy.
JavaScript · Docker · iptables · Packet Analysis · Python · Shell · Linux
Syncing GitHub issues both ways without a public endpoint per project
One bridge receives and records GitHub's webhooks; a sync that connects out to it uses per-issue snapshots so its own echoes change nothing.
TypeScript · Cloudflare · SQLite · REST
Giving each agent its own account, owned by a person
Agents on poietic.tech became users with their own revocable tokens and a human owner, so services record what an agent did and can stop it on its own.
TypeScript · Cloudflare · SQLite · AI Agents
agentic-harness-development
Portable agent skills, harness specialists and versioned TypeScript tooling for a developer's coding harness or a deployed agent. Includes Jev, a client, CLI and opt-in MCP adapter for typed decisions through OpenRouter; a validated capability catalog with a read-only selection CLI; and a Claude Code plugin that checks for updates. Released on UTC timestamp versions with checksummed archives. Alpha: Codex bootstrap and live Jev inference are verified on a synthetic fixture, broader decision quality is not.
TypeScript · JavaScript · Node.js · AI Agents
Meetings
Group video and text chat over WebRTC for up to six people at meetings.poietic.tech. Every browser connects directly to every other, splitting its upload between them; the server only relays connection setup, addressed to one peer at a time. Each room is a Cloudflare Durable Object that deletes itself after a day unused. Creating a room needs a poietic.tech sign-in, checked against the auth service's public key; joining needs only the link and a nickname. Cloudflare TURN relays calls that can't connect directly, with short-lived credentials handed out only for rooms that exist. Started life as Tinker Chat, the first experiment at tinkers.poietic.tech.
WebRTC · TypeScript · JavaScript · Cloudflare
pitch-trainer
Browser ear trainer. A Rust engine compiled to WebAssembly generates the test rounds, renders the audio and adapts the difficulty; a Svelte interface plays each round and shows the notes as colours and shapes.
Rust · WebAssembly · Svelte · TypeScript
issue-tracker
An issue tracker for teams where people and AI agents work side by side. Issues, links, sub-issues, custom fields and saved views sit on an append-only event log; Zod schemas generate a committed OpenAPI 3.1 contract; the tracker CLI is written for agents, with stable JSON output, documented exit codes and no prompts. A Svelte web UI has list and kanban views with live updates. SQLite in development and Postgres in production from one codebase, with every test suite run against both. Built largely with Claude Code.
TypeScript · Svelte · SQLite · Docker
llm-in-browser
A small language model chatting locally in the browser: SmolLM2-360M, LoRA fine-tuned, runs over WebGPU through a patched Rust/WASM runtime with no inference server, while a second Rust/WASM module retrieves evidence from a fictional research-station knowledge graph. Every answer shows the facts it used. The technique first shipped inside stix-meta-explorer's STIX assistant; this is it on its own, with the whole pipeline from graph generation through training, evaluation and browser proof published. Experimental, desktop only.
Rust · WebAssembly · WebGPU · TypeScript · Python
fs-emulator
Filesystem emulators on an in-memory disk, written in Rust as a learning tool and compiled to WebAssembly. Every byte is a genuine on-disk layout — exported images mount on macOS and Linux — and every operation records which bytes changed and why. FAT16, ext2 and ext3 so far. The browser explorer shows a filesystem lay itself out one operation at a time, with a terminal drawer built on browser-terminal.
Rust · WebAssembly · TypeScript · Svelte
poietic.tech
This site — and the thesis it demonstrates: in an age of AI, one person can orchestrate a small business from their consoles and their phone. Full-account infrastructure as code, a validated content model, and every change shipped by directing AI agents through gated CI. First commit to live production in four days; the method is the point.
Astro · Svelte · TypeScript · OpenTofu · Cloudflare · AI Agents
graph-explorer
A Barnes-Hut force layout and WebGL2 renderer in Rust, driven by a typed TypeScript client. Speed over breadth by design — large node and edge counts without choking. Styling is declarative: a JSON document of rules matched against nodes and edges, rather than per-node callbacks.
Rust · WebAssembly · WebGL2 · TypeScript
browser-terminal
A tmux-like terminal that docks onto any web page: a shell-like core in Rust compiled to WebAssembly, with a structured-pipe language where typed values, binary included, flow between commands. A page can register its own commands, so the interface and its scripting surface are one thing; POSIX compatibility is deliberately not a goal. Embedded as the CLI in rpg-theorycraft-engine's examples and as the terminal drawer in fs-emulator's explorer.
Rust · WebAssembly · TypeScript
rpg-theorycraft-engine
A published Rust crate for simulating role-playing-game damage models — configuration compiled into an IR, through full fight simulation with rotation priority, with the maths kept honest by property tests. The engine behind Ben's Diablo 4 and Path of Exile 2 theorycrafting.
Rust
scap-vc
Maintenance fork of helmerapp/scap
A patched fork of helmerapp/scap for visual-cortex, adding cross-process window capture on macOS and capture calls that return Result instead of panicking.
Rust · macOS
visual-cortex
Cross-platform screen watching as a Rust crate — capture regions of a display, run detectors over them, and react to what changes. Groundwork for a Diablo 4 screen reader keeping out-of-game state of the player's skills and inventory.
Rust
stix-rust
One canonical STIX 2.1 parse: a pure-Rust core for patterns, objects, and bundles, with Python, Java, and TypeScript bindings all producing the same result — where hand-rolled implementations diverge. Patterns now lower to a three-address intermediate representation that renders back to canonical text without loss, the foundation for structural editing and IR-driven matching.
Rust · Python · Java · TypeScript
poe2-theory-crafting
A Path of Exile 2 damage calculator and simulation workspace: a versioned catalog built from upstream game data, a Rust engine that expresses the damage maths natively and as rtce configuration, and a Svelte calculator on top. The source stays private; the app is public at exile.poietic.tech.
Rust · WebAssembly · Svelte · TypeScript
math-visualizer
Interactive mathematics rendered on the GPU — a Rust core compiled to WebAssembly behind a Svelte interface. Two labs: a 3D Sierpinski chaos game, and a Fourier lab that turns typed text into a chain of rotating circles whose tip draws the letters.
Rust · WebAssembly · WebGL2 · Svelte
stix-meta-explorer
An interactive reference for the STIX 2.1 specification — the official docs bury the details, and seeing the object graph beats reading it. Browse, search, and visualise every object type and relationship, or ask a small language model that runs entirely in your own browser.
TypeScript · React · D3 · Rust · WebAssembly · WebGPU
typescript-orpc-base
A reference implementation of a type-safe RPC API in TypeScript using oRPC, with a shared client/server contract and Arktype schema validation.
TypeScript · oRPC · ArkType · Node.js
extensible-client-libraries
A pair of small extensible libraries for interfacing with REST APIs — one synchronous, one async — extracting the dual-path pattern that the AutoFocus client library's second generation was built around, into something not tied to a single vendor's API.
Python · asyncio · aiohttp · REST
mud-engine
Three runs at building a MUD server from scratch, after years of maintaining other people's. The 2019 original is Python; the 2020 rewrite is TypeScript and is really a tutorial — six tagged versions walking from a bare TCP server, through line-buffering socket connections, to player identity, each tag readable on its own. A Node attempt followed. Building the thing you spent 2014 preserving turns out to teach you why it was written the way it was. The arc closes a loop that opened at age twelve inside GodWars.
Python · TypeScript · Node.js · Docker
bitsquat-responder
A small DNS server answering bitsquatted-domain lookups under xinetd — half of a honeypot rig that proved squatted domains catch real attacks.
Python · DNS