Product Updates
October 2025 product update: Supabase as a data destination, and athlete profiles from every source
October 2025: Supabase joins Terra's data destinations, athlete profile fields arrive from every mobile SDK, and glucose readings carry the user's own time zone.
TL;DR: If you build on Supabase, your users' health data can now land in your Postgres tables directly, with no relay of your own in between. Athlete profile fields such as maximum heart rate and functional threshold power now come through from every source Terra supports, including Apple Health, so a training app no longer has to ask the user to type them in. And continuous glucose readings now carry the time zone the reader was actually in, which is what you need before you can put a glucose curve next to a meal log.
Send health data straight into your Supabase project
Supabase is now one of the places Terra can deliver to. You connect your project from the Terra dashboard using Supabase's own sign-in flow, which means you are not copying a database password into a form and you are not opening your Postgres instance to the public internet. Once the connection is made, every payload Terra produces for your users is written into your tables as it arrives.
The reason this matters is that the piece in the middle costs more engineering time than it looks like it should. A service whose only job is to receive a webhook, verify the signature, parse the body and write the rows still has to be deployed, monitored, scaled and owned by someone on your team. Writing to the database directly removes that whole category of work permanently, and it removes it on day one rather than at the point where the volume forces the question.
The full setup walkthrough, including what the tables look like and how to handle the initial historical load, is in the Supabase destination guide. It sits alongside the other destinations Terra can write to, which include webhooks, your own Postgres or MySQL database, and object storage such as S3 and Google Cloud Storage.
Athlete profile fields now arrive from every source, including Apple Health
The athlete payload is the small set of facts about a person that do not change day to day but that almost every training calculation depends on: maximum heart rate, resting heart rate, functional threshold power (which is the wattage a cyclist can sustain for roughly an hour, and the number most cycling training plans are built around), VO2 max, and the heart rate zone boundaries the person's own device is using.
Athlete data is read consistently across the source catalogue, and it now includes Apple Health through the iOS SDK alongside the other mobile SDKs. If the user's watch or app knows the number, Terra passes it to you.
Having these fields reliably is what lets you compute a zone-based training load without asking the user for anything. Maximum heart rate is a question most people cannot answer, and every extra onboarding question costs you users, so a number that arrives on its own is worth more than its size suggests.
Continuous glucose readings now carry the reader's own time zone
Glucose data from a continuous glucose monitor, which is the small sensor worn on the arm that reports a blood sugar reading every few minutes, is only useful in relation to when things happened. A reading of 9 mmol/L is unremarkable after lunch and worth a look at four in the morning. That distinction depends entirely on knowing what the local clock said when the reading was taken.
Glucose samples now carry the time zone offset that applied at the moment of the reading rather than being handed over in a single fixed zone. For a user who travels, or who crossed into or out of daylight saving time during the period you are charting, the reading stays anchored to the clock they actually lived by, which is what makes a glucose curve line up against a meal log, a workout or a night's sleep.
Also in October
Daily step counts are now computed from the underlying step samples when a source reports the samples but no daily total, so a step count appears for more users on more days.
Body composition from Polar is now collected on its own schedule, so weight, body fat and muscle mass readings reach you as soon as they are recorded.
Every connection attempt now carries a session identifier through the whole authentication flow, so any individual connection can be traced end to end, from the moment your user opens the widget to the moment the provider grants the token.
If you are new to Terra, the Unified API quickstart takes you from an API key to a first connected user and a first payload.