Changelog

Version history and release notes for Reflekt

V1.05 August 29, 2026
Trends
  • A New Row on Your Dashboard: Trends tells you how this month is going compared with last month, with the same month last year, and how this year compares with last year
  • Words a Day: “You’re writing more words a day than last August — 519 vs 314”. Also how often you write, how many days you show up, and how your entries have changed in length
  • Tone: Whether your writing sounds brighter or heavier than before — and when it hasn’t moved, it says that too, rather than staying silent
  • Subject Matter: “You’re writing about Health & Wellness more than last month”, measured as a share of your entries so a busier month doesn’t make every subject look like it grew
  • Fair Comparisons: A month in progress is compared against the same days of the month before — the first 20 days against the first 20 — so a normal month is never reported as a collapse just because it isn’t finished
  • Only When It’s Real: Nothing appears unless the change is large enough to mean something, and the same fact is never stated twice in different words. A quiet month simply shows less
  • Three at a Time: The row shows three cards and pages sideways through the rest, by button, swipe or arrow key
Milestones
  • Your Biggest Writing Day: The single day you wrote the most, and how much — counting every entry you made that day
  • The Date You Keep: The calendar date you return to most across the years — “August 25 is the day you journal most, 11 entries across 2020, 2022–2026”
  • Your Biggest Year: The year you wrote the most, and whether this one has already passed it or is on track to
  • Real Records Only: A “best day” has to actually stand out. If you wrote much the same amount every day of a year, that year has no biggest day and none is invented
Privacy
  • Safer Insight Text: Detected topic names are now escaped everywhere they appear on the dashboard. They come from a fixed list today, so nothing was exposed, but the protection no longer depends on that staying true
A New Look
  • New Colour: Reflekt is slate blue now instead of indigo — a quieter, deeper tone that sits behind your writing instead of competing with it
  • Reading Typeface: Georgia throughout, for headings and body alike. It reads as writing rather than as an app
  • One Set of Buttons: Buttons, cards, badges and form fields now look the same wherever you are. Pages that used to feel like they came from somewhere else no longer do
  • Consistent Depth: Every card shares one shadow and one corner radius, so the whole site sits on the same surface
Blog
  • Bigger Reading Size: Articles are set in Georgia at a proper reading size, with the line length capped so text never runs edge to edge
  • Share Properly: Posts now produce a real preview card — title, summary and image — when shared to social or chat, instead of a bare link
  • Follow by RSS: Subscribe at /blog/feed/ (Atom at /blog/feed/atom/)
  • Search: Search posts by title or content, filtered by category
  • Keep Reading: Every post now shows its author, related posts from the same category, and previous/next links instead of ending in a wall
  • Share Buttons: Copy link, X, LinkedIn and email on every post
Fixes
  • Year in Review Works Again: The page was failing to load entirely; it had been broken by a missing template import
  • No More Raw Markdown: Post summaries were showing *asterisks* and ## instead of formatting, on both the blog and the front page
  • Emphasis Renders: Goal, plan and post descriptions written with *emphasis* now display as intended
  • Readable Buttons: The front page’s main button was nearly invisible against the hero image; it and several others now meet accessibility contrast standards
  • Safer Deletes: On every confirmation screen the safe choice is now the prominent one, so a careless click keeps rather than deletes
  • Stray Text: Fixed developer comments that were rendering as visible text on the editor and blog pages
Faster Pages
  • Cached, Not Re-sent: Roughly 3,800 lines of page code moved into files your browser caches once instead of re-downloading with every page
  • Sidebar and Tour: These load on every signed-in page, so moving them out speeds up the whole app rather than one screen
  • No Web Fonts: Every typeface now ships with your device — nothing to download, and no flash of the wrong font on load
Privacy
  • Honest Copy: Removed an unsupported claim about user numbers from the front page
Privacy
  • Anonymous Logs: Server logs no longer record email addresses or usernames — every entry now refers to accounts by ID only
  • Nothing From Your Writing: An internal diagnostic tool that printed a snippet of entry text now prints only scores, and per-entry mood readings and saved locations have been removed from logging entirely
  • Friend Activity: Sending, accepting and declining friend requests no longer writes both people’s addresses to the log
Slash Menu
  • Always On Screen: Typing / near the edge of the window no longer pushes the menu out of sight — it slides back in, and flips above the cursor when there is no room below
  • Follows Your Selection: Arrow keys now scroll the list, so the highlighted command stays visible instead of slipping behind the bottom of the menu
  • Same Everywhere: The @ mention menu and the /pov friend picker got both fixes too, and /pov now actually shows which friend is highlighted
  • Keyboard Aware: Menus re-position themselves when the window resizes or a phone keyboard opens
