Day 03 — The Sanctum Boundary: React Shell, Rust Core, SQLite Codex

A door is only as trustworthy as the ward that guards it.

What we set out to build

Today’s focus was to lock in the shape of the system: a clear flow from UI → commands → modules → SQLite, with no “just let the frontend do it” shortcuts.

What shipped today

Behind the curtain

The choice

We’re deliberately building Gammoridin as two honest halves:

This division is not just style—it’s security and stability. The biggest proof point is IGDB: credentials remain backend-only, injected at build time, never stored in DB/settings, never exposed to the UI. That keeps the Codex powerful without cracking the Sanctum open.

We also leaned into a practical performance rule: anything heavy (scan batches, first-run forging, background IGDB sync) needs to be UI-thread safe. In practice that means being disciplined about async boundaries and using blocking work off the UI thread when appropriate.

The cut

We didn’t expand scope today—even though the architecture is “future-ready.”

Cuts we’re keeping intentional:

The architecture is allowed to anticipate the future. It is not allowed to pretend the future shipped.

Rough edges / dragons

Next on the path

Filed into the Chronicle.