Core ConceptsArchitecture

Architecture

How the pieces of Dafado fit together, from the phone in a guest's hand to the published page.

Dafado is a small number of parts with clear jobs. This page describes them at a high level. It names no servers, addresses, or credentials; where a value matters, the docs say where it lives, never what it is.

The recorder in the browser

A guest never installs anything. A QR code opens a web page, and that page is the recorder. It asks for microphone permission, captures about 20 seconds of audio, and uploads it. Because it is just a web page, it works on essentially any modern phone, and every visit is a fresh visit, which shapes a lot of the design.

The core

The heart of Dafado is a WordPress plugin. It holds the data: places, people, reviews, replies, and the settings that govern them. It renders every public page: the homepage, each review, each place, each profile, and the marketing and legal pages. It is also where the rules live, so that a place cannot take down a review no matter which button it finds.

Storage

Recordings and images are kept in cloud object storage, separate from the site database. The browser uploads audio straight to storage using a short-lived signed permission, so storage credentials never reach the guest's device. The database keeps the text and the relationships; storage keeps the media.

Processing

Two kinds of processing turn a raw recording into a finished review.

  • A dedicated speech-to-text service transcribes the audio, detecting the spoken language on its own. The same service prepares the audio a listener hears.
  • A language model proposes cleanups to the transcript and, on request, translations. Its suggestions are validated before anything is shown, and the original recording is never changed.

Delivery and the edge

Public pages are served through a global edge cache, which is why Dafado feels fast anywhere in the world. The tradeoff is that a freshly changed page can take a while to update everywhere, so some changes are followed by a deliberate cache clear.

Keeping things in sync

The marketing site exists in English and Hungarian, and these documentation pages are published from the plugin itself. Each doc page has a stable path and is updated in place, so the docs stay current with the platform rather than drifting from it.