<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>AfriAnnotate updates</title>
        <link>https://docs.afriannotate.org/blog</link>
        <description>AfriAnnotate Docs Blog</description>
        <lastBuildDate>Tue, 05 May 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[v0.1.0 — first formal release]]></title>
            <link>https://docs.afriannotate.org/blog/2026/05/05/app-v0-1-0</link>
            <guid>https://docs.afriannotate.org/blog/2026/05/05/app-v0-1-0</guid>
            <pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The first formal Android release of {} is now live and]]></description>
            <content:encoded><![CDATA[<p>The first formal Android release of AfriAnnotate is now live and
distributed via Firebase App Distribution.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-ships">What ships<a href="https://docs.afriannotate.org/blog/2026/05/05/app-v0-1-0#what-ships" class="hash-link" aria-label="Direct link to What ships" title="Direct link to What ships" translate="no">​</a></h2>
<ul>
<li class=""><strong>Cloud-hosted web</strong> at <a href="https://label.afriannotate.org/" target="_blank" rel="noopener noreferrer" class="">label.afriannotate.org</a>
— Cloud Run + Cloud SQL + GCS, served on a Google-managed cert
via Cloudflare DNS</li>
<li class=""><strong>Brevo email delivery</strong> for transactional mail (verification,
password reset, welcome). SPF + DKIM + DMARC verified on both
apex <code>afriannotate.org</code> and <code>label.afriannotate.org</code></li>
<li class=""><strong>Email-first unified auth flow</strong>: type your email, the server
routes you to signup / verify / login based on account state</li>
<li class=""><strong>Strict email-verification gate</strong> with invite-only org
membership — no automatic per-user org creation</li>
<li class=""><strong>Auto-login on verify and reset clicks</strong> — no second password
prompt after clicking a one-shot link</li>
<li class=""><strong>Forgot / reset password</strong> with quadratic-backoff resend and
exponential per-(IP, email) rate limits</li>
<li class=""><strong>Email-change verification</strong> — the new address must be
confirmed before the swap commits</li>
<li class=""><strong>Operator-tunable rate limits</strong> via PlatformSettings (adjust
base + cap per endpoint without a deploy)</li>
<li class=""><strong>Dynamic platform name</strong> — rename once at <strong>Platform → Branding</strong>
and it propagates to emails, UI, browser title</li>
<li class=""><strong>NoOrgState</strong> — clear messaging for users with no organisation
membership, distinguishing "removed from org" vs "never invited"</li>
<li class=""><strong>Project create wizard</strong> — Data Import unblocks after labeling
config is selected; inline warning when uploaded data is missing
required <code>$varname</code> fields per file; Save button gated on
validation</li>
<li class=""><strong>Capacitor thin-client APK</strong> pointed at the cloud, with live
feature-flag fetch (no rebuild for flag flips)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mobile-install">Mobile install<a href="https://docs.afriannotate.org/blog/2026/05/05/app-v0-1-0#mobile-install" class="hash-link" aria-label="Direct link to Mobile install" title="Direct link to Mobile install" translate="no">​</a></h2>
<p>Available via Firebase App Distribution. See
<a class="" href="https://docs.afriannotate.org/mobile/install">Mobile install</a> for the step-by-step.</p>
<p><code>versionCode=77925650</code>, <code>versionName=app-v0.1.0</code>,
SHA256 <code>a5215e77215a3db66e96652d68e118e8d1313fc9bb325329eb4585b626990dcc</code>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tag--repo">Tag + repo<a href="https://docs.afriannotate.org/blog/2026/05/05/app-v0-1-0#tag--repo" class="hash-link" aria-label="Direct link to Tag + repo" title="Direct link to Tag + repo" translate="no">​</a></h2>
<p>Source code: <a href="https://github.com/AfriAnnotate/Tool" target="_blank" rel="noopener noreferrer" class="">https://github.com/AfriAnnotate/Tool</a>,
tag <code>app-v0.1.0</code>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="known-limits">Known limits<a href="https://docs.afriannotate.org/blog/2026/05/05/app-v0-1-0#known-limits" class="hash-link" aria-label="Direct link to Known limits" title="Direct link to Known limits" translate="no">​</a></h2>
<ul>
<li class=""><strong>Mobile is online-only</strong> for now — no IndexedDB outbox yet, no
offline data reads. Roadmap covers this in a future release.</li>
<li class=""><strong>Email deliverability to strict corporate filters</strong> (Mimecast,
Microsoft ATP, university IT) sometimes fails despite correct
SPF/DKIM/DMARC. Workaround: platform owners can
<a class="" href="https://docs.afriannotate.org/platform-admin/manual-verify">mark users verified manually</a>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-next">What's next<a href="https://docs.afriannotate.org/blog/2026/05/05/app-v0-1-0#whats-next" class="hash-link" aria-label="Direct link to What's next" title="Direct link to What's next" translate="no">​</a></h2>
<p>Mobile + desktop hardening pass, expanded API surface, additional
content modules for Hausa / Swahili / French / Portuguese readers.</p>]]></content:encoded>
            <category>release</category>
            <category>mobile</category>
        </item>
    </channel>
</rss>