Capabilities
Offline-first architecture
The design is offline-first: every sale is written locally first and synced between devices on the local network. The stack (Rust core and Flutter UI) is a recommendation; no spike has been done.
Status
Planned Everything on this page is a plan. The repository contains a catalog and design documents, not a released app. Entries are tagged with their own status.
Offline-first design
The shop must keep selling without internet.
Read →Not decidedLocal database
The recommended stack uses SQLite with write-ahead logging; a spike to confirm has not been done..
Read →Not decidedStack recommendation
The repo recommends a Rust core with a Flutter UI.
Read →PlannedSync between devices
Devices in one shop sync over the local network.
Read →PlannedMulti-register shops
Several tills sharing one database or syncing peer to peer..
Read →PlannedTime and ordering
Hybrid logical clocks are listed as a way to order events without perfect clocks..
Read →PlannedCrash and power-cut safety
Atomic writes and journaling so a failure never loses a completed sale..
Read →DesignedCore and logistics isolation
The ARCH module keeps logistics separate from the core POS so a fault in one cannot corrupt the other..
Read →Built (repo)Packaging engine
Per ADR-0001 and ADR-0002, Simca Packaging is a server-side or developer-side engine that assembles and signs a package from a package spec.
Read →PlannedPerformance goals
The README says reliability over speed; the catalog lists performance targets as items..
Read →Built (repo)Data model
The logistics subproject has a draft SQLite schema that executes; it is a file, not a product..
Read →Not decidedUpdate model
The README says buy once with an optional yearly fee for updates and the co-op.
Read →PlannedLocalization
English and Spanish, local number and date formats, accessible UI..
Read →PlannedLocal logs and diagnostics
Logs stay on the device and are shared only on request..
Read →DesignedLauncher
The one download.
Read →DesignedOffline mode
An explicit mode in which the launcher and app make no network request at all, like a game launcher's offline mode..
Read →DesignedUser-initiated signed updates
Updates are signed packages, applied only when the user asks, from a static server manifest or a file passed by USB or messenger.
Read →Built (repo)Package spec
A small JSON file written by the launcher that lists the chosen elements.
Read →DesignedOnline sign-in
Only features that inherently need the online network need a sign-in: Tap to Pay, the co-op price counter, referral validation and the Logistics board relay.
Read →DesignedElements, not roles
ADR-0001 removed separate role builds.
Read →Built (repo)Paired development
ADR-0002: every element is built first in Simca Packaging (thin manifest, prebuilt artifact, dependency links) and then immediately in Simca or Simca Logistics.
Read →Built (repo)Build delivery
ADR-0002: packages are assembled from per-element prebuilt pieces and cached by spec hash; nothing is recompiled per customer and identical specs give identical builds.
Read →DesignedOffline/Online toggle
ADR-0002: the launcher shows a plain-sight toggle.
Read →DesignedUpdate notice for offline users
ADR-0002: an offline user is offered updates only when a connection exists, as a visible, dismissible notice.
Read →Not decidedFree-package profit threshold
ADR-0002: users start free, and a flat quarterly fee applies only after the business reaches a profit threshold measured locally from its own books, with nothing reported.
Read →DesignediOS launcher parity
ADR-0002: the iOS launcher must look and work like the other platforms; Apple rule limits are checked later and recorded as per-feature exceptions instead of being designed around now..
Read →Built (repo)Offline guard test
A test in the packaging crate fails the build if network crates, sockets, URLs, process spawning or URL/token environment variables appear, or if a denied crate enters the lockfile.
Read →