Back to the playmat

Privacy

Last updated

TaleCraft makes bedtime picture books for young children. A grown-up sets it up, and a child picks the hero, the place and the mood. This policy explains what TaleCraft keeps on your iPhone, what leaves it, who receives it, how long it is kept, and how to delete it.

The short version

  • No account, no ads, no tracking. TaleCraft has no sign-in, shows no ads, contains no analytics or advertising SDKs and never shares data for advertising.
  • Nothing is sent until a grown-up says yes. Before the first story made with AI, a one-time screen for grown-ups says what is sent and to whom. Saying yes needs the grown-ups' gate. Without a yes, TaleCraft's own story library works, offline too, and is read in the iPhone's own voice. Nothing is sent.
  • Stories are made on TaleCraft's own server, in the EU. It asks OpenAI to write and paint the story and, only when a story is read aloud in TaleCraft's voice, ElevenLabs to read it.
  • The server keeps a story for 30 days after it reaches your iPhone, then deletes it. Your books stay on your iPhone.
  • Short memories stay until you delete them, or until 12 months pass without a new story, so friends and places can come back in later stories. “Forget everything” in the grown-ups' corner deletes them all.
  • The microphone recording never leaves the iPhone. A spoken wish is turned into words on the device. Only the words are sent.

Who we are

TaleCraft is made by Caffeinated Code (Vedran Burojević), in Croatia. We decide how the information described here is used, which makes us the “controller” under the GDPR. You can reach us at support@caffeinatedcode.co or through talecraft.app/support.

What stays on your iPhone

These are kept on the iPhone and are never sent anywhere by themselves:

  • each child's profile: first name, age and the looks you chose (hair, skin tone, eyes, glasses, favourite colour, things they love, and pronouns if you set them). There are no photographs.
  • the books on the shelf, with their pictures and read-aloud audio, and your settings (bedtime hours, language, voices, story length).
  • a short diagnostics log of the last three stories (timings, error types, what became of the pictures; no story text and no names). It leaves the iPhone only if you share it yourself from the grown-ups' corner.
  • microphone audio. Speech is turned into words on the iPhone, using Apple's on-device speech recognition. The recording is never saved or sent.

The Home Screen and Lock Screen widget shows tonight's plan, including the child's name, and stays on the device.

Deleting the app deletes all of this. Information already on our server is handled as described below.

What leaves your iPhone

Only after a grown-up has said yes to stories made with AI. You can turn this off at any time in the grown-ups' corner (“Stories made with AI”).

TaleCraft's story server (Convex, in the EU)

Our server runs on Convex, a hosting service, in Amazon Web Services eu-west-1 (Ireland). For each new story it receives:

  • your child's first name, age and looks (as listed above), and an anonymous ID for that child profile, so memories stay with the right child;
  • tonight's choices: hero, place, mood, surprise and length, the friend asked back, the story continued or the place returned to;
  • the child's wish or own words, if any (as text);
  • your story preferences from the grown-ups' corner (what to lean into or avoid, and whether villains, scary moments or sadness are allowed);
  • the story's language.

It also receives:

  • the text of a page to be read aloud, when a story is read in TaleCraft's voice;
  • the words of a wish your child says in the builder, to sort them into the parts of a story;
  • renamed, kept or forgotten friends and forgotten places, when you change them;
  • a friend from a story made on your iPhone before stories moved to our server, the first time a new story asks them back: their name, kind, look and personality, which child profile they belong to (its anonymous ID) and how many stories they are in. No picture of them is sent. From then on they are kept like any other friend;
  • an anonymous customer ID (from RevenueCat, see below), which our server uses to keep each family's stories apart, and to check and charge stories;
  • an Apple App Attest key, which proves the request comes from the real TaleCraft app;
  • the notification token for your iPhone, only if you allow “your story is ready” notifications;
  • a Live Activity token for each story being made, only if Live Activities are on for TaleCraft. It lets our server move the “Tonight's story is being made” card on your Lock Screen while the iPhone is locked. The card shows only how far the story has got (writing page 4 of 10, adding the pictures, ready); never its title, a name or any story text.

