Labs · die App-Oberfläche
Die App, massgeschneidert und zum Behalten.
Kein umgeformtes Produkt — eine App, gebaut für den Boden, auf dem sie läuft: Bildung, Industrie oder welche Branche Sie bringen. Ein Rust-Kern, der mit null Balken Empfang arbeitet, nativ auf jedem Bildschirm, und ein Entwurf, bei dem Ihre Daten Ihre bleiben.
Kein Template mit Ihren Farben. Software, geformt nach der Arbeit, für die sie wirklich da ist.
Ein Klassenzimmer, eine Fertigungslinie, ein Aussentrupp — die App ist dafür geschrieben, wie diese Arbeit wirklich geschieht, nicht für eine Demo. Die Branche formt sie, nicht umgekehrt.
Ein Keller, ein abgelegener Standort, ein Funkloch — die Arbeit stoppt nicht. Das Gerät hält die Wahrheit und gleicht mit dem Edge ab, sobald das Signal zurückkehrt.
Kein Konto, das Sie nicht verlassen können, keine Daten als Geisel. Der Kern gehört Ihnen, die Datensätze gehören Ihnen, und der Ingenieur, der sie baute, ist der, der antwortet.
Vier Zahlen von einer App, gebaut, um zu bleiben.
Das Handwerk einer ernsten App ist ein Kern, den der Compiler bewacht, der ohne
Signal weiterarbeitet und der auf jedem Boden aus einer Quelle der Wahrheit läuft.
Der Code bleibt in Englisch — der universellen Sprache der Technik.
// the core of the app · typed, so a wrong state cannot be reached #[derive(Clone, Deserialize)] struct Job { id: Uuid, site: SiteId, state: State, // Scheduled → OnSite → Done — nothing else is legal readings: Vec<Reading>, synced: bool, // the device knows what the edge has not yet seen } impl Job { /// A job closes only once every required reading is in. fn can_close(&self) -> bool { matches!(self.state, State::OnSite) && self.readings.iter().all(Reading::valid) } }
// works at zero bars · the floor does not wait for a signal fn record(&mut self, r: Reading) { self.readings.push(r.clone()); self.queue.push(Op::Add(r)); // kept on the device, durable self.synced = false; } /// When the signal returns, the device reconciles — in order, idempotent. async fn reconcile(&mut self, edge: &Edge) -> Result<()> { for op in self.queue.drain(..) { edge.apply(op).await?; // the edge is the record; the device, the witness } self.synced = true; Ok(()) }
# one core, every floor it must run on [targets] ios = "aarch64-apple-ios" # a thin Swift shell over the Rust core android = "aarch64-linux-android" # a thin Kotlin shell over the same core desktop = "x86_64 · aarch64" # Windows · macOS · Linux # the logic is written once, in Rust. only the shell changes per floor. # Swift and Kotlin carry the screen; Rust carries the truth.
Warum eine für Ihren Boden gebaute App ein umgeformtes Produkt schlägt.
Ein umgeformtes Produkt kann nicht für Ihren Boden gemacht sein — es entstand, bevor Ihr Boden bekannt war. Eine reine Online-App kann dort nicht vertraut werden, wo das Signal stirbt — das Warten ist eingebaut. Darum schreiben wir einen Rust-Kern, bewachen ihn mit dem Compiler und signieren ihn selbst — und darum nennen wir, was wir messen, keinen Regalpreis.
Bevor eine Zeile geschrieben wird, wie Ihre Arbeit gehütet wird. Dieser Teil ist nicht verhandelbar.
Ein NDA ist hier der Standard, kein Aufpreis. Was Sie teilen, liest ein Ingenieur und sonst niemand — nichts wird verkauft, geteilt oder weitergegeben.
Zugangsdaten und Datensätze bleiben in Ihrem Haus, nach dem Prinzip der geringsten Rechte. Wir halten keine Kopie, die wir nicht brauchen, und nichts verlässt Ihre Reichweite ohne Ihr Wort.
Was in Ihrem Haus läuft, können Sie lesen und prüfen — keine Blackbox, der Sie blind vertrauen müssen. Der Maschinenraum bleibt unser; was Sie betreiben, ist Ihres.
Zwei Zeilen — der Boden, auf dem sie läuft, und die Arbeit, die sie tragen muss. Wir lesen sie selbst und antworten selbst.
Es liegt bereits auf einem Bildschirm in Zürich — nicht in einer Warteschlange, nicht in einem Ticket. Der Ingenieur, der das bauen würde, liest es und antwortet selbst.
·