Journal
A 60-second check-in for you, not your child. Pick a mood, write what you want, kept for 14 days.
When to use this
Use Journal when something happened today that you want to remember, but you don't want to write a full diary entry and you don't want it on social media. Pick how you're doing today, type a paragraph if you want, save. Beacon keeps the last 14 days. After that the oldest entries drop off. This is intentional. The journal is not a long-term record; it's a release valve for the week.
How it works
Pick a mood
Five chips: Drowning, Heavy, Steady, Lighter, Buoyant. One tap. The mood is the most important data point. The text is optional.
Write as much or as little as you want
800-character textarea. Skip it entirely if the mood says enough. Write a paragraph if today needs unpacking. No formatting, no tags, no privacy decisions.
14 days of history
Past entries scroll below the new-entry form. Tap an entry to delete it. After 14 days an entry rolls off automatically. This is the design, not a bug; the journal stays low-stakes.
Ask Beacon what your week looked like
Discuss with Beacon attaches the last 14 days of entries to your chat. Useful for 'What was the worst day this week?' or 'Help me see if there's a pattern to the heavy days.'
What Beacon stores when you use it
journal_entries: One row per entry. Mood is required; content is optional. RLS-locked to you. Old entries get hard-deleted by a 14-day cron, not soft-deleted, so the table stays small.
| Column | Type | Example |
|---|---|---|
| id | UUID | a8d2... Auto-generated. |
| user_id | UUID | your-user-id RLS-locked to you. |
| mood | enum | heavy drowning | heavy | steady | lighter | buoyant |
| content | text (nullable) | Avery had 2 meltdowns at school. Coming home felt like a brick wall. Up to 800 chars. Can be null if you only wanted to tap a mood. |
| entry_date | date | 2026-05-16 The day the entry counts for. One entry per day, latest wins. |
| logged_at | timestamp | 2026-05-16T22:14:00Z Exact moment you tapped save. |
A real example
Maya journals 6 of the last 14 days. Her timeline tells the week's shape at a glance.
| Date | Mood | Content |
|---|---|---|
| May 16 (today) | Steady | Managed it. Avery had a good afternoon. |
| May 15 | Heavy | (empty) |
| May 14 | Drowning | School called twice. I cried in the bathroom at work. |
| May 12 | Lighter | First good Tuesday in a month. |
| May 10 | Buoyant | Avery used a full sentence to ask for screen time. |
| May 8 | Heavy | (empty) |
What Beacon auto-knows
- Every mood you logged in the last 14 days.
- How many days were Drowning or Heavy vs Lighter or Buoyant.
- Whether you wrote content or just tapped a mood.
- Patterns: 'Drowning days clustered on Wednesdays this fortnight.'
What Discuss with Beacon adds
- When you Discuss from the Journal page, all 14 days attach to the chat (mood + content).
- Beacon can read your prose to surface themes you didn't see: 'You mentioned the school three times this week, the OT once.'
- It can also draft for you: 'Write what I just journaled as a 4-sentence email to my partner.'
Try these with Beacon
โWhat was the hardest day this week?โ
Pulls the lowest-mood entry from the last 7 days and reads back the content (if any). 'Tuesday was Drowning. You wrote about the school call and crying in the bathroom.'
โHelp me see if there's a pattern to the heavy days.โ
Cross-references mood by day-of-week + content keywords. 'Heavy and Drowning entries cluster on Wednesday + Thursday. Most mention school. The Lighter days come on weekends or after therapy on Friday.'
โI want to tell my therapist what this fortnight was like.โ
Drafts a 5-7 sentence summary using mood counts + content themes, in your voice. 'I had 4 Heavy days this fortnight, mostly Wed/Thu. 2 Drowning days. The school is the recurring theme. The 2 good days were both after Avery used a new word.'
โWrite the journal entry for today for me. Avery used the toilet alone for the first time.โ
Drafts a Buoyant-mood entry in your voice, ~3-4 sentences. You paste, edit, save.