Adra · Data export
Your data, in files you can open.
Adra writes your diary into standard, open formats. One export for spreadsheets, one for exact restores. No account and no cloud in the middle. Portability is not a feature bolted on here. It is what no-cloud means in practice.
Two exports, two jobs
Two formats, because they answer two different questions. The CSV answers what did I eat, in a shape any spreadsheet can open. The backup answers how do I move all of this to a new phone without losing a single photo.
Both are built in, and both run without an account in the middle.
Your data is yours only if you can carry it. So Adra hands you the file.
| CSV | Backup | |
|---|---|---|
| Best for | Numbers in a spreadsheet | Moving phones and exact restores |
| What it holds | One row per logged entry | Your whole diary, database and photos |
| Range | Quick, the last 7 to 90 days, or a custom window | Everything, always |
| File | adra_export_YYYYMMDD.csv |
adra_backup_YYYYMMDD_HHMM.zip |
| Inside | Plain text, comma separated | Zip with JSON, SQLite, and images |
| Where it goes | System share sheet. Send it anywhere. | System save dialog. Defaults to Downloads. |
The CSV, down to the columns
The CSV exists for analysis, for a spreadsheet, and for anything you want to do outside the app. The meal export has one row per logged entry, with this exact header.
Date,Time,Food,Portion (g),Calories,Protein (g),Carbs (g),Fat (g),Meal Type,Confidence,Source 2026-10-12,13:05,Pasta With Meat Sauce,350.0,512,24.3,62.1,18.0,lunch,high,clip
- Dates are YYYY-MM-DD and times are HH:MM.
- Portion and macros carry one decimal. Calories are whole numbers.
- Source names the step that resolved the entry. The values are barcode, nutritionLabel, clip (photo recognition), and manual.
- Text fields are quoted when they contain a comma, so the file opens cleanly anywhere.
The CSV is a mirror for analysis. It is a snapshot you can sort, chart, or hand to anyone. It is not a restore format, and that split is deliberate. Restores use the backup, which carries more than a spreadsheet can.
The backup, unzipped
The backup is the file you keep. It is a standard zip with three parts, and every part is something other tools already understand.
adra_backup_20261012_2045.zip ├─ manifest.json ├─ data.sqlite └─ images/ ├─ 3f2ae9c1b7d4...4a1f.jpg └─ 8b4107dd2c93...be20.jpg
manifest.jsontells the app what it is looking at. Format version, app version, database schema version, a UTC export timestamp, per-table row counts, and the image count.data.sqliteis a consistent snapshot of your diary, taken while the app keeps running. Any SQLite tool on any computer can open it.images/holds every meal photo, stored uncompressed and named by its SHA-1 checksum. The file name is the content. If the bytes ever change, the restore refuses that image.
The database snapshot carries twelve tables.
meals · meal_ingredients user_foods · user_embeddings user_settings · notification_schedules food_usage_stats · portion_preferences calibration_state · calibration_events daily_behaviors · user_corrections
Not inside: the bundled food databases, which ship with the app, and device-only state that the app rebuilds by itself. Everything you created is in there, which is the point.
The backup is a plain file on purpose. It stays readable decades from now, without Adra and without a special tool.
Restore is a merge, not a wipe
Restoring is not the same as replacing. Adra merges, because a wipe would throw away the entries you logged since the backup. Every rule below is a design decision about what should win when the two sides disagree, and each one favors the data you already have.
-
Pick the zip.
Restore lives on the same screen as export, right below it, so the round trip stays in one place.
-
Adra checks it before it writes anything.
Valid zip, valid manifest, matching app version, verified image checksums, and a database integrity check. A bad file is refused whole, before a single row changes.
-
Choose what comes back.
Meals with their photos, your own dishes, settings and goals, or your history. Groups you leave out are not touched at all, so a restore can be as narrow as you want.
-
Your existing entries stay.
The confirm dialog puts it plainly. Existing entries are kept as they are, and selected settings and goals are restored from the backup. That is a deliberate choice, and it means your edits on this device win over an older snapshot. Ingredients and photo fingerprints only follow their own meal or dish, so nothing attaches to the wrong food.
-
Repeat it safely.
Importing the same backup twice adds nothing the second time. Images are added by checksum, so duplicates are skipped, and the second import is harmless.
If a backup comes from a different app version, Adra says so and asks you to update first. Nothing is written until every check passes. The gate is strict on purpose, because it means a restore either lands cleanly or does not run at all.
Honest limits
-
The backup is not encrypted.
It is a plain file, by design, so it stays readable decades from now without special tools. That openness is the trade. Keep it somewhere you trust.
-
No automatic cloud backup.
Adra never uploads your diary. The same architecture that keeps your data private also means backups happen when you make them, not on a schedule you cannot see.
-
CSV is one-way.
Spreadsheets cannot be re-imported. The CSV is for reading and analysis, and the backup zip is the restore path. The two are kept separate so neither has to compromise.
-
An old backup may need a newer app.
If the database schema moved on, the restore asks you to update Adra first, then run it again. The backup stays valid, and the app catches up to it.
FAQ
Can I open the backup on a computer?
Yes. It is a standard zip. Inside you find a JSON manifest, a SQLite database that any SQLite tool can open, and your photos as ordinary image files.
Where does the exported file go?
CSV goes through the system share sheet, so it can go into a spreadsheet app, an email, or cloud storage. The backup goes through the system save dialog, which defaults to your Downloads folder.
Does restoring overwrite anything?
Your logged entries stay as they are. Settings, goals, and reminder schedules that you select come from the backup. Images are added by checksum, so duplicates are skipped.