Docs / Decisions

ADR 0001: Araldo is a distribution API for developers; callers bring the content

Context

Getting users is the hardest part of launching software. Every product needs to announce what it ships (a new feature, a featured build, a new brand) on every network its users read, on a schedule, without someone copying text into five web forms.

What exists:

Decision

  1. Araldo is an API product. Every capability ships in the API first or together with the dashboard, and the dashboard calls the same services. The developer integrating a product is the primary user; the person approving and scheduling posts in the dashboard is the second.

  2. Social first, email later. Newsletters (lists, subscribers, sending through SES, Brevo, Resend or SMTP) reuse the same tenancy, templates and API once social publishing is solid. See roadmap.

  3. Callers bring the content; Araldo does not run AI. The product that knows what is worth announcing (and has the tools to look it up) writes the words. It sends either a template reference with data, or a finished body per platform. Araldo owns the deterministic part:

    • each platform's rules (length and how it is counted, media required, threads, links), enforced before anything is scheduled;
    • a preview endpoint that renders content and returns every violation with a stable code, so a caller's AI agent can correct itself and try again;
    • an MCP server exposing preview and schedule as tools.

    We revisit this if several callers end up repeating the same "adapt this announcement for each network" prompt; that would be the signal to offer adaptation as an optional, bring-your-own-key feature.

  4. Out of scope: reading or answering replies (a social inbox), ads (except small, bounded promotions, ADR 0023), social listening, link shortening, and analytics beyond basic per-post metrics (later).

Alternatives considered

Consequences

Edit this page on GitHub