The server does not keep the microphone recording (it never receives it), photographs (there are none) or the child profile itself.

How long the server keeps it

What the story server keeps, and for how long
WhatHow long
Each story: the request above, its text, its pictures, its read-aloud audio and its progress30 days after the book reaches your iPhone, then deleted. A story that never reached the iPhone (it failed or was cancelled) is deleted 30 days after it last changed.
Read-aloud audio for a book the server doesn't hold (for example, a book made on the iPhone)30 days after it was made.
Story memories: each story's title, a short summary (it can include your child's first name), one sentence a next chapter could pick up, up to five things that mattered in it, and its place, world and charactersUntil you delete them, or 12 months without a new story. Deleting a book deletes its memory. “Forget everything” deletes all of them.
Places a story can go back to: name, short description, world, how often visitedUntil you delete them (forget a place in the builder, or “Forget everything”), or 12 months without a new story.
Friends (characters from the stories): name, kind, look, personality, and a picture of them taken from a page of their first story (the page may also show your child's drawn character), plus a clay portrait of a friend your child keptUntil you delete them (forget the friend, or “Forget everything”), or 12 months without a new story, pictures included.
Your yes to stories made with AI (the version you agreed to and when)Until you turn stories made with AI off, the app asks you again because what is sent has changed, or 12 months without a new story.
The App Attest key (key ID, public key, Apple's receipt, a counter, the anonymous customer ID)12 months without a new story. The app makes a new key the next time it needs one.
The notification tokenUntil Apple reports it invalid, or 12 months without a new story. We keep the 10 most recent per family.
A Live Activity token (one per story being made, with the story's ID)Until that story's card ends (usually minutes). Also deleted with the story, by “Forget everything”, when Apple reports it invalid, or after 12 months without a new story.
A record of each story charged (story ID, anonymous customer ID, time, whether it was given back) and of the yearly plan's monthly storiesKept as purchase records. They hold no story text and nothing about your child.
A cost record per AI request (which service and model, how much text or how many pictures, the cost, how long it took, whether it worked, the story ID and the anonymous customer ID)Kept as cost records. “Forget everything”, or 12 months without a new story, removes the customer ID from them; the costs stay, with no link to your family.
Rate-limit countersShort windows, from minutes to a day.

“12 months without a new story” counts from your family's last new story. Keeping, renaming or letting go of a friend, or a grown-up's yes to stories made with AI, also starts the 12 months again; opening the app, reading a book or having it read aloud does not. After that, the server deletes your family's memories, places and friends (with their pictures), your yes to AI, the App Attest key and the notification token on its own, and takes the customer ID off the cost records. The books on your iPhone stay.

Who else receives it

OpenAI (writes and paints)

Our server sends OpenAI what it needs to write, check and paint a story: your child's first name, age and looks, tonight's choices, any wish or own words, your story preferences, the friends asked back, and short memories of earlier stories when a story continues one or goes back to a place. OpenAI also reads the finished story to check it is gentle enough for bedtime, and to write its short memory. To paint, it receives descriptions of each scene and earlier pictures of the same characters. Picture requests never include your child's name: it is removed before they are sent. Our text requests ask OpenAI not to store them.

ElevenLabs (reads aloud)

Only when a story is read aloud in TaleCraft's voice, our server sends ElevenLabs the text of each page, with the voice and language. The text can include your child's first name. The read-aloud voices are made by AI; they are not recordings of a person. When the iPhone's own voice reads, nothing goes to ElevenLabs.

RevenueCat (purchases)

RevenueCat manages TaleCraft Plus and story packs. The app gives it an anonymous customer ID that it creates on this install. It receives your App Store purchase records and keeps what you bought and how many stories you have left. Our server tells it when a story is used or given back. RevenueCat is told nothing about your child.

Apple

  • App Store purchases are made with Apple. We never see your payment details.
  • App Attest: the iPhone asks Apple to vouch that it runs the real TaleCraft app.
  • Notifications: if you allow them, Apple's push service delivers “your story is ready” or “your story needs a grown-up”. The notification carries only the story's ID and the wording's key. No title, no name and no story text.
  • Live Activities: if they are on, Apple's push service also delivers the updates of the “Tonight's story is being made” card: the stage, and which page of how many, and nothing else.
  • Speech recognition runs on the device.

Where the data goes

Our server is in the EU. OpenAI, ElevenLabs and RevenueCat are based in the United States, so what they receive is transferred outside the EU and EEA.

Children

TaleCraft is made for children aged about 3 to 6, used with a grown-up.

  • A grown-up decides whether stories are made with AI. Saying yes goes through the grown-ups' gate (hold the star, then type the answer to a sum). Purchases, settings and links that leave the app are behind the same gate.
  • Only a first name is asked for, and even that can be left blank. There are no photographs, no accounts, no messaging, no ads and no tracking.
  • The microphone listens only while it is lit. The recording never leaves the iPhone.
  • Every story is checked by a second AI review before it is shown, and stories that fail that check are never shown.

Deleting your information

  • One book: delete it from the shelf. Its memory is deleted from the server too. The story itself, if the server still holds it, is deleted when its 30 days are up.
  • One friend or one place: forget it in the grown-ups' corner (friends) or the builder (places).
  • Everything the server keeps for your family: grown-ups' corner, Start fresh, “Forget everything”. It deletes every story, picture and read-aloud recording the server still holds, and every memory, place and friend, at once. Stories in progress are stopped. Books already on your iPhone stay. Cost records lose their link to your family. Your yes to AI, the App Attest key, the notification token and purchase records are kept, because they are not your stories.
  • Automatically: when your family makes no new story for 12 months, as described above.
  • Stop sending: turn off “Stories made with AI” in the grown-ups' corner. Nothing more is sent, and our server deletes your recorded yes. Turning it off does not delete what the server already keeps; use “Forget everything” for that.
  • “Let every story drift away” (grown-ups' corner, Start fresh) deletes every book on this iPhone, and the memory of each one on the server.
  • Deleting the app deletes everything on the iPhone. It cannot reach the server, so tap “Forget everything” first if you want the server's memories gone at once. Otherwise stories are deleted after their 30 days, and memories, places and friends 12 months after your family's last new story.
  • By email: our server knows your family only by an anonymous ID. In the grown-ups' corner, About shows your support code. Tap Copy, paste it into an email to support@caffeinatedcode.co and ask for your data to be deleted. We delete everything our server keeps for your family, as “Forget everything” does, and also your recorded yes to AI, the App Attest key and the notification tokens. Without the code we can't tell which family's data is yours.

Your rights

Depending on where you live, you may have the right to access, correct, delete or receive a copy of your information, to object to or restrict its use, and to withdraw consent at any time. Most of these you can use in the app (above). For anything else, write to support@caffeinatedcode.co. You can also complain to a data protection authority.

Security

The app talks to our server only over HTTPS. Every request about stories, voices, friends and memories carries a short-lived session that Apple App Attest vouches for, tied to the anonymous customer ID, so one family can never read another family's stories or memories. Read-aloud recordings are kept per family, never shared between families.

This website

This website uses Vercel Analytics for cookieless, aggregate visit statistics and Vercel Speed Insights to measure page performance. They do not identify you to us or track you across other websites. If you email us, we receive your email address and the message so we can help you.

Changes

If this policy changes, we update it here and change the date at the top. If a change affects what is sent when stories are made with AI, the app asks a grown-up again before the next story made with AI, and nothing is sent until they answer.

Contact

TaleCraft is made by Caffeinated Code, Vedran Burojević, in Croatia. Write to us at:

support@caffeinatedcode.co