Published:

Jarle Aase

Monthly update, November and December 2025

bookmark 4 min read

These monthly updates may be a bit technical. They’re written primarily for my future self—to remember how I spent the month and to motivate me to do at least something remotely interesting. They’re also for friends and colleagues (past and future), to give an idea of what I’m working on, and of course for potential clients of my C++ freelance business and fellow software developers.

The banner image shows some of my dogs on one of our walks in nature. I usually take most of the dogs for a long walk once a week. As you can see, the color of the grass looks more like spring than early winter. It’s even greener now.

Projects

NextApp

NextApp is a GTD/productivity application for desktop and mobile.

NextApp has performed perfectly since its third beta release in October.

My plan now is to end the beta and release the first stable version in the beginning of February. The pricing is decided, and I believe it’s pretty reasonable. More information is available on the website.

Settled

Settled is the commercial app I’ve mentioned a few times on this blog. It’s an Android app I “vibe coded” in Android Studio using Gemini. In November, I finished an MVP and released it.

It’s essentially four apps in one: Mindful Ping, Sonic Relaxation, Breathwork, and Meditation. I made it primarily to serve my own needs, but I’ve made it available on Google Play for free. I’m planning some “premium” features in the future behind an in-app payment wall, but all current functionality is—and will remain—free.

There are some important takeaways from building real applications using so-called “vibe coding.” I’ll come back to that in a separate blog post.

QVocalWriter

QVocalWriter is a cross-platform, local-first application for working with spoken and written language. It started as a speech-to-text tool and has grown into a modular toolset with independent features for transcription, translation, and assistant-based chat.

Screenshot

When I was a little kid, I could spend hours sitting by the window with my father, or walking in nature with my father and my dog, just asking questions—anything that was on my mind or that I could imagine. My father would patiently explain everything to me. Later, the questions became more complex, and eventually he could no longer answer everything. Still, we had wonderful conversations and speculated about much of reality, the future, and the past.

At some point, I started seeking out people smarter than myself as friends, because I was still curious and there were so many things I didn’t know. That has been a defining trait for most of my life. My friends have often been either much younger than me—full of imagination and interesting questions—or much older, with wisdom, life experience, and answers to my questions.

Today, I spend time with ChatGPT, DeepSeek, and other online AI models to satisfy my curiosity. But there are many things I’m not comfortable asking them about, because anything—any information—I provide to something running in the cloud is, from my perspective, basically public information. I expect that anything sent to the cloud and stored there will sooner or later leak, be monetized, or be sold.

In December, I wrote my own AI app: QVocalWriter. Initially, it was meant purely as a way for me to dictate things and have them transcribed and translated automatically. The goal was to speed up publishing on my blogs and making social updates more efficiently than typing every letter slowly on a keyboard. Despite having used a keyboard for more than 40 years, I still type fairly slowly.

That’s not a problem when I write code—code shouldn’t be plentiful anyway. Thinking is far more important than typing. But when I’m expressing myself in text, it can take hours to write out what I want to communicate. Speaking and generating a transcript is simply much faster.

With QVocalWriter, I can dictate what’s on my mind, get a transcript, and even have it cleaned up and formatted for publication. It works great for smaller pieces. It doesn’t work as well for larger documents yet. Transcription and basic cleanup are solid, but if I ask it to shape something fully for publication, it shortens the text too much. Because of that, I still use cloud-based AIs for final formatting and sometimes translation, to get a more polished result.

The app can also just translate text on its own. This addresses another long-standing issue I’ve had with online translators like Google Translate: there are many things I won’t translate because the content isn’t public information. I prefer to do that locally on my own machine, and with QVocalWriter I finally can.

I can also chat with an AI locally, completely confidentially. LM Studio can do something similar, but it’s a huge Electron application. I don’t trust those. I don’t know what kind of telemetry they include, and they do use a lot of resources. My machine is already under some strain with a handful of running docker containers, development tools and KDE desktop.

With QVocalWriter, things are much better. It uses less than 200 MB of RAM and has no open file handles beyond a few shared objects it links against. That gives the LLM models themselves most of the available resources on the machine.

QVocalWriter is written in C++20 with Qt 6.10 and QML. It uses the C++ libraries whisper.cpp for transcription LLMs and llama.cpp for other LLMs. It has no telemetry and does not go online. I may add an option for chat mode to go online in the future, as that could be useful in some situations—but it will definitely be something that must be explicitly enabled each time.

I know there’s a lot of controversy around AI these days. Many people are tired of “AI in everything,” and I mostly agree. But there are use cases where AI is genuinely useful. When I run models locally, they don’t consume water, they don’t spy on me, and they don’t use my data to train themselves. It’s a safe way to use AI when I want to, without being exploited. I’m also positively surprised by the capabilities of local models running on my workstation and laptop using only the CPU. None of my machines have recent GPUs suitable for AI.

It’s also been the most exciting project I’ve worked on in a long time.

More information in it's blog-series.

Freelancing

I’ve put my freelancing on hold for quite a while. First, I needed to recover from a pretty damaging burnout. Then I decided to get NextApp into a generally usable state before looking for something new. Over the past year, I turned down a handful of potential clients.

I’ve been talking about NextApp to friends and colleagues for nearly a decade, and I didn’t want to be that guy—all talk and no results. I talked a lot about DarkSpeak too, but eventually decided to put it on hold. Releasing something like that while living in a Western country is simply too risky. The arrest of Pavel Durov in France confirmed that concern for me.

There’s nothing controversial about NextApp, though, so I wanted to see it through to completion.

After that, I wrote Settled to help myself become more mindful, and QVocalWriter mainly for fun. Coding is my comfort zone. It’s very hard for me to put it aside.

Now I need to start generating some income again. If you know someone who’s looking for an experienced and quite passionate C++ freelancer, please get in touch.