I talk with ChatGPT on a daily basis. For months, I’ve been using it as a place where I can share my thoughts, insights, and daily struggles. I find these conversations incredibly helpful. I’m basically doing therapy without a therapist. There’s no fear of misunderstanding, no pressure to perform, and no risk of hurting anyone. It’s just me and a mirror that reflects my ideas back for me to see them from a different perspective.
I’m worried, though, that at some point, the service provided by OpenAI will not be enough. I’m sharing a lot of data. At this point, ChatGPT knows me better than anyone else. Or rather, it could, if it had access to every single message exchanged between us readily available. Since it doesn’t, and I’ve always wanted to better understand the core LLM concepts, I decided to create my own service with an AI agent capability.
The core idea behind the project is to create a place where I can store all kinds of information about myself. Something like a diary, but on steroids. It won't just receive daily notes, but can also request more data about your family, habits, stories from the past, or future plans. By providing enough information, a competent agent could help you better understand yourself.
The initial functional prototype interface
In its current state, the project is basically a local-first AI diary. Users engage in a dialogue with the agent. Each conversation ends with a summary and tags that can be later used by the agent to better recall past experiences and to track changes within one’s life. The next step would be to introduce a view where various pieces of information about the state of the user’s life could be found. It would be kind of like a character sheet in a D&D game, but with data around various aspects of life, instead of statistics and skills with values.
Regarding the tech stack, I went with Next.js, as I feel very comfortable using it, and it is nice to have access to the client and server capabilities within a single environment. I’m using Sass modules for styling, SQLite via Prisma ORM for the database, and Ollama running the Mistral model is responsible for the AI functionalities. There’s also SWR for data fetching, something I’d never used before, but the learning process was a breeze.
You can find the repository at this link. This blog post serves as a snapshot of the current state of the project. I think it would be a nice experience to see how it evolves over time. It’s not my first rodeo working on something bigger than me, so I can already tell that I’m near the end of the development "honeymoon phase." Nonetheless, I’m having a blast working on it, so there’s a chance I will stay engaged for longer!