Keyboard Navigation
  • Arrow Keys In Every Picker: Goals and habits, books, shows and places, place type, and the POV friend list all navigate with Up and Down
  • Jump To The Ends: Home and End go straight to the first and last item, and the list wraps around
  • Enter Picks What You See: The highlighted row is always the one Enter chooses, whether you arrowed to it or tabbed to it
Quick Access
  • New Entry Anywhere: A floating + button on every page starts a new entry without going back to the journal first
  • Tidier On Phones: The feedback button now scales down on small screens as intended, and the two floating buttons stay neatly stacked at every size
Editor Fixes
  • iPad Tab Switching: Typing works again after leaving the tab and coming back — no more reloading the page
  • Caret Restored: Returning to the tab puts the cursor back where you left it
  • Layout Guard: The editor no longer collapses when the browser reports a size for a hidden tab
More Room to Write
  • Auto-Collapse: Date, Mood & Energy folds away as soon as you start writing
  • Stays Put: Re-open the panel yourself and it stays open
Media Dashboard
  • One Row Per Title: Re-watching a show no longer fills the list with the same name
  • Watch Count: Repeat watches show a ×N badge and the date you started
  • Ratings Kept: A re-watch with no rating no longer hides the stars you gave earlier
Watched Capture
  • Smarter Form: /watched asks for title and type — season and episode expand only for TV shows
  • Movies Auto-Finish: A movie is watched in one sitting, so it's logged as finished instead of sitting in Currently Watching
  • Your Call: Marking a title as watching again on the media dashboard sticks
POV Sharing Improvements
  • Inline POV Picker: /pov slash command now shows a quick inline friend picker
  • Faster Workflow: Select friends and insert POV block without leaving the editor
  • Keyboard Support: Arrow keys to navigate, Space to toggle, Enter to add
  • Toolbar Button: Full modal with message field still available via toolbar
Editor Auto-Scroll Fix
  • Safari Fix: Fixed auto-scroll to keep cursor visible while typing
  • Viewport Awareness: Scroll now correctly accounts for visible area
  • Comfortable Margins: Cursor stays well above bottom of screen
Media Tracking & Watch Status
  • TrackedShow Model: New model to track show/movie watch status (Watching, Finished, Abandoned)
  • Mark as Finished: Mark shows as finished to hide them from the quick picker
  • Rewatch Support: Resume watching finished shows when you want to rewatch
  • Dashboard Controls: Status filter tabs and action buttons in Media Dashboard
  • Detail Modal: Change watch status directly from the show detail modal
  • Status Badges: Visual badges showing current watch status throughout the app
Places Picker Enhancement
  • Search Filter: Type to filter through your existing places instantly
  • Auto-Create: Add new places on the fly when they don't exist
  • Place Types: Select place type (Restaurant, Cafe, Park, Office, Home, Gym, etc.) when creating
  • Highlighted Matches: Search text highlighted in yellow for easy scanning
  • Keyboard Support: Press Enter to select or create, Escape to close
Markdown Rendering Improvements
  • Task Lists: Support for - [ ] and - [x] checkbox syntax
  • Bullet Indentation: Fixed bullet list indentation with proper HTML list rendering
  • Code Blocks: Improved monospace font stack for ASCII art and diagrams
  • Nested Lists: Proper styling for nested bullet and numbered lists
Moon Phase Fix
  • Accurate Calculations: Fixed moon phase algorithm with correct reference date
  • Backfill Complete: Recalculated moon phases for all 1,413 existing entries
  • Phase Accuracy: Now within 2-3% of actual astronomical values
Fitness Goals & Body Metrics
  • Fitness Goals: Set and track fitness goals with progress logging
  • Body Metrics: Track weight, body fat, measurements, and more
  • Cardio Logging: Log cardio workouts with duration, distance, and calories
  • Better Measurements: Comprehensive body measurement tracking for fitness progress
Mobile View Improvements
  • Responsive Fixes: Fixed various layout issues on mobile devices
  • Cellphone View: Improved sidebar and navigation on smaller screens
  • Touch Friendly: Better touch targets and spacing for mobile users
Bug Fixes
  • EasyMDE Auto-Scroll: Fixed cursor visibility issue in Markdown editor on Safari
  • Safari Compatibility: Resolved flex layout height constraints for proper scrolling
  • Cross-Browser: Editor now works consistently across Firefox, Safari, and Chrome
