
Emotora is a complete AI mood-journal app template built with Flutter, GetX and Material 3 — a one-line intention in the morning, a ten-second check-in at night, and three short questions that get written up into a finished journal entry. 17 screens, light and dark themes, and every screen works with no API key and no network.
Demo Instructions — the sign-in screen is a mock and contacts no server, so any credentials are accepted. Use demo@emotora.app / demo1234, or simply tap Sign in with the fields left empty. There is no account to register, no API key to enter and no network required: Demo mode is on out of the box, so every AI screen answers on the device.
AI disclosure — Emotora is an AI-assisted template, and this is exactly what that means here. The written parts of the app — the composed journal entry, the weekly reflection and the reply to a check-in — are generated at run time by a third-party AI service that you or your end user supplies an API key for: Google Gemini (the shipped default), OpenAI or Anthropic Claude. No AI service, API key or usage credit is included with this item, and those providers bill their own usage separately under their own terms. Nothing leaves the device until a key is entered — Demo mode is on out of the box and composes every write-up locally from the user’s own entries. Everything else in the app is ordinary Dart: streaks, mood tallies, the shape of the chart and the on-device safety check are all computed in plain code, never asked of a model. The files you download contain no AI-generated media — the item ships zero image assets, every illustration is drawn by a CustomPainter at run time, and the three bundled typefaces are licensed under the SIL Open Font License 1.1 (full text at assets/fonts/LICENSES.txt).
Developers shipping a journal, mood-tracking or self-reflection app who want the hard parts already decided: what the model is asked for, what is computed in code instead of asked of a model, and what the app does when someone writes that they are not coping. The reviews of every competing app in this category say the same thing in different words — the buyer could not get the backend running. This one runs on flutter run.
No Firebase, no server of yours, no account for your users to make. Entries, moods, activities and every figure on the insights screen stay on the device; the one request the app can make is the AI write-up, and only when someone presses a button to ask for one. Entries live behind a service layer whose methods already return Futures, so pointing it at Hive, Isar, SQLite or your own API is a change in one file and no screen changes. Four dependencies in total — get, http, flutter_secure_storage, cupertino_icons — and no vendor AI SDK, so no provider package can break your build.
A fixed sequence of three short questions on stepped cards, each answerable with a tap, then the answers are written up into a journal entry in the user’s own first person. Not a chat window: what comes out is a page, it can be edited before it is kept, and there is no conversation to maintain or scroll back through. This is the screen that makes an entry possible on a day when nobody feels like writing one.
A month of feeling drawn as a river, painted on canvas with no charting package. Height is how pleasant the day was, thickness is how strongly it was felt, and a break in the ribbon is a day nobody wrote — not a zero, because a day without an entry is not a bad day. Feelings are not a quantity, so the chart refuses to plot one: three things are encoded at once and none of them is a number the reader could try to make go up.
Three full-screen cards — the mood, how strongly it was felt, one line for tomorrow — finishable in ten seconds, and the first card alone is already a complete answer. The days worth capturing most are the days nobody has the energy to write about, which is why the shortest path through this app still produces a real record rather than a skipped day.
Today asks for an intention when the user wakes up and for an account of the day after dinner. It is one screen with two faces, switching on the clock or by hand, and the evening half carries the morning’s intention forward so the finished entry holds both halves of the day. A journal that shows the same thing at 7am and at 10pm is asking the same question twice.
Streaks, mood tallies, the shape of the chart and which activities fall on the better days are all computed in plain Dart and handed to the AI as given facts, with the prompt telling it not to recount them. A model asked to count its own input answers confidently and sometimes wrongly, and the reader has no way to tell — so it is never asked. That line, drawn in the architecture rather than in the prompt, is why the numbers on the insights screen are the same numbers the tests check.
Every provider is a plain REST client behind a one-method interface that knows nothing about journalling, which is why the same three adapters serve all three of this app’s very different requests. Adding a fourth provider is one class and one catalog entry, with no screen changes. Model names expire, and this template is built for that: the model id is an editable setting, a retired name produces a plain-language error with a button straight to the field that fixes it, and the documentation has a section on updating it. It is the single most common complaint about AI templates, and it is handled here rather than left for you.
An on-device keyword check — offline, before anything is sent anywhere — shows a support card with real helpline numbers when the writing suggests someone is struggling, and the AI prompts themselves forbid diagnosis, treatment and clinical language. Nothing is scored and nothing is recorded, and the entry is saved exactly as written. The bundled helpline list is a starting point, and the documentation has a section on replacing it with the services for the countries you ship to, alongside the disclaimers an app of this kind needs before it goes on a store.
Beyond the four signature screens: an entry archive grouped by month; a ruled month calendar where each day carries a mood-colored rule whose length is the intensity; a full entry page and a distraction-free writing surface; full-text search with eight mood filters; provider settings; a support screen with the bundled helpline directory; a four-digit passcode with its own drawn keypad; onboarding, sign-in and sign-up; and a mock paywall. 17 screens in all, every one themed twice, light and dark, both complete.
flutter pub getflutter run — Demo mode is already on, so the app is fully populated with ninety days of sample journalTo run and build the source code you need the Flutter SDK (version 3.29 or newer) and Dart 3.7 or newer, together with a Flutter-ready IDE — Android Studio or Visual Studio Code with the Flutter & Dart plugins. Runs on both Android and iOS from a single Flutter codebase (Material 3, null-safe).
Emotora runs entirely on the device, but the written parts — the composed entry, the weekly reflection and the reply to a check-in — are produced by a third-party AI provider that you or your users supply a key for. Connecting it to a live provider such as Google Gemini, OpenAI or Anthropic will involve those third-party services, which will incur their own separate costs and are not included in this item. Only the passage a user chooses to have written up is sent, and only to the provider whose key that user supplied; nothing is uploaded anywhere else.
Questions about the item go through the comments tab on this page, which is where I read them. Support covers the code as it ships: getting the project to build, the documented setup steps, provider configuration, and defects in what is included. It does not cover your own modifications, third-party provider outages or pricing changes, or building new features to order.
This app is a journalling companion. It is not a medical device, and the writing it produces is not medical, psychological, legal or financial advice. It cannot help in an emergency.
v1.0 — initial release.
0 average based on 0 ratings.
| Last Update | 2026-09-05 |
| Created | 2026-09-05 |
| Sales | 0 |
| Discussion | Comments |
| Software Version | Flutter 3.x |
| Files Included | Dart YAML JavaScript JSON .kotlin .swift |
| Video Preview Resolution |