Journal It - AI-powered journaling system that writes your autobiography

Journal It

An AI-powered journaling system that writes your autobiography while you use it. Multi-model architecture with semantic search.

Why I Built This

The question that drives this project:

"Why don't I ever go back and read my journal entries?"

Most journaling apps are just storage. You write, it saves, you forget. The only value you get is if you go back and read it yourself.

But I don't go back and read it. Nobody does.

Journal It is my attempt to fix that. It watches my entries, finds patterns in my thinking, and writes my life story in third person - like a biographer following me around. Chapters update automatically. I can read my own life like a book.

What This Actually Is

Not another notes app.

It's a system that:

  • Synthesizes what you've been thinking about
  • Notices patterns you might miss
  • Writes something you'd actually want to read later
  • Reminds you to revisit it

Four main pieces work together:

  1. Journal entries - Manual input. Title, content, tags. The raw material.
  2. Reflect chat - AI responds to what you wrote. Not therapy. Just acknowledgment and follow-up questions. 1-2 sentences max.
  3. Life story chapters - Auto-updates in third person like a biography. 2-3 paragraphs per chapter. New chapter after 7 days of silence.
  4. Email digests - Weekly, monthly, quarterly, yearly. Excerpts of your own life story delivered to your inbox.
Stack
Model Job Why
Opus 4.5 Reflect chat & reasoning High-quality conversational responses that match your voice
GPT 5.1 Chapter synthesis & metadata Fast structured writing and background processing

The key insight: don't use one model for everything. Match the model to the job.

Architecture

API Endpoints

Everything runs through three stateless endpoints:

  • /api/journal - CRUD for entries. Manual or AI-generated.
  • /api/reflect - Conversation management. Load, send message, clear.
  • /api/journey - Chapter management. List, generate, update.

AI processing happens as non-blocking async calls. When you create an entry, you see it immediately. Chapter updates happen behind the scenes.

Database Schema

Five tables handle everything:

  • journal_entries - the raw entries
  • reflection_messages - chat history with embeddings for search
  • life_story_chapters - the narrative summaries
  • decision_history - decisions explored elsewhere in the app
  • decision_embeddings - multi-dimensional vectors (financial, emotional, career, health, relationship, overall)

Semantic Search

Embeddings power two features:

  • Reflect chat - pulls relevant past entries to give the AI context
  • Chapter generation - finds thematic connections across months of content
Voice Customization

AI responses shouldn't sound like a therapist or a corporate chatbot. They should sound like you.

There's a config file where you define communication preferences:

export const VOICE_CONFIG = {
  ENABLED: true,
  STYLE: `
    - Confident, approachable, direct
    - Simple, plain English with short sentences
    - Use contractions
    - No flowery intros or conclusions
    - NEVER use em dashes
  `,
};

This gets injected into reflect chat prompts. The AI responses actually sound like how you talk.

The Bigger Vision

Right now, Journal It is a standalone system. But it's designed to plug into something larger.

The idea: reflections should feed back into decision simulations. Here's the loop:

  1. Explore a decision tree - should I take this job, move to this city, whatever
  2. Pick a path
  3. Later, log how it actually played out
  4. System updates your profile - patterns, preferences, tendencies
  5. Journal reflects on those patterns
  6. Next time you face a similar decision, the simulation uses everything it knows about you

Predictions get more personalized over time. And because it's all transparent and editable, you stay in control.

That's the end state. Journal It is the memory layer that makes it possible.

What I Learned

Model selection is product design

Picking Opus 4.5 vs GPT 5.1 isn't just a technical decision. It directly affects user experience - response quality, latency, cost. You have to think about it as a product tradeoff, not just an engineering one.

Background processing is underrated

Chapter updates don't block the UI. That seems obvious, but a lot of AI products make you wait for everything. Users don't care about your AI running. They care that their action felt instant.

Email digests are engagement infrastructure

The product only works if you actually come back to it. Digests solve that. They're not spam - they're excerpts of your own life story. You open them.

Code Access

The repo is private right now.

If you're a recruiter or hiring manager and want to walk through the code or architecture in more detail, I'm happy to do a live session.