Health and fitness tracking fails in one of two ways. Either it is a beautiful private graph nobody else ever sees, so there is nothing pulling you back on the day you would rather not go; or it is a social network of strangers, where the encouragement is generic because the people giving it do not know you. Korat's health module sits inside an app you already use for chat, groups and the feed, so the audience for a Saturday morning ride is the same set of people who will ask about it on Monday. That is the whole design premise, and every decision below follows from it.
Twelve activities, and only four of them need GPS
The app records twelve activity types: run, walk, cycle, hike, treadmill, swim, gym, yoga, jump rope, football, badminton and boxing. Four of those — run, walk, cycle and hike — are GPS-tracked, because they move you across a map and the route is genuinely part of the record. The other eight are not, and the app does not pretend otherwise. A yoga session has a duration and an effort; it does not have a polyline. Asking a GPS chip to describe an hour of badminton produces a scribble, not data.
For the tracked four, a session shows live distance, duration and pace while it runs, with pause, resume and stop. The route is drawn on an OpenStreetMap base layer as you go, rather than waiting for a post-run summary to render. Steps come from the device's own step sensor rather than being inferred from GPS movement, which means the count keeps working when the phone is in a pocket indoors and does not collapse when a signal drops between buildings.
Goals are set by a level, not by a number you invent
The first time you open Health, the app asks two questions rather than presenting a blank target field: a goal, chosen from five options, and a level, chosen from four. That two-by-two answer produces suggested targets per activity, which you can then override. The reason for the indirection is that most people cannot pick a good weekly distance target on day one. They pick something aspirational, miss it in week two, and the streak counter turns into a record of failure. Asking what you are training for and roughly where you are starting produces a first target that is reachable, and a reachable first target is the only kind that survives contact with a real week.
After onboarding, goals live per activity — a running goal and a cycling goal are separate numbers, not one blended fitness score. Progress against them is shown as activity rings for steps, kilocalories and kilometres, plus a weekly bar chart so you can see which days you actually moved rather than only a total. Streaks count consecutive days, and because a streak is the single most motivating and most punishing number in any fitness app, it is shown next to the rings rather than as the headline.
Daily logs for the things a sensor cannot see
Not everything that matters is an activity. The app keeps daily logs for water, weight, sleep and others, entered by hand, because no phone sensor can tell you how much you drank or how well you slept. These sit alongside the workout history in the same health profile, so a week where the distance dropped and the sleep log also dropped is legible as one story instead of two disconnected graphs. The health profile itself holds the standing facts — the things that do not change day to day and should not be re-entered every session.
Kudos, and why the feed is separate from the main feed
Finished activities can appear on a community activity feed, where other people can give kudos. Kudos is a deliberately small gesture: one tap, no comment thread required, no count that means anything beyond "someone saw this". It is the fitness equivalent of a nod at the trailhead. The reason it is a separate feed rather than being dumped into the main Korat feed is that workout posts have a different rhythm to social posts — someone training five days a week would flood a shared timeline — and the main feed is ranked by its own algorithm which would fight with that volume.
When you do want a specific activity in front of a wider audience, there is a share composer. It puts your caption over a chosen background and sends the result to your Korat feed, to a story, directly to a friend in chat, or out to any other app on the phone. That last path matters: the point is not to trap the achievement inside Korat, it is to make a good-looking card out of a real recorded session and let you put it wherever you want it.
What the numbers actually are
Distance and pace come from GPS positions sampled during the session, which means they inherit GPS's normal behaviour: accuracy varies with sky view, and a route recorded under a covered market will look different from the same route in open ground. Steps come from the device's dedicated step sensor, so the step count and the GPS distance are independently sourced. Kilocalories are an estimate derived from the activity, not a measurement — no phone can measure energy expenditure, and the app presents the figure as one input among three in the rings rather than as a fact.
Health is Android-app only. The web app does not have this module, and it is a decision rather than an unfinished job: recording a session means the device tracking position continuously with the screen off, which a browser cannot really do — and a half version that loses your route halfway through is worse than an honest "open the app", because the honest one does not cost you the run.
There is no heart-rate data, and no wearable integration. Korat reads the phone's GPS and its step sensor, and nothing else. If you train with a chest strap or a watch, that data does not come into the app and the app will not pretend to know your zones.
Sessions also depend on the phone being with you and having location permission granted. The permission pre-screen explains why each Android permission is requested before the system dialog appears, and declining location simply removes the four GPS activities rather than blocking the module.
How it fits the rest of the app
Health is one module in a single app with one account. The friends who give kudos are the same friends you have in chat; a running group can be an ordinary Korat group with posts, roles and join requests, and a shared activity can be dropped straight into that group's conversation as a normal post. A group that all trains the same sport can be a sports club instead, which ranks its members from these same recorded sessions. There is no separate fitness account, no second friends list, and no third-party service holding the route data — it lives on the same backend as everything else, under the same row-level security rules. A minor's route is forced private, one of the age rules set out in the child safety standards.
- Activity types
- 12 — run, walk, cycle, hike, treadmill, swim, gym, yoga, jump rope, football, badminton, boxing
- GPS tracked
- run, walk, cycle, hike — live distance, duration, pace, route map
- Map
- OpenStreetMap, drawn live during the session
- Steps
- read from the device step sensor
- Rings
- steps · kilocalories · kilometres
- Onboarding
- one goal from 5 options × one level from 4 options
- Daily logs
- water, weight, sleep and others
- Social
- community activity feed, kudos, share composer