Back to Blog

What made me create Reflekt?

What made me create Reflekt?

I’ve been a journaler for several years now. Aside from historical purposes, my journal entries were nothing but a momentary thing. Something that fulfilled my needs to journal. I provided me no insights into my life or feelings. That’s when the idea of Reflekt was born.

Sure, I could export into a text file and upload my most intimate thoughts into ChatGPT or another platform for it to tell me what my year was like. Well, that was not exactly a good idea.

With a background in data science, I wrote a script to help me have some insights in my own entries. The results were extremely helpful. It sent me into a journey where I ended up creating an entire app to help other people to do the same thing.

Let’s understand what that means.

The Heart of Our Sentiment Analysis

Why did I decide to do a sentiment analysis?

The entries allow the user to add how they feel that day. But your feeling could be a moment in time and not display exactly how you are really feeling. What was true in a lot of my entries. I might have indicated that I was sad or neutral, but when I started writing what happened during the day, I noticed that my writing didn’t refleck my feeling for that moment.

That’s why I decided to do a sentiment analysis in my writing, which provides a more complex understanding of myself.

What is VADER?

VADER stands for Valence Aware Dictionary and sEntiment Reasoner. It’s a specialized AI model created by researchers at Georgia Tech specifically for analyzing emotions in text. This is not like your LLM tools like ChatGPT or Gemini. Your data is not taken to a server and used as training data. Instead, it is just analyzing what you wrote. Right here.

Unlike traditional sentiment analysis tools designed for formal documents, VADER was built to understand:

  • Everyday language - The way we actually write and speak
  • Informal text - Slang, abbreviations, and casual expressions
  • Social media style - Emojis, punctuation emphasis, and modern communication
  • Emotional nuance - Subtle differences between “good,” “great,” and “amazing”

This makes VADER perfect for journal entries, which are typically written in a personal, conversational style.

How VADER Analyzes Your Entries

When you save a journal entry, VADER examines every word and phrase. Here’s what happens:

1. Word-Level Analysis

Each word is checked against a carefully curated lexicon of over 7,500 emotional terms. Each term has a “valence score” indicating how positive or negative it is.

For example:
- “love” = very positive (+2.9)
- “happy” = positive (+2.7)
- “okay” = neutral (+0.9)
- “sad” = negative (-1.8)
- “terrible” = very negative (-2.5)

2. Context Awareness

VADER is smart enough to understand context modifiers:

  • Intensifiers: “REALLY happy” is more positive than “happy”
  • Negations: “not happy” flips the sentiment
  • Capitalization: “AMAZING” carries more weight than “amazing”
  • Punctuation: “Great!!!” shows more enthusiasm than “Great”
  • Emojis: These are recognized and scored appropriately

3. The Compound Score

After analyzing all the words and context, VADER produces a compound score ranging from -1.0 to +1.0:

Score Range Meaning Example Entry
+0.5 to +1.0 Very Positive “Today was absolutely incredible! I got the promotion I’ve been working toward!”
+0.05 to +0.5 Positive “Had a nice lunch with Sarah. Good conversation.”
-0.05 to +0.05 Neutral “Went to work. Came home. Made dinner.”
-0.5 to -0.05 Negative “Feeling a bit down today. Work was frustrating.”
-1.0 to -0.5 Very Negative “Everything went wrong. I’m so disappointed and hurt.”

Why We Chose VADER Over Other AI Models

We evaluated many sentiment analysis options, including deep learning models like BERT and GPT. Here’s why VADER won:

  1. Speed: VADER analyzes entries instantly, with no noticeable delay
  2. Consistency: The same words always produce the same scores
  3. Transparency: We can explain exactly why an entry received its score
  4. Privacy: VADER runs entirely on our servers - your entries are never sent to external AI services
  5. Accuracy: For personal journaling, VADER’s ~85% accuracy rivals much more complex models

Beyond Sentiment: Mood Classification

While VADER gives us the emotional polarity (positive/negative), Reflekt takes it further with mood classification. We detect five distinct moods:

The Five Moods

Mood Emoji Color Triggered By
Ecstatic :star-struck: Purple Extremely positive sentiment + words like “amazing,” “incredible,” “perfect,” “breakthrough”
Happy :blush: Green Positive sentiment + words like “good,” “glad,” “enjoy,” “peaceful”
Neutral :neutral_face: Gray Balanced sentiment + words like “okay,” “normal,” “routine”
Sad :cry: Blue Negative sentiment + words like “disappointed,” “lonely,” “miss,” “hurt”
Angry :angry: Red Very negative sentiment + words like “furious,” “frustrated,” “hate”

How Mood Detection Works

The mood classifier combines two signals:

  1. VADER’s compound score - Provides the base emotional direction
  2. Keyword detection - Looks for specific mood-indicating words

For example, both “I’m sad today” and “I’m furious today” might have similar negative VADER scores. But the keyword detection identifies “sad” as sadness and “furious” as anger, correctly classifying each entry.

