Blog
Notes written while building the tools on this site — what breaks first when you put a language model into a real workflow, and what to do about it.
- Why AI tooling should run in your browser
Client-side processing is usually framed as a privacy nicety. It is also a reliability decision — no network round trip means no latency, no rate limit and no outage, and a tool that cannot see your text cannot leak it.
Local-first · Privacy · Tool design - Budgeting tokens before you send a prompt
Input tokens dominate short requests and output tokens dominate long ones, which is why a cheap model is not automatically cheaper. A practical method for sizing a prompt before you pay for it.
Tokens · Cost · Budgeting - Getting reliable JSON out of a language model
Asking for JSON in the prompt is not the same as getting valid JSON back. Why replies arrive wrapped in prose and code fences, how to scan for a balanced value, and why extracting beats repairing.
JSON · Structured output · Parsing - Prompt templates that actually work
Most prompt failures are missing constraints, not weak models. The four constraints worth hard-coding into a template, why variables should be visible at the point of use, and why empty fields should disappear.
Prompts · Templates · Workflow - Cleaning up model output without losing meaning
Copying text out of a chat interface drags along blank-line runs, duplicated headings and alignment spaces. Four cleanup actions that handle almost every paste artefact, and when to stop cleaning.
Text cleanup · Workflow · Efficiency - Markdown or plain text: choosing a handoff format
Model replies arrive as Markdown and land in systems that want plain text, while documentation lives as Markdown and lands in systems that want HTML. Both conversions have a specific failure mode worth knowing.
Markdown · Conversion · Tooling