Blitz Kit
Begin nou

Hierdie ontplooiing wys steeds plekhouer-maatskappybesonderhede. Stel die regsentiteit-omgewingsveranderlikes in config/legal.ts voordat u hierdie bladsye publiseer.

Privaatheidsbeleid

Laas hersien

Hoe ons u persoonlike inligting insamel, gebruik, deel en beskerm, en wat u daaromtrent kan doen. Geskryf vir die Wet op die Beskerming van Persoonlike Inligting 4 van 2013 (POPIA).

Wie is verantwoordelik vir u inligting

Ons is die verantwoordelike party vir die persoonlike inligting wat in hierdie beleid beskryf word. Ons maatskappybesonderhede en die naam van ons Inligtingsbeampte verskyn onderaan hierdie bladsy.

Hierdie beleid dek die diens waartoe u deur hierdie webwerf en toepassings toegang kry. Dit dek nie ander maatskappye se webwerwe waarheen ons skakel nie; sodra u vertrek, geld hulle beleide.

Wat ons insamel

Ons samel in wat ons nodig het om die diens te bedryf en niks waarvoor ons geen gebruik het nie. Die tabel hieronder word uit ons werklike stelselkonfigurasie gegenereer eerder as met die hand geskryf, sodat dit die kategorieë lys wat ons stelsels werklik verwerk.

Ons samel nie spesiale persoonlike inligting in (soos gesondheids-, geloofs- of biometriese data) of die persoonlike inligting van kinders nie, en die diens word nie aan mense onder 18 aangebied nie.

KategorieWat dit betekenGedeel met
account-identifiersU naam, e-posadres en die rekeningidentifiseerders wat ons vir u skep.xneelo Cloud (Johannesburg), Resend, Trigger.dev (self-hosted, Johannesburg), Cloudflare R2, Hetzner Object Storage, PostHog (EU cloud), Sentry (EU org), Paystack, Lemon Squeezy, Meta (WhatsApp Business Cloud API), GitHub, Discord
contentWat u skep, oplaai of stuur terwyl u die diens gebruik, insluitend boodskapinhoud en lêers.xneelo Cloud (Johannesburg), Resend, Cloudflare R2, Hetzner Object Storage, Anthropic, OpenAI, Groq, Meta (WhatsApp Business Cloud API)
payment-metadataBedrae, geldeenhede, verwysings en intekenstatus. Ons ontvang of stoor nooit u kaartnommer nie.xneelo Cloud (Johannesburg), Paystack, Lemon Squeezy
none-piiInfrastruktuur wat verkeer dra of werk skeduleer sonder om inligting oor u te sien.Cloudflare (DNS/TLS proxy), Upstash QStash
delivery-metadataOf 'n boodskap wat ons gestuur het afgelewer is, teruggebons het, of oopgemaak is waar dit gemeet word.Resend, Meta (WhatsApp Business Cloud API)
usage-analyticsBladsye wat besoek is en produkgebeurtenisse. Saamgevoeg en pseudonimies tensy u tot persoonsgebonde ontleding instem.Plausible Analytics, PostHog (EU cloud)
diagnosticsFoutspore en tegniese logs wat geskep word wanneer iets verkeerd loop.Sentry (EU org)

Waarom ons dit verwerk, en op watter grondslag

Om die diens te lewer waarvoor u geregistreer het: om u rekening te skep en te beveilig, die produk te lewer, betalings te verwerk en die boodskappe te stuur waarvan die diens afhang, soos kwitansies, wagwoordherstellings en sekuriteitswaarskuwings. Hierdie verwerking is nodig om ons kontrak met u na te kom.

Om die diens veilig en werkend te hou: misbruik op te spoor, voorvalle te ondersoek, foute reg te stel en ons eie regsverpligtinge na te kom, insluitend belastingrekordhouding.

Waar ons op u toestemming staatmaak — direkte bemarking, opsionele KI-funksies en persoonsgebonde ontleding — kies u, en u kan van gedagte verander. Om toestemming terug te trek stop die verwerking wat dit gedek het; dit maak nie verwerking ongedaan wat reeds regmatig plaasgevind het nie.

POPIA a.11 bepaal die gronde waarop persoonlike inligting verwerk mag word. Waar ons op 'n regmatige belang staatmaak, het ons oorweeg of dit deur u belange oorskadu word, en u mag beswaar maak.

Wie anders u inligting verwerk

Ons gebruik die operateurs hieronder om die diens te bedryf. Elkeen word genoem met wat dit doen, waar dit data verwerk, en watter kategorieë inligting dit ontvang. Hierdie lys word uit ons konfigurasie gegenereer — as ons 'n verskaffer verander, verander hierdie bladsy saam.

