<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://developers.chacha.charity/blog</id>
    <title>ChaCha Developer Portal Blog</title>
    <updated>2026-05-01T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://developers.chacha.charity/blog"/>
    <subtitle>ChaCha Developer Portal Blog</subtitle>
    <icon>https://developers.chacha.charity/img/logo.svg</icon>
    <entry>
        <title type="html"><![CDATA[ChaCha Developer Portal is live]]></title>
        <id>https://developers.chacha.charity/blog/developer-portal-launch</id>
        <link href="https://developers.chacha.charity/blog/developer-portal-launch"/>
        <updated>2026-05-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We've launched the ChaCha developer portal — the canonical home for everyone]]></summary>
        <content type="html"><![CDATA[<p>We've launched the ChaCha developer portal — the canonical home for everyone
building on, integrating with, or operating ChaCha.</p>
<h2 class="anchor anchorTargetStickyNavbar_j6yY" id="whats-in-the-portal">What's in the portal<a href="https://developers.chacha.charity/blog/developer-portal-launch#whats-in-the-portal" class="hash-link" aria-label="Direct link to What's in the portal" title="Direct link to What's in the portal" translate="no">​</a></h2>
<p><strong>Public site</strong> (<code>developers.chacha.charity</code>):</p>
<ul>
<li class="">Getting started guide — local development, first API call, environments</li>
<li class="">Platform documentation — architecture, the Invisible Blockchain principle,
auth model, event-driven architecture, data model</li>
<li class="">REST API reference — auto-generated from the FastAPI OpenAPI spec</li>
<li class="">Architecture Decision Records (ADRs 0001–0014, including the full migrated
sequence from <code>docs/adr/</code> and <code>docs/decisions/</code>)</li>
<li class="">Contributing guide — code style, PR workflow, release process</li>
<li class="">SDK and plugin stubs (coming soon)</li>
</ul>
<p><strong>Internal site</strong> (<code>developers.chachain.de</code>, Keycloak-gated):</p>
<ul>
<li class="">All public content, plus:</li>
<li class="">Runbooks: Alembic migration drift, event architecture, Solana devnet setup</li>
<li class="">Operations, security, infrastructure, and incidents (incremental migration)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_j6yY" id="whats-next">What's next<a href="https://developers.chacha.charity/blog/developer-portal-launch#whats-next" class="hash-link" aria-label="Direct link to What's next" title="Direct link to What's next" translate="no">​</a></h2>
<ul>
<li class="">OpenAPI reference populated by the real FastAPI schema (backend team's
<code>openapi-export</code> CI workflow)</li>
<li class="">German translation (selective pages, when commercially needed)</li>
<li class="">SDK TypeScript + Python clients (tracking against SDK roadmap)</li>
<li class="">Phase 4 content migration sweep: remaining <code>docs/</code> subfolders</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_j6yY" id="technical-notes">Technical notes<a href="https://developers.chacha.charity/blog/developer-portal-launch#technical-notes" class="hash-link" aria-label="Direct link to Technical notes" title="Direct link to Technical notes" translate="no">​</a></h2>
<p>The portal is built with Docusaurus 3 from a single <code>charity-chain-developers/</code>
codebase, producing two separate builds (<code>build/public</code>, <code>build/internal</code>).
It runs on the same Helm/Ansible/Traefik stack as all ChaCha services.</p>
<p>Web3 vocabulary (Solana, blockchain, wallet, NFT, smart contract, on-chain) is
used precisely throughout developer documentation — the "Invisible Blockchain"
translation table applies to donor-facing UI copy only.</p>]]></content>
        <author>
            <name>Max Doerr</name>
            <uri>https://github.com/mdchacha</uri>
        </author>
        <category label="announcement" term="announcement"/>
        <category label="platform" term="platform"/>
    </entry>
</feed>