Security and your data
The safest data is the data we never received
Most of this page is about how we protect what you send us. The first section is about how little that is.
Your recordings stay on your machine
The desktop app runs on the PC that is already recording. It cuts there. What crosses the network is short segments around scored moments and a compressed audio track for transcription.
- Uploading the full recording is a setting, and it is off unless you turn it on.
- When it is on, it runs in hours you choose and throttles if you are recording.
- A stream you would never hand to a third party can still be clipped.
- The desktop app is the only component that ever sees the whole file.
Separation
Workspaces are separated in the database, not in the code above it
Every tenant-owned table carries row-level security policies in Postgres. A query that forgets its workspace filter returns nothing rather than returning someone else’s stream.
- Enforced by the database
- Application code is where isolation bugs come from. Putting the policy one layer below the code means a mistake in a route handler is a failed query, not a leak.
- Tested as a boundary
- The isolation tests enumerate the tenant-owned tables and check each one. The data export is generated from that same list, so it cannot go out of date as the product grows.
- Roles inside a workspace
- Owner, admin and member. Nobody can invite someone at a higher role than their own — an admin cannot create an owner — and changes are recorded in an audit trail.
- Devices belong to one workspace
- A paired capture PC holds a long-lived credential in the Windows credential manager rather than a file on disk. Pairing codes are single-use and expire after ten minutes.
- Platform access is revocable
- Tokens for Twitch, YouTube, Kick, TikTok and Instagram are held so we can read chat and post on your behalf. Disconnecting a platform revokes our access immediately.
- Your session
- The dashboard talks to the API through this site’s own origin, so the session token is not readable by script in the page, and anything that changes state carries a double-submit CSRF token.
Retention
Storage expires on its own
These are lifecycle rules on the storage account rather than an intention to tidy up later. Nothing has to remember to run.
Account and workspace records are kept until you delete the workspace. Chat messages from your viewers belong to people who are not our users; they are held only as long as the stream data they belong to, and go with it.
| Data | Deleted after |
|---|---|
| Audio used for transcription | 1 day |
| Full recordings, if you turned archiving on | 30 days |
| Uploaded segments and preview proxies | 30 days |
| Finished clips | 180 days |
Getting it out, or getting rid of it
Both are buttons, not requests
Export and deletion are in the product under Settings → Privacy, on every plan including the free one.
- Export
- Everything your workspace owns, as one file. Generated from the same table list the isolation tests run against, so it stays complete as the product grows.
- Deletion, with seven days to change your mind
- Scheduling erasure starts a seven-day window in which you can cancel. It is irreversible afterwards, and this kind of request is sometimes made in anger or by mistake.
- Rights
- If you are in Quebec, the EU or the UK you have rights of access, correction, portability and erasure. Those two controls are how we honour them, and privacy@aftercast.live works too.
Where it goes
Who else sees any of it
We do not sell data and we do not use it to train models. It reaches other companies only where the product cannot work otherwise.
- Microsoft Azure
- Hosting, storage and databases, in the Canada Central region. Encrypted at rest.
- Azure OpenAI
- Transcription and text suggestions such as titles and captions. Sent per request, not retained for training, and running in East US 2 — the one part of the system outside Canada.
- The platforms you link
- Twitch, YouTube, Kick, TikTok and Instagram receive only what that platform needs to serve your channel or accept a post — and only the ones you connected.
- Discord
- Only if you configure a webhook, and only the notification content.
- Resend
- Transactional email. Recipient address and message only.
- 7TV, BetterTTV, FrankerFaceZ
- Emote metadata for your channel. No personal data.
The full detail, including what we hold about your account, is in the privacy policy.
Reporting a problem
Tell us before you test it
Security research is welcome. Write to security@aftercast.live before you start rather than after — the terms ask for that so a test does not read as an intrusion to whoever is on call.
What this page does not claim
No certification, no audit report, no compliance badge. Aftercast is early software and holds none of those. What it does have is a specific architecture — the footage stays with you, isolation is enforced by the database, and storage expires on a timer — all of which is checkable rather than asserted.
The part you can verify yourself
Install the desktop app, start recording, and watch your network. What leaves the machine is segments and an audio track, not a stream.
Free plan, no card. You need OBS 28 or newer on Windows 10 or 11.