Application compute and the primary database run in South Africa. Every offshore sub-processor is named below, justified, and swappable.

ProviderPurposeRegionData sharedWhy / safeguards
xneelo Cloud (Johannesburg)Application hosting and primary databaseSouth Africaaccount-identifiers, content, payment-metadataSouth African company operating a single region and availability zone in Johannesburg, so application compute and the primary database run in-country. Be precise about what that is and is not: the in-country claim rests on that single-region architecture, not on a contractual residency guarantee — xneelo publishes none, and their group includes a non-SA entity. Data-processing terms come via their Terms of Service. No POPIA certification is claimed, because no certification scheme exists.
Cloudflare (DNS/TLS proxy)DNS, TLS termination and DDoS protectionUnited Statesnone-piiTraffic transits JNB/CPT edge POPs; only connection metadata is processed, no stored PII. Covered by DTA schedule (transit clause).
ResendTransactional email deliveryUnited Statesaccount-identifiers, delivery-metadata, contentAll Resend account data, message metadata and logs are US-stored regardless of send region. Necessary for performance of the user relationship (s.72(1)(b)) and contracted via DTA.
Trigger.dev (self-hosted, Johannesburg)Background jobs and scheduled tasksSouth Africaaccount-identifiersSelf-hosted on the same Johannesburg box; job payloads never leave SA.
Upstash QStash(optional)Pure-cron scheduling alternative (docs/jobs.md)United Statesnone-piiOnly receives schedule 'ticks' — endpoints and cron expressions, never payload data (runDueJobs pattern keeps data on-box).
Cloudflare R2File storage — default adapter (lib/storage/r2.ts, prompt 20)United Statescontent, account-identifiersCloudflare, Inc. is US-incorporated. A bucket jurisdiction hint constrains where objects rest but NOT who operates them, so US legal process still reaches the operator regardless of the region chosen. Uploads may contain PII; contracted via DTA. Chosen for zero egress fees.
Hetzner Object Storage(alternative)File storage — documented swap adapter (lib/storage/hetzner.ts, prompt 20)European Unioncontent, account-identifiersEU-hosted (Falkenstein/Nuremberg/Helsinki) under a GDPR-adequate regime. It is an unrelated third-party processor with no relationship to the Johannesburg compute, so it adds a processor rather than consolidating one; the only thing it buys over R2 is an EU rather than a US operator. Files still leave South Africa: this reduces the transfer's reach, it does not eliminate the transfer.
Plausible AnalyticsWeb analyticsEuropean Unionusage-analyticsCookieless and pseudonymous by design (no persistent identifiers); EU-hosted (GDPR-adequate regime).
PostHog (EU cloud)Product analytics, feature flags, session replayEuropean Unionusage-analytics, account-identifiersEU-region cloud selected at project creation; US parent company disclosed. Replay masks inputs by default. Contracted via DTA + PostHog DPA.
Sentry (EU org)Error monitoring (optional — inert with no DSN, prompt 36)European Uniondiagnostics, account-identifiersEU data-storage org — Frankfurt, region code `de`. The location is chosen at ORG CREATION and is irreversible; the only way to change it is to create a new organisation. IMPORTANT CAVEAT: only telemetry (errors, spans, replays, source maps) is EU-stored. User accounts, organisation settings, auth tokens and SSO metadata are stored in the US regardless of the region selected. The kit sends no PII by default (sendDefaultPii: false; URLs are query-stripped before send), so what crosses the border is diagnostics. Browser beacons are proxied first-party via a Cloudflare Worker on SA POPs (JNB/CPT/DUR) — that is ad-blocker and DNS-filter resilience, not a change of destination: the envelope still lands in Frankfurt. US parent disclosed; DPA + DTA.
AnthropicAI inference (primary provider, prompt 21)United StatescontentUS inference disclosed to users at the AI feature surface; zero-data-retention configuration documented (prompt 21). Consent-based ground (s.72(1)(a)) for AI features.
OpenAI(optional)AI inference (fallback provider)United StatescontentSame treatment as Anthropic; only active when configured.
Groq(optional)AI inference (fast/cheap fallback)United StatescontentSame treatment as Anthropic; only active when configured.
PaystackPayments (SA default provider)South Africaaccount-identifiers, payment-metadataSA-licensed acquirer processing rand transactions locally; card data never touches the kit (hosted checkout).
Lemon Squeezy(optional)Global/USD sales via merchant of record (lib/payments/providers/lemonsqueezy.ts, ADR 003)United Statesaccount-identifiers, payment-metadataUS merchant of record for USD sales: the seller of record for the purchases it processes, while the kit transmits the buyer's email and user id at checkout creation and receives subscription and payment metadata on webhooks. Necessary for performance of the sale (s.72(1)(b)) — Stripe still does not settle to SA entities (ADR 003), and rand sales stay in-country with the SA default provider.
Meta (WhatsApp Business Cloud API)(optional)WhatsApp notifications (prompt 34)United Statesaccount-identifiers, content, delivery-metadataCloud API hosts message processing on Meta infrastructure; opt-in channel — users consent via <WhatsAppOptIn /> (s.72(1)(a)).
GitHub(optional)Licence delivery — organisation team membership grants read on a tier's delivery repository (lib/fulfilment/github.ts, ADR 005 Decision 2)United Statesaccount-identifiersGitHub, Inc. (a Microsoft subsidiary) is US-incorporated and stores organisation and membership data in the United States. The buyer supplies a GitHub username at checkout and fulfilment adds it to the team matching their tier, so GitHub holds the mapping between a paying customer and their access — and organisation membership is visible in ways people do not always expect. Necessary for performance of the sale (s.72(1)(b)): the repository cannot be delivered without it, which is also why the ground is contract and not consent.
Discord(optional)Community access — a tier role assigned from the licence record (lib/fulfilment/discord.ts, business/discord-runbook.md §7)United Statesaccount-identifiersDiscord, Inc. is US-incorporated and stores member data in the United States. A buyer who supplies a Discord handle at checkout has it linked to their licence tier, and the role that results is visible to every other member of the server — so the transfer discloses not just who they are but what they bought. Consent-based (s.72(1)(a)) and not contract, which is the difference from GitHub above and is load-bearing: the handle is OPTIONAL at checkout, the community is a benefit rather than a delivery mechanism, and a buyer who leaves it blank still receives everything they paid for.

