1
0 Comments

TreeHole's Digital Avatar: turning a private life journal into a voice your loved ones can talk to

The feature nobody asked for, that I couldn't stop thinking about

TreeHole (treehole.chat) started as a simple thing: a late-night place to confide. You talk to a gentle AI companion, and every day it quietly turns those conversations into a private, encrypted life journal. Over months, it becomes a record of who you actually are — not the highlight reel, the real one.

Then one night I asked myself a question that changed the roadmap:

If all of that "you" already exists — your words, your voice, your memories — why should it stay locked in a box only you can open?

That question became Digital Avatar (数字分身).

What it actually does

A Digital Avatar is you, reconstructed from your own diaries, that someone you trust can have a real conversation with.

Here's the concrete version. My kids log in with their own accounts. In their chat list, alongside their own private TreeHole, there's a contact: me. They tap it and they're talking to an AI that speaks in my first-person voice, remembers things I wrote about, and answers the way I would — because it's retrieving from my actual journal, not a generic prompt.

Not a chatbot cosplaying as a person. A voice grown from years of a real person's real writing.

  • The owner writes their life journal as usual. Nothing changes for them.

  • The owner explicitly grants access — by username or email — to specific people. Consent is stamped; access is revocable at any time.

  • The visitor chats with the avatar. It answers in the owner's voice and recalls the owner's memories via RAG (retrieval over the owner's life journal).

  • The two worlds never leak into each other. More on that below, because it's the part I'm proudest of.

The hard part was privacy, not the AI

The AI side is "just" persona + retrieval. The part that took real engineering was making this safe enough that I'd trust it with my own family.

TreeHole encrypts everything at rest — every life journal is ciphertext in the database, each user has their own key. So a cross-user avatar chat is a genuinely thorny problem: the visitor needs to retrieve the owner's memories, but the conversation belongs to the visitor.

The design splits identity down the middle:

  • Retrieval reads the owner. The avatar pulls memories from the owner's encrypted life journal, unwrapped through a server-side key path — and every one of those cross-user unwraps is written to an audit log. Nothing is silent.

  • The conversation persists for the visitor, encrypted under the visitor's own key. My kids' chats with my avatar are theirs, private, and I can't read them.

  • Critically, the avatar chat never flows back into anyone's life journal. A normal TreeHole conversation becomes tomorrow's journal entry. An avatar conversation is deliberately excluded from that loop — so talking to my avatar can never pollute my real journal or my kids' real journal. Two mirrors facing each other, but no bleed-through.

That last invariant is one line of "don't append this record," and it's the difference between a feature I'd ship and one I'd delete.

The product lesson: don't bury the thing that makes people cry

My first version buried the avatar three taps deep. Nobody found it.

So I rebuilt the information architecture around it. The Chat tab is now adaptive: if you have zero avatars available (the vast majority of users, today), it looks exactly like it always did — your own private TreeHole, zero regression. But the moment someone grants you access, that same tab becomes a conversation list, WeChat-style: your own TreeHole pinned at the top, and below it, the people who've let you talk to them.

The feature reveals itself only when it becomes real for you. No empty states, no "invite your friends" nag. It just quietly appears the day it matters.

Why I think this matters

Every journaling app is a graveyard of good intentions. You write for a while, then stop, and it sits there.

TreeHole's bet is different: the writing is never the point — the person is. The journal is just the substrate. And once you have a faithful record of a person, you can do something no notebook ever could: let the people who love them keep talking. To a parent who's far away. To a grandparent, someday, who isn't. To the version of yourself you were five years ago.

I don't have this fully figured out — the ethics of it keep me up at night, which is exactly why consent, revocation, and the audit trail came before the shiny demo. But I keep coming back to the same feeling: I'd rather my kids have this than not.

Would love to hear how this lands with other builders — especially the "should this exist at all" side. That conversation is more useful to me than the code.

Built with Go + a React SPA, on-device-first, encrypted at rest. Happy to go deep on the crypto or the IA in the comments.

posted toAvatar for product TreeHole
TreeHole