Labs · 製品のすべて
ウェブとアプリを一つのコアから。一つの作り、一つの基準。
お客様が読むサイトと、あなたの現場が携えるアプリは、二つのプロジェクトではありません — 一つのシステムの二つの顔です。測られた単一のコアの上に両方を築くので、互いにずれることがなく、 その全体を一つの手が引き受けます。
サイトとアプリは同じ真実を読みます。一度変えれば、両方がともに動きます。
一つのものとして築いたプラットフォームの四つの数字。
これを実現する、まさにその四つの部品です。順に読んでください。真実、それに従う二つの顔、
そしてどちらも遅いまま出荷させないゲート。
コードは英語のままです — 技術の世界共通語として。
// MatchTop · the core — one definition both surfaces obey. // Written once. The portal and the field app read the same truth — they cannot drift. type Case = { id: Uuid, status: "open" | "review" | "closed", locale: Locale, // one language list, honoured by both surfaces updated: Instant, // stamped at the edge — one clock for web and app } service Portal { get case(id) -> Case list cases(for: Holder) -> Case[] }
<!-- the web surface · server-rendered at the edge, zero JS to read a case --> <article class="case" lang="{{ case.locale }}"> <h1>{{ t("case.title", case.id) }}</h1> <p class="status status--{{ case.status }}">{{ t("status." + case.status) }}</p> <time datetime="{{ case.updated }}">{{ t.date(case.updated) }}</time> </article> // same Case. same locale list. no bundle to boot before the page can be read.
// the app surface · the same contract, compiled. A wrong field will not build. #[derive(Deserialize)] struct Case { id: Uuid, status: Status, // an enum, not a loose string — the compiler holds the line locale: Locale, updated: Instant, } impl Case { /// Works offline: the last truth we fetched is still the same shape. fn is_open(&self) -> bool { matches!(self.status, Status::Open | Status::Review) } }
"""MatchTop · the gate — one standard over both surfaces. Standard library only. It runs in your pipeline, and it can say no to either face.""" import sys BUDGET = {"first_paint_ms": 100, "js_kb": 0, "a11y": "AA"} # promised, so measured def gate(surface: str, got: dict) -> None: fails = [k for k, limit in BUDGET.items() if _worse(got[k], limit)] # every promise is a test if fails: print(f"HELD · {surface} · " + ", ".join(fails)) sys.exit(1) # neither the site nor the app ships below the line print(f"GREEN · {surface} · measured, and worthy of your name on it")
なぜ全体を一つの家でまかなう方が、継ぎ目で縫い合わせた二つの業者に勝るのか。
これは二つをまとめ買いする割引ではありません。異なるかたちです。 二つの顔を持つ単一のシステムであって、貼り合わせた二つのシステムではありません。サイトを売って アプリを下請けに出す店は、一つのコアを渡せません — 持っていないからです。そこが、 値段では打ち負かせない部分です。
一行を書く前に、あなたの仕事がどう守られるか。この部分は交渉の余地がありません。
NDA はここでの標準であり、追加の売り込みではありません。あなたが共有したものは一人の技術者だけが読み、 ほかの誰も読みません — 売られることも、共有されることも、受け渡されることもありません。
認証情報と記録は最小権限のもと、あなたの家に留まります。必要のない写しは持たず、 あなたの言葉なしに何もあなたの手の届く範囲を離れません。
あなたの家で動くものは、あなたが読み、監査できます — 見えないまま信じるブラックボックスではありません。 機関室は私たちのもの、あなたが動かすものはあなたのものです。
製品のすべてを、二行で。私たち自身が読み、私たち自身が答えます — この窓の後ろに行列はありません。
すでに Zürich の画面の上にあります — 行列の中でも、チケットの中でもなく。 これを築くことになる技術者が読み、自ら返信します。
·