Inligting wat Suid-Afrika verlaat

Ons toepassing en sy primêre databasis loop in Suid-Afrika. Sommige van die operateurs hierbo is buite die land, en die tabel sê watter en waarom.

POPIA a.72 beperk die oordrag van persoonlike inligting buite Suid-Afrika. Waar ons dit doen, steun ons op kontraktuele beskerming met die ontvanger wat 'n vergelykbare vlak van beskerming vereis, daarop dat die oordrag nodig is om ons kontrak met u na te kom, of op u toestemming — soos vir elke operateur aangedui.

Om in 'n land gehuisves te word is nie dieselfde as om vanuit een beheer te word nie. Waar 'n operateur data in Europa stoor maar deur 'n maatskappy elders besit word, sê ons dit eerder as om anders te impliseer.

Hoe lank ons dit hou

POPIA a.14 vereis dat rekords nie langer gehou word as wat nodig is nie. Ons behoudtydperke word op een plek gekonfigureer en deur 'n outomatiese opruiming afgedwing — die tabel hieronder is daardie konfigurasie, nie 'n beskrywing daarvan nie.

Wanneer u u rekening skrap, merk ons dit onmiddellik as geskrap, wat dit uit die diens verwyder, en wis dit dan permanent uit ná die tydperk hieronder. Belastingfakture is 'n uitsondering: ons word vereis om dit vyf jaar te hou, dus word dit van u rekening losgemaak eerder as geskrap.

RekordsWord gehou virWaarom
Databasis-rugsteunkopieë30 daeDisaster recovery only; s.14 requires deletion once the purpose lapses.
Geskrapte rekeninge (voor permanente uitwissing)30 daeGrace window for mistaken deletions; hard delete inside the s.14 'reasonable period'.
Boodskapafleweringslog365 daeDelivery-dispute resolution; addresses are scrubbed on account deletion regardless.
Sekuriteits- en ouditspoor1 095 daeSecurity-incident reconstruction (3 years, aligned with breach-response runbook).
Belastingfakture1 825 daeSARS: records supporting tax returns must be kept 5 years.
Waglys- en leidraad-adresse730 daeConsent to be told about a launch does not survive indefinitely; unconverted entries are erased once the purpose has lapsed (s.14). Not a statutory period — a stated policy.
Lisensie-aankope1 825 daeSARS: records supporting a tax return are kept 5 years, and a licence is the record of a sale. Not swept — a perpetual licence is the standing answer to who has access; the personal information in it is scrubbed on account deletion instead (s.14 read with s.24).
Herroepte lisensies (koperbesonderhede)730 daeA reversed payment is a dispute record, not a permanent character reference: the sale and the revocation are retained under `licences`, while the buyer's usernames are erased once every dispute window has long closed (s.14). Not a statutory period — a stated policy.

Koekies en ontleding

Ons hou 'n klein eerstepartykoekie om die keuses te onthou wat u op hierdie bladsy maak. Dit dra geen identifiseerder nie en niemand anders kan dit lees nie.

