Vibe Check is a Layla mini-app that turns a character chat into an emotional dashboard. Pick a character, load the latest conversation history, and see how the mood moves between you and them message by message, day by day.
It uses the Layla WebView SDK to read characters, fetch chat sessions and history, and score each message with Layla's sentiment classifier.
- Mood over time: your emotional tone and the character's tone plotted side by side.
- How it broke down: good vibes, hard feelings, in-between moments, and neutral chat as a percentage split.
- Most-felt feelings: the emotions that appear most often across the selected conversation.
- You vs character: quick comparisons for positivity, warm moments, and emotional range.
- Explore more: deeper views for reply weather, mood maps, year in colour, feelings that travel together, warmest hours, and emotional signatures.
The mini-app metadata lives in public/app.json:
- Title: Vibe Check
- Tagline: See the feelings between the texts.
- Icon:
icon.jpg - Background image:
bg.jpg
When the app is built, these files are copied into dist so they can be packaged with the generated index.html.
Install dependencies:
npm installRun the app locally:
npm run devBuild the mini-app:
npm run buildPreview the production build:
npm run previewCheck linting:
npm run lintDuring local development, the app installs a Layla SDK mock so it can run in a browser without the Layla WebView bridge. The mock provides demo characters, chat history, and sentiment data for the dashboard flow.
Inside the Layla app, the mini-app uses the real SDK bridge instead:
characters.listfor paginated character selectioncharacters.getImagefor character portraitschat.getChatSessionsandchat.getChatHistoryfor conversation historyclassifier.getSentimentfor per-message emotion scoring
Vibe Check is built so new dashboards can be added without changing the Layla data-loading flow. SentimentDashboard.tsx owns the app shell: character selection, history loading, sentiment enrichment, shared summary cards, and the preview gallery. Once the chat history is loaded, each dashboard receives the same enriched messages array and can focus only on its own visualization.
The shared message shape is defined in src/models/chat.ts. Raw classifier scores are enriched once into fields like fired, dominant, valence, arousal, and family, so every dashboard works from the same sentiment vocabulary.
The current full-screen dashboard modules live in src/components/:
ReplyWeathershows how one person's mood tends to follow the other's.MoodMapplots messages on an emotional valence/arousal plane.YearInColourturns chat history into a calendar-style mood story.FeelingsTogethermaps emotions that tend to appear together.WhenYoureWarmesthighlights the hours where the conversation feels warmest.YourSignaturescompares each person's emotional fingerprint.
To add another dashboard:
- Create a new component in
src/components/that acceptsmessages: ChatMsg[]andonClose: () => void. - Keep any view-specific calculations inside that component or a small helper beside it.
- Add a matching preview item to the
PREVIEWSlist inSentimentDashboard.tsx. - Add a render branch in the preview sheet section so the new preview opens the new component.
This keeps data access, sentiment enrichment, and visualization concerns separate. New dashboards can reuse the same chat timeline while experimenting with completely different charts, summaries, or interaction patterns.
This project uses Vite with vite-plugin-singlefile, so the production build emits a self-contained index.html plus the public Layla mini-app assets.
To package the app:
- Run
npm run build. - Zip the contents of
dist, not thedistfolder itself. - Make sure
app.json,index.html,icon.jpg, andbg.jpgare at the root of the zip. - Import the zip into Layla as a mini-app.
public/
app.json Layla mini-app manifest
icon.jpg Mini-app icon
bg.jpg Mini-app background image
src/
SentimentDashboard.tsx
lib/laylaTimeline.ts
models/chat.ts
components/
assets/
1.jpg App screenshot
2.jpg App screenshot
3.jpg App screenshot
4.jpg App screenshot
5.jpg App screenshot
google_badge.png
apple_badge.png
Visit the official Layla website: https://www.layla-network.ai/
Download the Layla app:




