Hi, I’m Jonathan Batteas, and I make the apps at Niche-Knack.

For about eleven years I have worked as a software engineer at the University of Dayton Research Institute. Most of that time I have spent as a contractor at Wright-Patterson Air Force Base, supporting the Air Force Research Laboratory across several directorates: RH, RY, RQ, and now RA, the Air Warfare Directorate. My work there is research in mission autonomy architecture: how autonomous systems are structured, how they make decisions, and how the pieces fit together.

What changed last December

Last December I started experimenting, on my own time, with agentic software workflows. Vibe coding, if you like. I expected a novelty. What I found genuinely blew me away.

Here is how I have come to think about it. The real power of a large language model is not in what it can “do.” My LLM cannot do anything I could not do myself. What it changes is the interface. The computer has always been able to do these things, but getting there meant knowing a specialized set of instructions for each one. Now there is a natural language interface sitting on top of those same systems. The computer we have always had just got easier to talk to.

I took that opportunity to write the software I have wanted in my own life for a long time. Then I realized other people might want it too.

Niche by design

These tools are not for everyone. They are niche. That is the point, and it is in the name.

They are also vibe coded, and I am not going to pretend otherwise. But vibe coded does not mean careless. Each of these apps is carefully and lovingly crafted, and most of them are complex systems built by someone who understands the problems underneath and looks for ways around them.

My background shapes how I build. The UI and UX instincts come from my human factors years at RH. The systems modeling and systems thinking come from aerospace. So I take the time to get the details right:

  • Whether to load an entire audio file into memory for fast access, or use multiple ring buffers so you can scrub and decode a recording up to ten hours long without waiting.
  • How models hand off as a stream progresses, so a low-powered device gets just enough look-ahead while it scans.
  • Whether unlimited undo and redo belongs in a database or an edit decision list.
  • Whether a text box should change shape when it loses focus. If it should, it does.

Those are the kinds of decisions I weigh when working on these apps.

Make them better with me

I want these tools in the hands of people who will actually use them, and I want to hear what you think once you do. This journal is where I will share the work: the decisions, the dead ends, and the things that turned out better than expected.

If you want to try an app, the apps page is the place to start.

If something is not working the way you expect, support is right here. Support is me, not a call center somewhere. When you write in, you get me, personally, and I will get back to you as quickly as I can. I do have to sleep sometime.

Either way, I would like to work with you to make these better.

Thanks for reading.

Thanks for reading.

Back to the journal →

PULL UP A CHAIR

Join the conversation.

Leave a note or ask a question. Choose a display name—no account required.

Comments are public. Please keep it kind and on topic. About comments