How bffbot keeps your journal yours
Two things people ask most: is my writing encrypted, and are the replies AI? Short answers: yes, and no. Here’s exactly how both work.
Is my journal encrypted?
Yes. The text of every entry is encrypted at rest, before a memory is written to the
database, its contents are encrypted with Fernet (AES-128 in CBC mode, with an HMAC so tampering
is detectable), using the widely-trusted cryptography library. In the database, your words
are ciphertext, not readable text. Photos you send are kept in private storage, not public URLs.
The encryption key lives only on bffbot’s own server, as an environment secret, so it isn’t stored in the database next to your entries, and it’s never shared with anyone.
Plain-language: what this does and doesn’t mean
“Encrypted at rest” means that if someone got a copy of the database, your entries would be unreadable ciphertext without the key. Your entries are decrypted on bffbot’s server only in two moments: when you open your journal (after a passwordless login), and when the bot needs to read your message to reply. We’re being straight with you: this is not “end-to-end” or “zero-knowledge” encryption: bffbot’s server holds the key and can decrypt your entries, because it has to in order to show them back to you and organize your entries. What we promise instead is simple and real: the key stays on our server, and your entries are never sold, shared, or sent to any third party or AI.
Are the replies AI?
No. There’s no ChatGPT, no large language model, no neural network, and no cloud “AI” service anywhere in bffbot. When you text a thought and get a reply, nothing you wrote was sent to an AI.
Instead, replies come from deterministic pattern matching: a small set of rules plus a fixed library of response templates and a local word list. bffbot looks at your message for a few concrete things: keywords, simple sentiment (does it read positive or negative, including handling for words like “not” and “very”), and a handful of command words. Then it picks a fitting, pre-written response in the personality you chose.
Because it’s rules rather than a model, it’s predictable and inspectable: the same message produces the same kind of reply, and every possible response is fixed text that lives in the code, none of it generated from what you write. The trade-off is honest, too: bffbot won’t answer trivia, give advice, or “browse the web.” It’s a journal that listens, not an assistant. That’s the point.
How do the replies get better?
You help. React to any reply with a 👍 or 👎 (or just text one back), and bffbot flags that reply for us to adjust by hand. It’s the same no-AI promise from the other side: your ratings guide human tuning of the fixed responses, and they’re never used to train a model or sent to any AI. A reaction isn’t saved as a journal entry, and it won’t get a reply back.
Where does my writing go? (Nowhere it doesn’t have to.)
All of the pattern matching above runs locally, on bffbot’s own server. Your entries are never sent to a third-party AI, an outside API, or used to train any model. The only place your words travel is back to you, never to advertisers or data brokers.
To be complete about the one unavoidable hop: delivering a text message means handing it to the phone network. Like any SMS service, bffbot uses Twilio (a carrier gateway) to actually send and receive the messages on your carrier’s network; that’s how any text reaches a phone. Our website analytics are privacy-friendly and self-hosted, and count page views only. Details are in our Privacy Policy.
A few more quick ones
Do I need to install an app?
No. It all happens over text. Any phone that can send an SMS can journal. There’s also an optional web view you can add to your home screen.
How do I read my past entries?
Text login (or token) and tap the one-time link, no password to remember. The link is single-use and expires.
Can I get my entries out?
Yes, you can export everything anytime. Your memories are yours.
Is bffbot a therapist?
No. It’s a private journal that listens, not therapy, counseling, or medical advice, and not an emergency service. In a crisis (US): call or text 988, or text HOME to 741741.