Confida
Anonymous reports in, with the 7-day acknowledgment and 3-month feedback clocks tracked on every case.
For organizations in scope of the EU Whistleblowing Directive. Often replaces AllVoices, Whistlelink or FaceUp.
Single license $119 · Extended license $239 · paid once, yours for good
What it does
No name, email, phone or IP is asked for or stored. A reporter gets a case code and sets a passphrase to come back.
The dashboard counts acknowledge-overdue, feedback-overdue and due-within-7-days cases, with exact calendar-month maths.
A handler posts on a case. The reporter reads and replies with their code and passphrase, still anonymous.
Offer the languages your workforce speaks. The case shows the reporter's language, so your handler can reply in it.
A reporter can keep a draft for 30 days under a draft code and passphrase. Nobody sees it, and no clock starts.
Seal a case and it stays sealed until two different handlers are on the record. Admins are not exempt.
Name the handler who owns a case. Switch reminders on and the owner is emailed before each deadline, with the case code and date only.
Link two reports about the same matter. Name someone above the owner who hears about a deadline still missed.
An uploaded photo is rebuilt without its metadata, then encrypted at rest. Documents are refused, because their author history cannot be reliably stripped.
Reports by month and category, acknowledgments on time or late, and median days to acknowledge and to close. Nothing a report says.
A weekend or holiday deadline shows an observed date, moved later and never earlier, beside the statutory one.
New reports and reporter replies can post one line to Slack, Teams, Google Chat or Discord. Case code only.
Also: questions for each kind of concern, retention you set, an audit trail and a phone app.
What Confida deliberately doesn’t do.
- Single organization per install (not multi-tenant).
- No supervisory-authority e-filing and no e-discovery platform.
- Handler email notifications deliberately carry no report content, and attachments never leave the server by email, webhook or calendar feed.
- Attachments are photos only (JPEG/PNG, metadata stripped, encrypted at rest); documents are refused because their author metadata cannot be reliably removed.
- Anonymity is an application guarantee, not a network or hosting guarantee — HTTPS and sane server logging are on you.
- Written intake only. Article 9(2) of the Directive lets a channel be "in writing or orally, or both"; Confida is the written kind — there is no telephone or voice-message intake here, no dedicated screen for typing up a call, and no field recording that a report arrived orally. The physical meeting a reporter may request is a process you run, not software you install.
- Aligns with the EU Whistleblowing Directive's timers and workflow; it is not legal advice.
What renting costs instead
1 month of AllVoices costs what Confida costs once.
Read Sep 3, 2026 · source2 months of Whistlelink costs what Confida costs once.
Read Sep 3, 2026 · sourceThe full comparison: every rival, what each does better, and who should stay with them →
Replacing one of these? AllVoices alternative · Whistlelink alternative · FaceUp alternative
Release history
For Confida, 4.1 makes two changes that every app gets. What’s new in 4.1 →
For Confida, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and… What’s new in 4.0 →
The 3.2 wave gave Confida's reporting channel room for the person speaking up: the reporting pages in ten languages, a report saved and finished later under a draft… What’s new in 3.2 →
The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar…
Two-person case access is the headline: seal a case and it stays sealed until two different handlers are on the record — the requester cannot be the confirmer, and…
Confida 2.0 adds the 2.0 owner layer.
What’s in the zip
The tree as the zip ships it — the working leftovers the packager deletes are not listed
- .htaccess
- API.md
- Dockerfile
- QUICKSTART.txt
- assets/
- bin/
- config.sample.php
- controllers/
- deploy/
- index.php
- install/
- lang/
- manifest.json
- offline.html
- router.php
- src/
- sw.js
- tests/
- views/
src/Report.php: a real module, the first 24 of 424 lines
Chosen as the largest module in src/ that is not one of the shared cores — this product's own logic, not a file every product carries.
<?php /** * Report.php — THE core: anonymous whistleblowing case lifecycle (fully covered by * tests/run.php, offline). Aligned to the EU Whistleblowing Directive (2019/1937). * * ANONYMITY IS THE PRODUCT. This layer never sees, stores, or returns a reporter's * name, email, or IP. A case is identified by an unguessable CODE; follow-up is * authenticated by a PASSPHRASE the reporter chooses, of which only the HASH is kept. * * 1. SLA MATH (Directive Art 9). * ack deadline = received + 7 days (acknowledge receipt, Art 9(1)(b)) * feedback deadline = acknowledgment + 3 calendar months — or, if no acknowledgment * was sent, ack-window expiry + 3 months (Art 9(1)(f); clamped to * month-end, Jan 31 + 3 = Apr 30) via addMonthsClamped(), the * shared Ownware calendar-month helper. * * 2. DERIVED SLA STATUS. One of on_track / ack_overdue / feedback_overdue. * Closed or dismissed cases are NEVER overdue. Precedence (worst first): * closed/dismissed -> on_track * past feedback deadline (open) -> feedback_overdue * not yet acknowledged AND past ack deadline -> ack_overdue * otherwise -> on_track * * 3. CASE CODES. 10 chars from a no-lookalike alphabet (no 0/O/1/I/L),
Runs on: 2-minute installer, plain PHP 8.1+ with MySQL or SQLite, no Composer or Node — includes the offline test suite and a Dockerfile. Tested on PHP 8.3. Or run it in Docker: the Dockerfile is in the zip.
Technical owners can install it with one line and their license key: curl -fsSL https://ownware.io/install.sh | sh -s -- confida <your license key>
Nothing is obfuscated or encoded; what you read is what runs. Manual · API · the test run
Which license do I need?
It comes down to how many installations you need. Running your own business on one site is the Single license. A second domain of your own, or sites you build or run for other people, is the Extended license.
- Install it on one domain or subdomain you own or operate
- Change the source however you like for that installation
- Run your own business on it commercially, client work included
- Re-download the current build any time from your buyer portal
- A second site, or an installation you hand to a client as theirs, needs the Extended license
- No reselling, redistributing or sublicensing the source
- Not for offering it to other people as a hosted service
- Everything the Single license grants
- Install it on as many domains as you own or operate — no cap on the number
- Up to ten client installations, one per client project, handed over or hosted for each client; for more, buy another Extended license
- White-label: remove or replace the product name and logo in the screens of client installations
- Still no reselling or redistributing the source itself
- Running it as a multi-tenant service others sign up for needs a SaaS agreement
Every download carries the full terms as LICENSE.txt. The complete wording is on the terms page.
After you buy
The app’s Updates page installs a new release with your license key, with the release’s signature checked and a backup taken first. Your download link always serves the current build. Download again any time from your order page or the buyer portal; there is no renewal fee.
Email support for installation and for defects in the code as delivered: a person reads and answers every message. It does not cover custom development or server administration. What support covers
Refunds are handled by Lemon Squeezy as merchant of record, case by case. EU consumers keep the statutory 14-day right until delivery starts. Refund terms
It keeps running: your server, the full PHP source, no license check that can fail. If no stable release is published for 365 days, the domain limit lifts; after three such years your copy becomes MIT-licensed. The terms have the exact wording: continuity.
Questions
What exactly is stored about a reporter?
Is it really anonymous?
A reporter lost their case code or passphrase — can we recover it?
Can the handler and reporter actually communicate?
MySQL or SQLite?
The Directive mentions oral reporting — what does a written-only channel cover?
Can a reporter attach evidence?
Is Confida a subscription?
What exactly do I get for the money?
Can I get the case records out?
Covered in these guides
- Whistleblower channel software: open or owned
- Self-hosted compliance management, no containers
- The Compliance Suite: five registers, and a clock in four of them
- Harness, model, deployer: who is the provider? The definitions, side by side
- Is code written with AI regulated by the AI Act? What the definitions say
- Does your self-hosted app need AI-Act labels? Article 50, quoted in full
Also covered in: Is a Shared Email Inbox Enough for the EU Whistleblowing Directive? · What's new in Own It 3.1 · Nineteen Percent of Business Software Will Not Show You a Price — We Counted · EU Data Residency for Business Software — The Buyer's Guide · Compliance Software Cannot Make You Compliant — And Buying It Once Raises a Question Worth Asking · The best self-hosted whistleblowing tools in 2026 — open source and owned, and 1 more in the guides.
More about Confida
Self-hosted whistleblowing portal for organizations in the scope of EU Directive 2019/1937 (50 or more workers, Article 8(3)): the 7-day acknowledgment and 3-month feedback clocks, tracked per report.
The problem it solves
The EU Whistleblowing Directive (2019/1937) sets out internal reporting channels for organizations with 50 or more workers (Article 8(3)), with a seven-day acknowledgment and a three-month feedback period (Article 9). National laws vary. Confida records reports and tracks both clocks. A shared "ethics@company.com" inbox is none of those things — it can't take a report without a name attached, it doesn't track deadlines, and it can't show who handled what.
- No route for a reporter who won't attach their name
- No tracking against the 7-day / 3-month statutory clocks
- No usable record of what happened and when
Every feature
- Reporter photos, stripped to pixels. An uploaded photo is rebuilt without its metadata — photos are rebuilt from their pixels, which removes EXIF, GPS, camera, author and timestamp metadata; what is visible in the image stays — then sealed with AES-256-GCM at rest. Documents are refused on purpose: their author history cannot be reliably stripped.
- Deadlines that respect your calendar. An acknowledgment or feedback deadline landing on a weekend or your own holiday shows an observed date moved later — never earlier — beside the untouched statutory date. Your holiday list, no country's calendar shipped or guessed.
- No identity fields. No name, email, phone, or IP is ever asked for or stored; a reporter gets a case code and sets a passphrase as the only way back in.
- SLA deadline tracking. The dashboard counts acknowledge-overdue, feedback-overdue, and due-within-7-days cases using exact calendar-month math.
- Two-way anonymous messaging. A handler posts a message on a case; the reporter reads and replies using their code and passphrase, still anonymous.
- Reporter pages in ten languages. English, German, French, Spanish, Italian, Polish, Dutch, Portuguese, Romanian and Greek. Offer the ones your workforce speaks; a reporter picks one, or lands in the one their browser asks for, and the case shows the language so your handler can reply in it.
- Self-hosted, no vendor in the loop. Reports live on your own PHP + MySQL/SQLite server. Confida adds no external service and no API key, so Ownware never processes your reports.
- Configurable acknowledgment window. Set the acknowledgment window in Settings to match your jurisdiction's transposition of the Directive.
- Handler console with audit trail. A console that tracks every case against its clock, with an append-only audit trail on every change.
- Installable mobile app (PWA). Add it to a phone or tablet home screen straight from the browser — a full-screen app served from your own server, with no app store involved. Business data is not stored offline on the device; what you see is read live.
- Retention you set. Closed cases can be purged automatically after the number of days you choose (0 keeps them). Check your own jurisdiction's retention rule before you set it.
- An owner on every case. Name the handler who owns a case. Switch reminders on and the owner is emailed before the acknowledgment and feedback deadlines — case code and date only, never the report.
- Save and finish later. A reporter who is not ready can keep what they have written for 30 days under a draft code and their own passphrase. Nobody sees a draft, and no clock starts until it is sent.
- Questions for each kind of concern. Up to five optional questions per category, asked when the reporter picks it.
- Linked cases and escalation. Link two reports about the same matter; name someone above the owner who hears about a deadline still missed a set number of days later.
- Updates from inside the app. The Updates page installs a new release with your license key: Ownware's signature is checked, a backup is taken first, and the app puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. It never checks by itself.
- Backups by themselves. Automatic backups, an optional copy to S3-compatible storage you own, and a weekly check that the latest backup reads back. The Health page names anything that needs attention.
- Own It 4.0.1 — fixes and an up-to-date manual. For Confida, 4.0.1 fixes an installer that had lost its styling, a rollback that a page opened during an update could stop and a command-line update that ended in an error after putting the previous version back. Its manual, FAQ and QUICKSTART now cover everything 4.0 added, including two Nginx rules that keep the data folder private. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0.2 — the installer opens on every host. For Confida, 4.0.2 fixes a fresh install on an Apache host: the one-page setup at /install/ looped back to itself and never opened, and now it opens. Confida's Docker image also gives the web server the whole app folder, so a Docker install can finish and update itself. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
Release notes in full
- Own It 4.1: client installations and your other tools. For Confida, 4.1 makes two changes that every app gets. An Extended license bought from October 4, 2026 covers up to ten client installations, one per client project: hand each one over to the client or host it for them, with the client's logo and colors from the app's branding settings. The API reference now shows how to connect Confida to Zapier, Make or n8n, using its own webhooks and API key. Your license covers the update: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0: it updates and backs itself up. For Confida, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. A new install can start with a sample business and remove it in one click; backups run by themselves, with an optional offsite copy and a weekly check that the latest one reads back; and the Health page says whether the install is looking after itself.
- Own It 3.2: room to speak up. The 3.2 wave gave Confida's reporting channel room for the person speaking up: the reporting pages in ten languages, a report saved and finished later under a draft code, and questions asked for each kind of concern. Handlers gained linked cases and escalation to someone above the owner, a statistics page drawn from counts and dates only, and one line in the team's chat that carries the case code and nothing from the report.
- Own It 3.1: it writes to the people you serve. The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar subscribes to, attachments filed where the paperwork belongs, and export presets other people's software imports. Each outbound feature ships switched off and runs on your own credentials; a failed send is recorded, and the action that triggered it stands. What this app gained is listed at the top of this section.
- Own It 3.0: works for your AI, not just for you. Two-person case access is the headline: seal a case and it stays sealed until two different handlers are on the record — the requester cannot be the confirmer, and admins are not exempt. The MCP endpoint works under the same handler guards, and reporter anonymity survives every new surface.
- Own It 2.0: API, 2FA, backups, dark mode. Confida 2.0 adds the 2.0 owner layer. Upgrade by replacing the files — the database migrates itself, and it is still the same one-time purchase.
Browse self-hosted: Compliance software · Software for builders & agencies