EthicsPortal
Poland · Whistleblower reporting portal hosted on Hetzner in Germany. Flat €49/month plan.
Strengths
- Best article-level legal framing of any tool reviewed: /compliance/ enumerates Art 4, 6, 8, 9, 16, 18, 19–21
- Deadline tracking is real, not marketing: code has eu_acknowledgment_deadline + feedback_due_at + overdue/due_soon scopes
- Retention is configurable AND auto-purged: RETENTION_MONTHS_OPTIONS [12,24,36,60] + RetentionCleanupJob
- Two-factor reporter access: Case ID + reporter-chosen 6-digit passcode (bcrypt digest), session-gated inbox; identifier is separated from secret
- Modern stack with no EOL liabilities: Rails 8 + Turbo + Tailwind 4; no CKEditor or jQuery
- Transparent monthly pricing (€49/mo) with EN/FR/PL UI
- Multi-handler case assignment: per-report assigned_to FK on Membership, Pundit scope enforces admin-sees-all / member-sees-only-assigned, assignment changes are audit-logged and the assignee is notified automatically
Weaknesses
- No structured intake questions: schema is Subject + Description + Files; does not ask relationship-to-org, source-of-info, prior reporting, or retaliation concerns
- Audit log is append-only (DB trigger blocks UPDATE on semantic fields + TRUNCATE) but not hash-chained
- Only 3 portal-facing languages (EN/FR/PL) against 24 EU official languages
- No ISO 27001 certification of EthicsPortal itself (only Hetzner infrastructure is certified)
- Pay-first with 30-day money-back rather than upfront self-serve free trial
Standout
Article-level Directive framing backed by code that actually runs the deadline, retention, and two-factor passcode flows.