Truthbeam docs
v1.0.0
Get help
● Documentation · Flutter · Node.js

Truthbeam
from download to your own check service.

Everything you need to install the server and the operator console, connect the outside services you want, and build the app for Android and iOS under your own brand. Read it top to bottom the first time. After that, press / and search.

v1.0.0Flutter · Android · iOS 15+Node.js 26 serverOperator console

01What you bought

Truthbeam lets a person share or paste something suspicious (a link, a message, an e-mail, a screenshot, a QR code, an image, a video, a voice message or a claim) and get risk signals and a sourced second opinion on three questions, each on its own axis:

AxisQuestionPossible answers
SafetyIs it a scam?OK · Caution · Danger
AuthenticityIs it real?Proven origin · No signs found · Unclear · Likely AI-made or altered
TruthIs it true?Supported by sources · Disputed · Rated false by fact-checkers · No reliable source found

Every finding names its source. Anything that was not checked is listed as not checked with the reason, and that list is always visible: a check that did not run never counts as a pass.

You run it as your own service: your name, your colours, your server, your provider accounts. Typical operators are a bank, a telco, a town, a school or a newsroom that wants to offer its people a check service. The app ships in English, Slovak and Czech.

PartFolderWhat it is
Appapp/The Flutter app your users install, for Android and iOS 15 or newer, with a share extension on both.
Serverserver/A Node.js server written in TypeScript (Hono, SQLite). It runs the checks, keeps the daily limits and serves the operator console at /admin.
Operator consoleserver/packages/admin-kit/The MIKODES Admin Kit: provider keys, limits, content, installs, costs, team and audit log in the browser.
Contractcontract/Shared data the app and the server both use, for example the list of web address endings and the schema of a check result.
Toolstool/Scripts that analyse and type-check the code, copy the playbook and lesson seed into the app, and check the licence of every dependency.
Risk signals, not proof

Detection of AI-made media is a probability. A link with no warnings can still be a scam, and a genuine message can be flagged. Truthbeam shows what each check found and where it came from, so a person can make a better decision; it does not decide for them. See Known limits.

02How the parts fit together

How Truthbeam fits together The Flutter app, the operator console and public share pages all talk to one Node.js server. The app removes card numbers and codes before it sends anything, and signs every request. The server removes them again, runs the checks that are switched on and keeps its data in one SQLite file. It calls only the outside services the operator switched on with their own keys: Google Web Risk and RDAP registries for links, Sightengine and Google Cloud Vision for media, Google Fact Check Tools and Anthropic or Perplexity research for claims, a language model and a speech to text service. Pro subscriptions go through the App Store and Google Play. How Truthbeam fits together Green labels are paths in the source code; arrows point from the part that calls to the part that answers. WHO USES IT The app · Android and iOS Flutter, with the iOS Share Extension. Removes card numbers and codes first. app/lib/src/ Operator · console /admin in a browser: services, limits, plans, content, costs, audit log. server/packages/admin-kit/ Anyone with a share link A read-only page with one verdict, made when the person shares it. GET /s/:slug Your server · Node.js 26 and Hono server/src/ Signed API · /v1 P-256 signed requests, daily limits per install. auth/ · limits/ Check engine Links, messages, e-mail, QR, screenshots, media, claims. lens/ · check/ Redaction Again on the server, before any outside service. privacy/ Console and share pages The Admin Kit at /admin and the read-only /s/ pages. admin/ · share/ Storage One SQLite file; Content Credentials read locally. data/truthbeam.sqlite A check: the app sends redacted text or a file, the engine runs only the checks that are switched on, the language model writes the summary, and the verdict returns with its sources and a list of what was not checked. OUTSIDE SERVICES · OPTIONAL · YOUR OWN KEYS Links Google Web Risk RDAP registries AI media signals Sightengine Seen elsewhere Google Cloud Vision Claims Google Fact Check Tools Anthropic or Perplexity Language model OpenAI-compatible API, Anthropic or local Speech to text Your speech service Pro subscriptions go through the App Store and Google Play; the server reads their notifications in server/src/store/.
Every outside service starts off. While one is off, the checks that need it are listed in the app as not checked.

03Pick your path

04Outside services are optional

Every outside service starts off with an empty key. The only check that is on from the start is Content Credentials, which runs on your own server and sends nothing out. The server starts and the console works without any outside service; each one you add switches on more signals. You pay each provider directly, on your own account; none of these costs are part of the purchase. See Costs.

You provide

A server with a domain and https, your own provider accounts and keys, and Apple and Google developer accounts to publish the app. None of these are included in the item.

05About this version

This documentation describes version 1.0.0, the first release. What changed in each version is on the Changelog page.

06AI tools

AI tools were used to assist with parts of the code, documentation and graphics of this item. Separately, the product itself can call AI services that you connect with your own keys; none is switched on until you add a key.