tinycarousel
Open the app

Privacy policy

Last updated 26 October 2026. tinycarousel turns your photos into social carousels. This page says what happens to your data, in the order that matters.

Who we are

tinycarousel is run by TINYCAROUSEL LTD, a company registered in England and Wales (company no. 17455571). Registered office: 29 Victoria Road, Ramsgate, CT11 8PP, United Kingdom. For privacy questions, TINYCAROUSEL LTD is the data controller. Contact: hello@tinycarousel.com.

Your photos stay on your device

The photos you add are read by your browser and drawn onto a canvas there. They are never uploaded to us and we never store them.

So you can pick up where you left off, the app keeps your five most recent carousels as drafts in this browser's own storage: the slides, their text and settings, and a smaller copy of each photo. They never leave the device. Delete one from the start screen, or clear this site's data in your browser to remove them all. If you install the app, it also keeps a copy of its own pages for offline use, and photos you share into it from another app are read straight from the device and are not sent to us. If you tap Save as my style, the look you chose, your brand colours and a small copy of your logo are kept in this browser too, and also never leave it.

There is one exception, and you control it. When you ask the app to write your slides, downscaled copies of the photos you picked are sent through our server to Google's Gemini API, which needs to see them to write about them. If Google's service is down or refuses the request, the same copies go to Meta's Llama model running on Cloudflare Workers AI instead, so the slides can still be written. We do not keep those copies. Google and Cloudflare each handle them under their own terms. If you turn on "Don't send my photos to the AI" on the start screen, no image ever leaves your device and the slides are written from your topic alone, and from your page if you started from a link. Photos you add later, inside the editor, are never sent at any point.

Starting from a link. On the Creator plan you can paste a link to a page, such as your own blog post, so the slides are written from it. Our server fetches that page, takes its title, summary and text, and sends them to the AI with your request, in the same way as your topic. With your own photos, only the words are used. If you choose From a link, the page's own pictures are fetched through our server too, so your browser can put them on the slides, and small copies of them go to the AI so it can match them to the slides. We do not keep the link, the page or its pictures. Pictures on a page belong to whoever published it, so use pages whose pictures you have the right to post.

YouTube videos. If the link is a YouTube video, our server gets its title, channel and description from YouTube, and its cover and three snapshots that YouTube makes from it. Google's Gemini is given the video's public address and watches up to its first 15 minutes to write the slides. If Gemini cannot, the slides are written from the title, description and snapshots, by Gemini or, if Gemini is down, by Llama on Cloudflare Workers AI. We do not keep the video's address, its details or its pictures.

Finished slides, only when you publish

If you post or schedule a carousel, your browser renders the finished slides and uploads those images to our storage. This is the only way a social platform can receive them. Instagram in particular will not accept image data from us at all and insists on fetching each image from a web address, so we serve them over a link that is signed and expires.

These are the finished slides, not your original photos. They are deleted after the post goes out. A scheduled post keeps its slides in storage until its time comes, then they are deleted the same way. Cancel a scheduled post and they are deleted at once.

Your account

You can use tinycarousel without an account. Uploading, generating, editing and exporting all work signed out.

If you sign in with Google we store your Google account identifier, email address, name and profile picture address. We use these to know who you are and nothing else. Your session is a random token in a cookie, and we store only a hash of it, so someone reading our database cannot sign in as you.

While you are signed out, we count how many AI requests come from your network each day so the free tier cannot be drained by one visitor. That count is stored against a hash of your IP address, never the address itself, and it is not linked to anything else.

Counting, not tracking

We keep our own totals so we can see whether anyone is using this: how many times each page was opened per day, from which country, and from which site the link was followed. Each page tells our server once that it opened, and that is the whole message: which page and which site linked to it, no identifier and no cookie. Those are numbers in a table, with nothing in them about you. To count how many different people came in a day, the server keeps for that day only a keyed hash of your address, which cannot be turned back into the address, and deletes it the next day once the total has been written down. The same tables record how many AI requests were made and what they cost. None of this is shared with anyone and no third party is involved.

Inside the app we also count a few steps, so we can see where people get stuck: opening the app, adding photos or a link, starting from today's idea or a template, getting slides (or the AI failing), changing the look or adding a sticker, exporting (which kind, and for which platform), sharing, turning on the brand kit, installing the app and sharing photos into it. Each is just the name of the step. Nothing about your photos, your words, your topic, the link you used or your account is in it. Along with the names the app sends whether you are signed out, on the free plan or on Creator. The server works out from your browser's description only whether you are on a phone or a computer, and keeps just that word. Your address is not stored with these counts. To stop one person flooding them, the server checks a per-day keyed hash of your address against a daily limit, and deletes that hash after two days.

To count how many different people reached each step, your browser makes up a random code each day, keeps it in its own storage and replaces it the next day. It is not a cookie, nothing else reads it, and it does not link one day to the next. The server keeps a keyed hash of that code for the day only, turns it into a total once the day is over, and deletes it. What remains is a daily number per step, device type and plan. If your browser sends Do Not Track or Global Privacy Control, the app sends none of this.

Analytics, if you allow it

The first time you visit, we ask whether we can count your visit with Minilytics, an analytics service we run ourselves at minilytics.tinycarousel786.workers.dev. Nothing loads until you say yes, and if your browser sends Do Not Track or Global Privacy Control we take that as a no and do not ask.

If you allow it, the page loads its script from that address and it sets two cookies on tinycarousel.com: one that tells your visits apart, kept for a year, and one for the current visit, kept for 30 minutes. It records the pages you open, the site that linked to you, your screen width, how long the page was open and which of our buttons you pressed. If you are signed in it also records your account's internal number, never your email or name. If you buy the Creator plan, the two cookie values go to Dodo Payments with the order, so we can see which link led to the payment. None of this is sold or shared, and your photos and your words are never part of it.

Connected social accounts

When you connect LinkedIn, Instagram, Facebook or TikTok, we receive an access token that lets us post on your behalf. Tokens are encrypted before they are stored, using a key held only by our server, and they are never sent to your browser. We ask for the narrowest permissions that allow posting.

You can disconnect an account at any time from the start screen. Removing tinycarousel from inside Instagram works too: Instagram tells us, and we mark the connection dead so nothing can post with it.

Payment

Paid plans are handled by Dodo Payments, which is the merchant of record. Your card details go to them and never reach us. We store the customer and subscription identifiers they give us, so we know which plan you are on. If you allowed analytics, the order also carries your two Minilytics cookie values, as described above.

Advertising

The free version is designed to be paid for by ads. No advertising script is currently loaded, and while none is configured no request goes to any ad network. If that changes, Google AdSense will set its own cookies and you should read Google's policy for what it does with them. Your photos are never involved in advertising in any case.

What we do not do

Deleting your data

To remove a connected social account, disconnect it on the start screen, or remove tinycarousel from that platform's own settings. For Instagram that is Settings, then Website permissions, then Apps and websites. Either way we delete the connection and everything scheduled through it, and you can check the status at /data-deletion.

To delete your tinycarousel account and everything attached to it, sign in and use your account page. It removes the account, the connected accounts and their tokens, anything scheduled, and any slides still in storage, at once and for good. The same page ends every session on every device. If you would rather we did it, write to privacy@tinycarousel.com from the address you signed up with.

Children

tinycarousel is not intended for anyone under 13, and we do not knowingly collect data from children.

Changes and contact

If this policy changes in a way that affects what we do with your data, the date at the top changes with it. Questions go to privacy@tinycarousel.com.