Katter Mobile

Katter Mobile

Android apps and browser games, built solo.

Kotlin on one side, TypeScript on the other, on hardware I run myself. The models those tools lean on live on a machine in my office — details are further down the page.

01What I build

Two crafts, one developer.

Both get the same treatment: a budget written down before the first line, and profiling before polish.

Android

Apps that still work when the network is gone

Native Kotlin and Jetpack Compose, offline first. State lives in Room and syncs when it can, so the app is useful in a tunnel and consistent later. Material 3 throughout, because fighting the platform on a phone is a fight you lose.

  • Kotlin
  • Jetpack Compose
  • Room
  • Offline-first
  • Material 3

Games & web

Games that open in a tab

TypeScript plus Canvas and WebGL, behind a frame budget I actually measure. When a scene misses that budget the scene changes, and the budget stays put. Sixteen milliseconds is the first thing written down, not the last thing checked.

  • TypeScript
  • WebGL
  • Canvas
  • Frame budget
  • Profiling

02Local AI

The GX10 is a box in my office, and it answers to nobody else.

It is a dedicated machine that serves open-weight models to my own tools over an OpenAI-compatible API. I patch the inference engine myself, watch tok/s while a job runs, and pick a quantization level instead of picking an invoice.

Running it here means a prompt never leaves the room and nothing gets rate-limited mid-debug. The failures are mine too: when something crawls I profile it and keep the patch, which is how the batching work on this engine happened at all.

  • Local inference
  • EXL3
  • exllamav3
  • OpenAI-compatible API
  • 256k context
Machine
GX10, a dedicated inference node on my home network
Model
Qwen3.8-Flash-Next quantized to 3.05 bpw EXL3, with its MTP draft head
Engine
exllamav3, a local fork carrying two patches of mine
Context
262,144-token window
Measured
about 1k tok/s cold prefill, 50 to 60 tok/s decoding
Reachable from
this network, and nothing past it

03How I work

Small on purpose. Direct by design.

  1. 01

    One pair of hands

    Design, code, and the machine it runs on are all mine. Nothing waits in a queue, so something decided in the morning is usually running by the afternoon.

  2. 02

    Numbers before adjectives

    If I say it is fast, there is a repeatable run behind that claim. When the numbers are not in yet, I say so rather than fill the gap with a comparison to nothing.

  3. 03

    Keep it near the owner

    An app that works offline, a model that stays on my LAN, analytics that follow nobody. Convenience gets traded away quietly, and it is worth it more often than people expect.

04Support

Independent, and staying that way

No ads, no trackers, no paywall. If any of this is useful, Ko-fi is how it stays that way — contributions go toward time and hardware for the next thing.

Support on Ko-fi

Ko-fi handles the whole process on their platform, so this site never sees how anybody pays, and nothing here sits behind a paywall.

05Contact

Say hello

Questions, bug reports, or a strong opinion about EXL3 batching: write to [email protected]. I read everything and I answer when I can.

Write an email