Skip to main content

Trust Center · Policies

Business Continuity & Disaster Recovery Policy

Last updated: 2026-09-03 · Owner: Founder / CTO · Design Excellent Group SL

How the service keeps running or is restored after a major failure.

Purpose

Keep learning available to students and content safe for academies through outages, data loss or loss of a provider.

Objectives

  • Recovery Point Objective (RPO): ≤ 24 hours for a major incident (target; day-to-day, Supabase point-in-time recovery allows a much finer point).
  • Recovery Time Objective (RTO): ≤ 8 hours for a major incident.

These are targets that we keep under review; contractual SLAs are agreed per customer.

Architecture for resilience

  • Data — Supabase Postgres in the EU (Frankfurt) with continuous backups and point-in-time recovery; file storage in the same region.
  • Video — Bunny Stream with global edge delivery; original uploads are retained by the provider and can be re-processed.
  • Application — stateless Next.js containers on Coolify, reproducible from the repository; secrets live in an encrypted vault backed up with the database.
  • Edge — Cloudflare DNS, TLS and WAF; DNS changes are the switch for redirecting traffic during recovery.

Scenarios and playbooks

ScenarioResponse
Application host failureRedeploy last known-good build to a new Coolify host; repoint DNS.
Database corruption or accidental deletionRestore with point-in-time recovery to a moment before the event; verify with tenant admins.
Video provider outageLearners keep text, captions and transcripts; video resumes when the provider recovers — no data is lost.
Loss of a key personCredentials for every provider are held in a shared password manager with a designated deputy; runbooks live in the repository.

Testing

A restore test (database point-in-time recovery into a scratch project) is performed at least twice a year and after any change to the backup configuration; the result is recorded with this policy.

Communication

Incidents affecting availability are announced on the public status page and by e-mail to academy owners, with updates until resolution.