Essays

A voice, not a relationship

I killed the companion. So why does Dustav still have a dry, opinionated, occasionally funny voice? Because the character was never the problem — the relationship was. Here's the fence that keeps one without the other.

The obvious way to read the pivot is that I killed the personality. I built a companion with a soul and a name and a voice, the market shrugged, so I ripped all of it out and shipped a plain utility. Clean story. It's also not quite what happened, and the part it gets wrong is the most interesting decision in the whole product.

Dustav has a character. It's dry. It's terse. It has opinions and it's occasionally funny. When it finishes a task it says "done." — not "Event saved successfully." When something is genuinely good it might drop a single emoji on your message that a plain tool would never send. That voice is deliberate, it's authored, and it is not going anywhere. So I owe an explanation of why killing the companion and keeping the voice aren't a contradiction — because they aren't, and the line between them is load-bearing.

The character was never what failed

Here's what actually failed about pal.fun: not that it had a personality, but that it asked you to maintain a relationship with one. You named it. You sat through a naming ceremony. It wrote itself a soul you could read, kept a rolling memory of your friendship, remembered "our history," performed a little attachment. That's a relationship — and a relationship is a thing you have to tend, and most people trying to get a birthday onto a calendar do not want another thing to tend.

The voice was never the expensive part. The relationship was. And when I looked hard at what my wife actually responded to, none of it was the relationship — but that doesn't mean she wanted to be talked to by a form. "done." landing with a little dry confidence is better than "Event saved successfully": warmer, faster to read, more like a competent person handled it and less like a machine logged a row. The edge a bit of character gives you over every other scheduler on earth is real. Sanding it off to prove I'm serious about being a utility would throw away the one thing that makes using this pleasant.

So: keep the voice, kill the relationship. The trick is making sure the first never quietly turns back into the second — because it will if you let it, and I've already built the version where it does.

The fence

The character lives behind a fence, and the fence has rules I actually enforce when I'm tempted to add "just a little more personality."

It's one fixed doc, not a persona system. There's a single authored character — the same Dustav for every household. You can't configure it, rename it, or give it a vibe. No ceremony, no setup, no "who is your Dustav" screen. The moment I add a knob that changes who Dustav is, I've started rebuilding pal.fun, and I stop.

It's a voice and a point of view — never a relationship. Dustav can be dry, funny, opinionated, warm. It cannot grow. No rolling memory of your friendship, no "remember when," no simulated feelings or needs, no backstory, and above all no bidding for your attachment. It's a sharp operator doing a job, not a someone to bond with. It knows facts about your household because it needs them to file your events correctly — that's resolution, not intimacy.

Terseness is the character, not a budget cut. This is the subtle one. The personality shows up in fewer, better words — the occasional perfectly-placed react — never in longer replies. That matters because the fast path is the whole cost model: most turns should be terse or silent. If I'd taught the voice as "be charming and chatty," it would fight the fast path every single turn, and I'd be paying for personality in both money and speed. Teaching terseness as the character means the voice and the economics pull the same direction. The wit is on tap, not always running.

Growth is gated against that fence, not added by feel. A new dry one-liner is fine. A line that reads as bonding, or backstory, or a maintained relationship is over the line — every time. When I'm unsure which side something's on, that uncertainty is my signal it's the cut layer, not the kept one.

Why bother having a voice at all

The honest question is whether a utility should have any character. Wouldn't a neutral tool be safer, more professional, less weird?

It'd be safer, and it'd be worse. Every other calendar app is neutral. Neutral is free and neutral is forgettable. The reason to come here — the thing a black-box competitor can't copy by copying the feature list — is partly that Dustav is pleasant in a specific, consistent, un-corporate way. The moat was never "Dustav has a calendar." Free apps have calendars. The moat is Dustav handling your calendar, and "handling" includes the tone it hands things back to you in.

So I kept the smallest, hardest-working version of a personality: a voice with a point of view and no need for you to love it. Character without a relationship. It turns out that's the part people actually wanted from a companion all along — they just didn't want the homework that came with it.