Weather Analysis Overhaul
  • Historical Weather API: Implemented Open-Meteo free API for accurate historical weather data
  • Bug Fix: Fixed issue where all entries showed current weather (63°F) instead of actual historical data
  • Temperature Fix: Corrected Celsius to Fahrenheit conversion in temperature range grouping
  • Weather Variety: Now properly shows all weather conditions (clear, clouds, rain, drizzle, snow)
  • Accurate Data: Temperature range now spans 27°F - 91°F (previously all 63°F)
  • 1,377 Entries Updated: Backfilled all existing entries with correct historical weather
Dashboard Weather Display
  • Horizontal Columns: Weather impact now displays in 5 horizontal temperature columns
  • Temperature Ranges: <30°, 30-59°, 60-79°, 80-99°, ≥100° (in Fahrenheit)
  • All Conditions Shown: Changed from top 3 to showing all weather conditions per range
  • Clickable Conditions: Click any weather condition to see matching journal entries
  • Entry Modals: Beautiful modal popups showing entry previews with mood, date, temperature, sentiment
  • Visual Enhancements: Hover effects, color-coded sentiments, smooth animations
Monthly Snapshot Reliability
  • Fixed Dashboard Stats: "This Month's Mood" chart now updates immediately after creating entries
  • Synchronous Updates: Monthly snapshots update in real-time without requiring Celery
  • Entry Count Accuracy: Dashboard always shows correct number of entries for current month
  • Mood Distribution Fix: Mood chart reflects all entries, not stale data
Analysis Improvements
  • Complete Sync Analysis: Synchronous analysis now includes moon phase, weather, and zodiac data
  • Historical Weather for New Entries: All new entries automatically get accurate historical weather
  • Immediate Updates: Dashboard statistics update instantly when entries are created or edited
  • Works Offline: Analysis and updates work whether Celery is running or not
API Endpoints
  • New Endpoint: /api/weather/<temp_range>/<condition>/entries/ for filtered weather entries
  • Entry Filtering: Get entries by both temperature range and weather condition
  • Modal Integration: Backend support for interactive weather condition modals
Editor Improvements
  • Auto-Scroll Fix: Editor now smoothly scrolls to keep cursor visible while typing
  • EasyMDE (Markdown): Added intelligent auto-scroll that triggers only when typing
  • Comfortable Padding: Increased bottom padding to 50vh for better long-entry editing
  • No More Hidden Cursor: Cursor stays comfortably visible with 200px of space below
Capture Format Unification
  • Emoji Format: All captures now use consistent emoji format (e.g., 👤 Ariella, 🎯 Exercise More)
  • Removed Links: Changed from markdown links to clean emoji + text format
  • Person: 👤 Name (previously @Name or [Name](/link))
  • Place: 📍 Place Name
  • Book: 📚 Book Title
  • Goal: 🎯 Goal Name
  • Habit: ✅ Habit Name
Bug Fixes
  • Capture Pills: Fixed missing capture pills when selecting existing items
  • Person/Place Captures: Now properly creates capture and displays pill at bottom
  • CSRF Errors: Added CSRF_TRUSTED_ORIGINS configuration for login issues
POV (Point of View) Sharing
  • Approval Workflow: Recipients can now approve POVs before adding to their journal
  • Flexible Adding: Choose to add POV to existing entry or create new entry for that date
  • Delete POVs: Added ability to permanently delete POVs (with confirmation)
  • Badge Fix: Sidebar badge now clears after dismissing or approving POVs
YouTube Embedding
  • New {figure} directive: Embed YouTube videos in journal entries
  • Supports all YouTube URL formats (watch, youtu.be, embed)
  • Optional captions with {figure} URL | caption {/figure}
  • Responsive 16:9 aspect ratio
Bug Fixes
  • Duplicate Entries: Fixed auto-save creating duplicate entries for the same date
  • Quick Save: Fixed JavaScript function using wrong API endpoint
  • Date Deduplication: Server now checks for existing entries before creating new ones
Admin Features
  • Email Verification: Manually verify user email addresses
  • Password Reset: Send password reset emails or generate temporary passwords
  • Prompt Management: Full CRUD for prompt categories with background images
Password Reset Flow
  • Custom branded email templates for password reset
  • Custom confirmation pages matching site design
Initial Release
  • Journal entries with rich text (Quill) and Markdown (EasyMDE) editors
  • Daily prompts with customizable categories
  • Challenges system with multi-day journaling prompts
  • Goals and Habits tracking
  • Analytics dashboard with insights
  • Friend system with POV sharing
  • Captures: places, workouts, meals, mood tracking
  • Yearly and monthly calendar views
  • Premium subscriptions via Stripe
  • Multi-tenant architecture with data isolation