Inspiration

What if the voices in your head had a group chat?
That whimsical thought sparked Persona: Build Your Inner Worlds — a place where all your inner moods, characters, and thoughts come alive and talk like besties in a group chat 💬

Inspired by journaling, mental health, and digital self-reflection, Persona combines AI with self-expression — creating something both useful and magical.


💬 What it does

Persona lets users create inner personas based on their moods, themes, and favourite quotes. Each persona has a name, voice, and style — and they all talk to each other in a simulated group chat.

The app also includes:

  • 🎯 A goal tracker per persona
  • 📓 Journaling entries
  • 💬 Weekly AI-generated reflections
  • 🖼️ A pastel, aesthetic UI that feels like home

🛠 How I built it

I used:

  • Python and Flask for the backend
  • SQLite for storing all persona data, goals, and journals
  • HTML, CSS, Bootstrap Icons for the front-end
  • Google Fonts for the vibe
  • Hugging Face’s chat completion API to power the conversations
  • Environment variables via .env to keep things safe 🔐
# Sample setup
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python app.py

🚧 Challenges I ran into

  • Making each persona sound unique with short AI replies
  • Designing a UI that’s both cute and functional
  • Structuring the database so each persona has separate goals/journals
  • Keeping chat messages short, punchy, but still meaningful
  • Managing asynchronous replies in a group chat setting

🌟 Accomplishments that I am proud of

  • Creating a full-stack app that feels like a personality simulator
  • Beautiful group chat UI with async replies
  • Dynamic reflections with AI
  • A clean codebase that’s easy to extend
  • Actually loving the project so much I didn’t want to stop 💖

📚 What I learned

  • Crafting effective prompts for short, realistic AI replies
  • Using Flask routing + templates for multi-page UX
  • Design thinking: blending emotion + productivity
  • Managing multiple tables in SQLite smoothly
  • Adding mood and theme as soft data layers

I also explored this fun formula to calculate the personality behind the scenes:

$$ \text{Persona} = f(\text{Mood}, \text{Theme}, \text{Quote}, \text{Style}) $$


🔮 What's next for Persona

  • 🧠 Add memory so personas remember past convos
  • 🖌️ Customize persona icons and colors more deeply
  • 📈 Mood analytics over time
  • 🌐 Let people share personas or chat across brains
  • 🧩 Add playful, gamified tasks for each persona

And of course, keep the cute pastel chaos going 💫

Built With

  • and-views-html-+-css-?-frontend-structure-and-styling-bootstrap-icons-?-to-add-aesthetic-icons-across-the-ui-google-fonts-?-for-a-cutesy
  • api
  • bootsrap
  • clean-visual-vibe-sqlite-?-local-database-to-store-personas
  • css3
  • flask
  • html5
  • huggingface
  • javascript
  • journals
  • python
  • sqlite
  • templates
Share this project:

Updates