Daarbenewens lys die tabel alles wat hierdie werf op u toestel mag stoor. Ontleding wat niemand identifiseer nie, loop vir elke besoeker. Enigiets wat 'n profiel aan u koppel, is af totdat u dit toelaat, en sessie-opname is weer 'n aparte keuse — om ontleding toe te laat begin nie 'n opname van u skerm nie.

U kan hierdie keuses enige tyd verander vanaf die ontledingsvoorkeur-skakel in die voetstuk. Om dit af te skakel stop insameling en vee die betrokke koekies uit.

Op u toestel gestoorDoelBenodig u toestemming
Niks word op u toestel gestoor nieCounts page views and product events in aggregate. No cookies, no profile.Nee
ph_<project-key>_posthog, ph_<project-key>_posthog_distinct_idLinks your actions across visits so we can see which features get used and run experiments.Ja — af totdat u inteken
Niks word op u toestel gestoor nieRecords an anonymised replay of your session to diagnose usability problems.Ja — af totdat u inteken

Bemarkings-e-pos

POPIA a.69 beperk elektroniese direkte bemarking. Ons stuur bemarkings-e-pos slegs aan mense wat ingeteken het, en elke bemarkingsboodskap dra 'n werkende uitteken-skakel.

U intekening word aangeteken met die datum en die presiese bewoording waartoe u ingestem het. As u dit terugtrek, word die terugtrekking ook aangeteken, en ons stuurstelsel gaan toestemming weer na op die oomblik van stuur — nie toe 'n veldtog opgestel is nie — sodat 'n terugtrekking onmiddellik in werking tree.

Diensboodskappe is anders. Kwitansies, sekuriteitswaarskuwings en kennisgewings oor u rekening is deel van die diens en is nie bemarking nie.

U regte

U mag vra watter persoonlike inligting ons oor u hou en 'n afskrif ontvang. POPIA a.23 gee u hierdie reg, en die diens bied 'n selfdienuitvoer wat onmiddellik 'n masjienleesbare afskrif lewer.

U mag ons vra om inligting reg te stel wat verkeerd of onvolledig is, en om inligting te skrap waarvoor ons nie meer gronde het om dit te hou nie. Rekeningskrapping is selfdiens; waar die wet ons vereis om 'n rekord te hou, soos 'n belastingfaktuur, sal ons u sê wat ons gehou het en waarom.

U mag beswaar maak teen verwerking wat ons op 'n regmatige belang baseer, en u mag enige toestemming wat u gegee het terugtrek.

U mag ook 'n klag by die Inligtingsreguleerder indien. Ons sou verkies dat u ons eers sê, maar u hoef nie.

Hoe ons dit beskerm

Data word tydens versending geënkripteer. Wagwoorde word as hutswaardes gestoor en nooit in 'n vorm wat ons kan lees nie. Toegang tot produksiestelsels is beperk tot mense wat dit nodig het, en administratiewe handelinge word in 'n ouditspoor aangeteken.

Geen stelsel is volmaak veilig nie. As persoonlike inligting gekompromitteer word op 'n manier wat 'n werklike risiko vir u skep, sal ons u en die Inligtingsreguleerder in kennis stel soos die wet vereis.

Kinders

POPIA a.34 verbied die verwerking van kinders se persoonlike inligting behalwe in beperkte omstandighede. Die diens word nie aan mense onder 18 aangebied nie en ons vra by registrasie om bevestiging van ouderdom. As u meen 'n kind het 'n rekening geskep, kontak ons en ons sal dit skrap.

Klagtes

Kontak eers ons Inligtingsbeampte — die besonderhede is onderaan hierdie bladsy. As u nie tevrede is nie, mag u by die Inligtingsreguleerder (Suid-Afrika) kla, wat toesig hou oor beide POPIA en die Wet op Bevordering van Toegang tot Inligting 2 van 2000 (PAIA).

Ons PAIA-handleiding, wat verduidelik watter rekords ons hou en hoe om dit aan te vra, is op versoek beskikbaar.

Veranderinge aan hierdie beleid

Ons werk hierdie beleid by wanneer wat ons doen verander. Die hersieningsdatum boaan sê wanneer dit laas van begin tot einde gelees is, en wesenlike veranderinge word in die produk aangekondig voordat dit in werking tree.

Die Engelse weergawe van hierdie beleid geld indien 'n vertaling daarvan verskil.

Inligtingsbeampte: [Information Officer name] — privacy@example.co.za. Kontak ons gerus oor enigiets in hierdie beleid, insluitend 'n versoek om u persoonlike inligting te sien, reg te stel of te laat skrap.