Project 14. Developer tools

BobNinja, serious software that runs entirely in your browser

Free online tools, PDF compression and image extraction among them, that run 100% in the browser with no application server: Rust compiled to WebAssembly, hosted for free on Cloudflare. Written in a language I had never used professionally, thanks to AI.

What it changed

  • Heavy document processing, PDF compression and image extraction, done entirely in the user's browser.
  • No backend application servers: hosting costs close to zero, and users' files never leave their device.
  • Built in Rust and WebAssembly, a language I'd never used professionally, with AI as the bridge.

The idea

BobNinja is my engineering playground, built around one hard rule: every tool must run entirely in the user's browser, with no backend application server. The aim was to see how sophisticated the software could get while keeping the infrastructure, and its bill, close to zero. It's hosted on Cloudflare's free static hosting, and the heavy lifting happens on the visitor's own machine, in WebAssembly.

The hard part

The most challenging tools are a PDF compressor and a PDF image extractor. Compressing a large PDF is hard anywhere: memory runs out, performance collapses, and a careless rewrite corrupts the document. Doing it inside a browser tab, with the browser's memory limits and no server to fall back on, is considerably harder than a typical front end. It's also why people can trust it: their documents never leave their device.

Much of the logic is written in Rust, compiled to WebAssembly. Rust was outside my usual stack of Python, Node.js, JavaScript, SQL, CSS and C#. I had never used it professionally.

What it proved

AI let me build sophisticated software in a language I didn't know. That's the real lesson of BobNinja, and it changes how technology should be chosen: a programming language is no longer the constraint it was. For decades, teams picked a stack because of what their engineers already knew. Now the best technology for the problem can win on its merits, and the engineer's value moves to understanding the problem, designing the architecture, choosing the right tools and delivering a working solution.

Why it matters to you

We pick the right technology for your problem, not the one we happen to know best. And when the right answer is "no servers at all", we know how to build that too.

Related projects

  1. 06 Forecasting a weather-driven risk for farmers, from a research paper to agents An Australian agriculture-technology company with a large IoT sensor network · Agriculture technology A sensor network, a white paper from an established Australian scientific organisation and some research code became a production system that forecasts when field conditions turn risky: data lake, models, accuracy reporting and an installable app. Built by hand, then modernised with Claude Code, which now runs it.
  2. 10 Crop-risk scores from a partner's proprietary model, shipped in a week with Claude Code An Australian agriculture business · Agriculture A platform that tells growers how exposed their crop was to an environmental event, and how likely the harvest is to be damaged. The data ingestion and the app are ours; the science stays with a specialist partner's proprietary model. Built entirely with Claude Code, shipped in a week.
  3. 13 HappySkills, the package manager for AI agent skills Our product · AI developer tools My own product: a registry and CLI that gives AI agent skills what code has had for decades, dependencies, a lock file, sync and team sharing, all driven by talking to your agent.
  4. 15 switch-profile, open-source AWS account switching with SSO Open source · Cloud developer tools My open-source CLI for working across many AWS accounts: one keystroke to switch, IAM Identity Center done properly, device-code logins on headless boxes, and a contract AI agents can follow.

Got a project like these?

Tell us where the business needs to go. You'll talk to the engineer who will design and build it, not a salesperson, and get an honest answer on whether we're the right fit.

Contact Us

For general inquiries, please contact us at:

For e-learning capabilities, please contact: