Overview
Each SanMarcSoft site that processes user data must maintain up-to-date legal pages: Privacy Policy, Terms of Service, and Cookie Policy. This runbook documents where each page lives and how to update them.
Legal Page Locations
verifieddit.com
| Page | Location | Format |
|---|---|---|
| Privacy Policy | verifieddit-www/src/pages/PrivacyPolicy.tsx | React component |
| Terms of Service | verifieddit-www/src/pages/TermsOfService.tsx | React component |
| Cookie Policy | Covered within Privacy Policy | - |
Update procedure:
- Edit the React component in the source code
- Build:
bun install && bun run build - Build OCI image:
nix build .#packages.x86_64-linux.oci-image - Deploy per Verifieddit Deployment SOP
verifieddit.com/docs (Hugo docs)
| Page | Location | Format |
|---|---|---|
| Privacy | verifieddit-www/hugo-site/content/en/privacy.md | Markdown |
sanmarcsoft.com
| Page | Location | Format |
|---|---|---|
| Privacy Policy | sanmarcsoft-www/src/privacy.html or Cloudflare Pages | HTML |
| Terms of Service | sanmarcsoft-www/src/terms.html | HTML |
Update procedure:
- Edit the HTML files
- Deploy via Cloudflare Pages (push to
mainbranch)
trusteddit.com
| Page | Location | Format |
|---|---|---|
| Privacy Policy | trusteddit-www/content/privacy.md | Markdown (Hugo) |
| Terms of Service | trusteddit-www/content/terms.md | Markdown (Hugo) |
Update procedure:
- Edit the Markdown files
- Deploy via Cloudflare Pages
Required Content (GDPR)
Every Privacy Policy must include:
- Identity of the controller: SanMarcSoft, contact email
- Purpose of processing: What data is collected and why
- Legal basis: Consent, legitimate interest, or contractual necessity
- Data retention periods: How long data is kept
- Data subject rights: Access, erasure, portability, etc.
- International transfers: If data leaves the EU (e.g., Clerk is US-hosted)
- Third-party processors: List of sub-processors
- Cloudflare (CDN, Workers, D1)
- Scaleway (containers, registry)
- Clerk (authentication)
- Stripe (payments)
- Sightengine (AI detection)
- AWS (Phenom Drop)
- Google (Firestore, Phenom Drop)
- DPO contact: Data Protection Officer contact information
- Supervisory authority: CNIL (France)
Update Triggers
Legal pages must be updated when:
- A new third-party service is integrated
- Data processing purposes change
- New data categories are collected
- Infrastructure moves between jurisdictions
- Regulatory requirements change
Review Schedule
- Quarterly: Review all legal pages for accuracy
- On change: Update immediately when data processing changes
- Annually: Full legal review with counsel
Troubleshooting
- Legal page not rendering: Check the build process for the affected site. Legal pages are part of the application build.
- Outdated processor list: Cross-reference with the actual services in use (this runbook’s services section).
- Cookie consent banner: Cloudflare provides basic analytics. If additional cookies are used, a consent banner may be required.