Skip to content

johannaefageras/storify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

109 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“” Storify

For all the diaries you bought but never wrote in โœจ

Storify is an AI-powered journaling app that transforms your daily experiences into personalized diary entries. Answer a few guided questions about your day, pick a writing style, and let Claude AI craft a unique journal entry just for you.

Live Demo SvelteKit TypeScript Anthropic


๐ŸŽฏ Overview

Journaling is powerful, but starting is hard. Storify removes the friction by:

  1. ๐Ÿ“ Guiding you through a simple wizard with questions about your day
  2. ๐ŸŽญ Letting you choose from 24 unique writing styles
  3. ๐Ÿค– Generating a personalized diary entry using Claude AI
  4. ๐Ÿ“ค Exporting or emailing your entry as text, image, or share link

No more staring at a blank page โ€“ just answer a few questions and get a beautifully written diary entry in seconds!


โœจ Features

๐Ÿง™โ€โ™‚๏ธ 10-Step Guided Wizard

Step Name Description
0 ๐Ÿ‘ค Profile Name, age, pronouns, hometown, family, pets, interests
1 ๐Ÿ˜Š Mood, Date & Weather Pick up to 4 emojis + optional auto-weather from location
2 โšก Energy Rate your sleep, energy, and overall mood (1-10)
3 ๐Ÿƒ Activities Where you went, what you did, who you met
4 ๐Ÿ† Wins & Frustrations Celebrate victories and vent frustrations
5 ๐Ÿ’ญ Reflections What almost happened, regrets, redo moments
6 ๐Ÿ• Food & Music Meals and soundtracks of your day
7 โณ Time Capsule A memory to preserve + a message to future you
8 ๐ŸŽญ Voice Choose your writing style
9 ๐Ÿ“‹ Summary Review and generate your entry

๐ŸŽญ 24 Unique Writing Tones

Tone Description
๐Ÿ“’ Klassisk Dagbok (Classic) Traditional "Dear Diary" format
๐Ÿ“– Berรคttelse (Storytelling) Your day as a narrative adventure
๐Ÿค” Filosofisk (Philosophical) Deep reflections and existential musings
๐ŸŽ™๏ธ Sportkommentator (Sportscaster) ENERGETIC play-by-play commentary
๐Ÿˆ Kattperspektiv (Cat Perspective) A judgmental cat observing its human
๐Ÿ‘‘ Drama Queen Everything is DRAMATIC
๐Ÿ’ฉ Meme Gen Z internet speak, very relatable
๐Ÿ˜ฌ Cringe Awkwardly endearing self-awareness
๐Ÿ‡ฌ๐Ÿ‡ง Brittisk (British) Understated elegance and dry humor
๐ŸŽฎ Quest Log Your day as an RPG adventure
๐Ÿฅฑ Uttrรฅkad (Bored) Minimal enthusiasm, maximum vibes
๐ŸŒŽ Naturdokumentรคr Attenborough-style observations
๐Ÿง  Psykolog (Therapist) Therapist notes with warm insight
๐Ÿค– AI-Robot System log with tiny hints of feelings
๐ŸŽญ Shakespeare Dramatic monologue with archaic flair
๐Ÿ“ฐ Kvรคllstidning (Tabloid) Sensational tabloid headlines
๐Ÿ›๏ธ Formell (Formal) Overly formal official letter
๐ŸŽถ Trubadur (Troubadour) Song lyrics/ballad format
๐Ÿค“ Nรถrdig (Nerdy) Over-explains everything with facts
๐ŸŽฉ Foliehatt (Tinfoil Hat) Conspiracy theories everywhere
โœจ Livscoach (Life Coach) Uplifting advice and encouragement
๐Ÿ•ต๏ธ Deckare (Detective) Your day as a mystery to solve
๐ŸŒ€ Grubblande (Overthinker) Analyzing every detail, over and over
๐Ÿ˜’ Cynisk (Cynical) Skeptical and wryly honest

๐Ÿ“ฑ Multi-Platform Support

  • ๐ŸŒ Web App โ€“ Works in any modern browser
  • ๐Ÿ“ฑ Android App โ€“ Native app via Capacitor
  • ๐ŸŒ™ Dark Mode โ€“ Easy on the eyes, day or night
  • ๐Ÿ“ฌ Email Delivery โ€“ Send entries to your inbox

๐Ÿ”’ Privacy-First

  • Profile data stored locally on your device
  • Only daily entries sent to AI for generation
  • No server-side storage of your diary entries
  • Location data is used only to fetch weather (optional) and isn't stored

๐Ÿ› ๏ธ Tech Stack

Category Technology
โšก Framework SvelteKit 2.x + Svelte 5
๐Ÿ“˜ Language TypeScript 5.9
๐Ÿค– AI Anthropic Claude API (Claude Opus 4.5)
๐Ÿ“ฌ Email Resend API
๐ŸŒค๏ธ Weather SMHI Open Data
๐Ÿ“ฆ Build Vite 7.x
๐Ÿ“ฑ Mobile Capacitor 8.x
๐Ÿš€ Hosting Vercel

๐Ÿš€ Getting Started

Prerequisites

Installation

# Clone the repository
git clone https://github.com/johannaefageras/storify.git
cd storify

# Install dependencies
npm install

# Create environment file
cp .env.example .env
# Add your ANTHROPIC_API_KEY to .env

Development

# Start development server
npm run dev

# Open http://localhost:5173

Production Build

# Build for web
npm run build

# Preview production build
npm run preview

Android Build

# Build static site for Capacitor
npm run build

# Sync with Android project
npx cap sync android

# Open in Android Studio
npx cap open android

โš™๏ธ Environment Variables

Create a .env file in the root directory:

# Required: Your Anthropic API key
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx

# Required: Email delivery (Resend)
RESEND_API_KEY=re-xxxxxxxxxxxxx

# Optional: API base URL for Capacitor native app
VITE_API_BASE_URL=https://mystorify.se

๐Ÿ“ Project Structure

storify/
โ”œโ”€โ”€ ๐Ÿ“‚ src/
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ routes/                    # SvelteKit pages & API
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ +page.svelte           # Landing page
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ wizard/                # Main wizard flow
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ +page.svelte       # Wizard container
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ steps/             # Individual wizard steps
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ api/generate/          # AI generation endpoint
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ about/                 # About page
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ contact/               # Contact page
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ privacy/               # Privacy policy
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ terms/                 # Terms of service
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ lib/
โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ stores/                # Svelte state management
โ”‚       โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ wizard.svelte.ts   # Wizard data store
โ”‚       โ”‚   โ””โ”€โ”€ ๐Ÿ“„ theme.svelte.ts    # Theme preferences
โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ data/                  # Static data
โ”‚       โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ tones.ts           # Tone definitions
โ”‚       โ”‚   โ””โ”€โ”€ ๐Ÿ“„ emojis.ts          # Emoji categories
โ”‚       โ””โ”€โ”€ ๐Ÿ“‚ components/            # Reusable components
โ”‚           โ””โ”€โ”€ ๐Ÿ“‚ emojis/            # Custom emoji SVGs
โ”œโ”€โ”€ ๐Ÿ“‚ tones/                         # Detailed tone instructions                  # Tone overview
โ”œโ”€โ”€ ๐Ÿ“‚ android/                       # Capacitor Android project
โ”œโ”€โ”€ ๐Ÿ“‚ static/                        # Static assets & fonts
โ”œโ”€โ”€ ๐Ÿ“„ capacitor.config.ts            # Capacitor configuration
โ”œโ”€โ”€ ๐Ÿ“„ svelte.config.js               # SvelteKit configuration
โ”œโ”€โ”€ ๐Ÿ“„ vite.config.ts                 # Vite configuration
โ””โ”€โ”€ ๐Ÿ“„ package.json

๐ŸŽจ Customization

Adding a New Tone

  1. Create a new markdown file in tones/ with detailed instructions
  2. Add the tone definition to src/lib/data/tones.ts
  3. Add a sample text in src/lib/data/voiceSamples.ts
  4. Update the tone instructions in src/routes/api/generate/+server.ts

Theming

The app uses CSS custom properties for theming. Modify colors in src/app.css:

:root {
  --color-primary: #your-color;
  --color-background: #your-background;
  /* ... */
}

๐ŸŒ Language

The app is primarily in Swedish ๐Ÿ‡ธ๐Ÿ‡ช (UI text, tone instructions, generated content). The British tone is the exception, generating entries in English.


๐Ÿ“Š Current Status

Component Status
๐ŸŒ Web App โœ… Production
๐Ÿ“ฑ Android App โœ… Production
๐ŸŽ iOS App ๐Ÿ”œ Planned
๐ŸŒ Multi-language ๐Ÿ”œ Planned
๐Ÿ’พ Entry History ๐Ÿ”œ Planned

๐Ÿค Contributing

Contributions are welcome! Feel free to:

  1. ๐Ÿ› Report bugs
  2. ๐Ÿ’ก Suggest new features or tones
  3. ๐Ÿ”ง Submit pull requests

๐Ÿ“„ License

This project is proprietary software. All rights reserved.


๐Ÿ™ Acknowledgments


Made with โค๏ธ for journaling enthusiasts

๐ŸŒ Try Storify ยท ๐Ÿ› Report Bug ยท ๐Ÿ’ก Request Feature