Environmental Correlations: Discovering Hidden Patterns

One of Reflekt’s most unique features is correlating your mood with external factors you might not consciously notice.

Moon Phase Correlations

We calculate the exact moon phase for each entry using astronomical algorithms. After 90+ days of journaling, you might discover patterns like:

  • “Your writing skews toward feeling grateful during the full moon”
  • “New moon phases seem to bring more contemplative moods”
  • “Your mood tends to brighten as the moon waxes (grows fuller)”

The moon phase calculation uses the synodic month algorithm, based on a reference new moon date (January 6, 2000). This gives us the exact phase and illumination percentage for any date - no external API needed.

Weather Correlations

If you’ve added your location, we capture the weather conditions when you write. Over time, patterns emerge:

  • Do sunny days make you happier?
  • Are rainy days more reflective?
  • Does temperature affect your mood?
  • What about humidity?

We use data from OpenWeatherMap to record:
- Weather condition (clear, clouds, rain, snow, etc.)
- Temperature
- Humidity
- Detailed description

Zodiac Correlations (Optional)

For users who’ve added their birthday, we track zodiac-related patterns:

  • How your mood changes during your sun sign’s season
  • Elemental influences (Fire, Earth, Air, Water signs)
  • Seasonal emotional patterns

The Year in Review: Your Personal Annual Report

At the end of each year, Reflekt generates a comprehensive Year in Review that includes:

Statistics

  • Total entries written
  • Total words journaled
  • Average sentiment score
  • Dominant mood for the year
  • Monthly sentiment chart showing your emotional journey
  • Mood distribution across the year
  • Theme analysis (work, family, health, relationships)

Highlights

  • Your 10 happiest days with entry previews
  • Your 10 most challenging days
  • Most frequently expressed themes

AI-Generated Narrative

A personalized summary of your year, written by analyzing all your entries together. This narrative captures growth, challenges overcome, and patterns you might have missed.

Privacy: Encryption at Rest

Here’s the part many users care most about: How private are my entries?

Field-Level Encryption

Every journal entry is encrypted before being stored using Fernet encryption (AES-128 in CBC mode):

What the database sees:
title: gAAAAABk1xXyZ...encrypted gibberish...
content: gAAAAABk1yAbc...more encrypted gibberish...

What the app sees after decryption:
title: My thoughts today
content: I had a wonderful day at the park...

How Analysis Works with Encryption

You might wonder: “If entries are encrypted, how is the entry analyzed?”

  1. When you save an entry, it’s temporarily decrypted in memory
  2. VADER analyzes the text and generates scores
  3. Only the scores are saved (numbers, not your actual text)
  4. Your entry is re-encrypted and stored
  5. The decrypted version never touches the disk

This means database administrators, even with full access, cannot read your private thoughts.

What This Protects Against

  • Database theft - Stolen backups are encrypted
  • Database admin snooping - DBAs see only encrypted text
  • SQL injection attacks - Even extracted data is encrypted
  • Backup leaks - Field-level encryption protects exports

Other Features That Make Reflekt Special

POV (Point of View) Sharing

Share specific thoughts with friends without exposing your entire entry:

Today was amazing! {pov} @alice @bob
Just saw the most beautiful sunset - reminded me of our camping trip!
{/pov} Back to my private thoughts...

Only Alice and Bob see the POV content. It appears in their journal for that date, clearly attributed to you.

Smart Captures

Track life moments with special syntax:
- /book "The Great Gatsby" - Reading tracking
- /workout run 30min - Exercise logging
- /watched "Inception" ⭐⭐⭐⭐⭐ - Media logging
- /person Mom - Relationship mentions

These get aggregated into beautiful dashboards showing reading progress, workout trends, and more.

Daily Christian Devotions (Optional)

Start each day with a carefully selected Bible verse and reflection, organized around themes like Trust, Hope, Love, and Strength.

Streak Badges

Earn badges for consistent journaling:
- 7-Day Streak
- 30-Day Streak
- 100-Day Streak
- 365-Day Streak (Year of Reflection!)

The Technical Stack

For the curious, here’s what powers Reflekt:

Component Technology
Backend Django (Python)
Sentiment Analysis vaderSentiment library
Database PostgreSQL
Encryption django-encrypted-model-fields (Fernet/AES)
Moon Phases Custom synodic month algorithm
Weather Data OpenWeatherMap API
Frontend Bootstrap 5 + Django Templates

Conclusion

Reflekt isn’t just another journaling app. It’s a personal insight engine powered by proven AI technology that respects your privacy.

Whether you’re curious about how moon phases affect your mood, want to track your emotional journey over a year, or simply need a secure place for your thoughts, Reflekt combines powerful analysis with uncompromising privacy.

Start your journey today and discover what your words reveal about you.


Have questions about how Reflekt works? Check out our Features page or reach out to our support team.