Inspiration
Most thoughts never become anything.
They show up while we are driving, standing in the shower, or lying in bed half awake, and disappear almost as quickly as they arrived. Even when we write them down, they often sit forgotten inside a notes app. Social media does not feel right either, because unfinished and personal thoughts are not always meant to become content.
We built LOT, Language of Thoughts, to create something in between.
LOT is a private-first place where people can write what is actually on their minds, return to those thoughts later, and gradually understand how their thinking changes over time.
The idea behind LOT is simple:
Notes remember what you wrote. LOT tries to remember what you have been thinking.
What it does
Users can write thoughts privately and decide later whether they want to keep them private, share them with friends, or publish them publicly.
The AI Companion does more than summarize an individual entry. With the user's permission, it can notice recurring questions, tensions, emotional patterns, and changes across multiple thoughts over time.
For example, instead of only responding to one note, Companion may eventually notice:
- a question the user keeps returning to
- an old thought that has become relevant again
- a belief that appears to be changing
- language that has become more confident or less apologetic
- a topic that has quietly disappeared from the user's writing
LOT also supports safer sharing. When someone chooses to publish a private thought, the original remains unchanged. LOT prepares a separate public version that helps remove names, contact information, usernames, links, and identifying details while trying to preserve the meaning and emotional tone. The user reviews the result before anything is published.
Public thoughts can then be discovered through meaning and resonance rather than only popularity. Users can explore similar thoughts and, where appropriate, connect with people who seem to be thinking around the same question.
How we built it
LOT includes an iOS application, a web application, and a Firebase backend.
The iOS app was built with:
- Swift
- SwiftUI
- SwiftData
- WidgetKit
The web experience was built with:
- TypeScript
- HTML and CSS
- esbuild
The backend uses:
- Firebase Authentication
- Cloud Firestore
- Firebase Cloud Functions
- Firebase Cloud Messaging
- Firebase Crashlytics
- Node.js
We used OpenAI models as part of LOT's reflection and understanding layer. The system analyzes opted-in thoughts to produce structured signals such as themes, tensions, safe public rewrites, recurring patterns, and potential connections between thoughts.
Rather than sending every interaction through the largest model, we designed the AI as a layered system. Routine processing can happen through smaller or cheaper paths, while higher-level reasoning is reserved for tasks where judgment matters more, such as identifying meaningful changes over time or deciding which thoughts may be worth resurfacing.
We also built a longitudinal data foundation that records compact monthly signals without storing raw note text in the analytics layer. These signals can later support evidence-based observations such as:
“You have written about this less often over the last three months.”
or:
“The way you describe this relationship appears to be changing.”
The goal is to make each observation traceable to real user history rather than generating vague, horoscope-like statements.
Challenges we faced
Making AI feel useful without replacing the user's thinking
It is easy to build an AI that summarizes text or gives advice. It is much harder to build one that helps a person notice something themselves.
We repeatedly redesigned Companion to avoid generic validation, excessive advice, and chatbot-style responses. The strongest experience was not when the AI sounded intelligent. It was when the user understood their own thinking more clearly.
That led to one of our main design principles:
Companion should not make users feel that AI understands them. It should help users understand themselves.
Building long-term memory without becoming invasive
LOT needs memory to become valuable over time, but private thoughts are among the most sensitive forms of user data.
We therefore designed memory around explicit consent, encrypted private notes, compact structured signals, and separation between private originals and public versions. Raw private text is not placed into the longitudinal counters used for future pattern comparisons.
Preserving meaning during safer sharing
Removing a name or phone number is easy. Removing identity risk while preserving the actual thought is much harder.
A poorly designed privacy filter can turn an honest thought into broken or meaningless text. We built the public-sharing flow as a separate review process so the private original remains untouched and the user always stays in control.
Creating a calm product instead of another engagement machine
Many social products are built around counts, followers, streaks, and constant notifications. Those mechanics would conflict with LOT's purpose.
We worked to make thoughts, rather than popularity, the center of the interface. Discovery prioritizes relevance, specificity, and quality. Companion resurfaces meaningful moments rather than manufacturing daily activity. Public sharing is intentional rather than automatic.
What we learned
We learned that the hardest part of building an AI reflection product is not generating more responses. It is knowing when the system has something worth saying.
Sometimes the most honest Companion experience is silence.
A weak insight shown every day quickly becomes noise. A rare observation supported by months of actual writing can become unforgettable.
We also learned that private writing and public conversation do not need to be separate products. A thought can begin privately, become clearer through reflection, and only later become something the user chooses to share.
That journey, from private thought to understanding to connection, became LOT's core loop.
What is next
Our next priorities are:
- improving longitudinal understanding across months and years
- making Companion's observations more evidence-based and personal
- improving discovery and ranking for high-quality public thoughts
- expanding semantic search across a user's private thought archive
- creating stronger thought timelines and changed-mind views
- improving similar-thought matching while preserving privacy and consent
- making every public thought easy to read and share on the web
Our long-term ambition is larger than building another journaling app or social network.
Most technology preserves what people did.
We want to preserve how they thought.
Built With
- cloud-firestore
- esbuild
- firebase
- firebase-authentication
- firebase-cloud-functions
- firebase-cloud-messaging
- firebase-crashlytics
- javascript
- node.js
- openai-api
- swift
- swiftdata
- swiftui
- typescript
- widgetkit

Log in or sign up for Devpost to join the conversation.