Labs · ウェブの表層
リニューアルより長く生きるサイト。
決して落ちてはならないもののために — 政府のポータル、国際的な企業、真剣な運用。 手書きで、訪問者自身の言葉でエッジから配信し、サイトを生かし続ける SEO と自動化は、後付けではなく 織り込んであります。
あなたのロゴを入れただけのテーマではありません。それが仕えるその一つのサイトのために書かれた文書です。
セマンティックで、アクセシブルで、JavaScript が一バイトも読み込まれる前に読めるほど軽い。 一つのサイト、一つの目的 — 必要のないものは何も出荷しません。
SEO は二番目の業者ではありません。構造化データと整った markup は、ページが築かれるときに 書かれ、ふさわしい人が見つけられるようにします — 七つの言葉で、それぞれが本物のページとして。
人に届くフォーム、自ら更新されるコンテンツ、ページの背後の静かな自動化 — 構築の一部として、 あなたが見ていないときもサイトが働き続けます。
手で築いたサイトの四つの数字。
真剣なサイトの技とは抑制です。正しいタグ、それがレンダリングするデータ、
そしてその重みに見合う場所にだけ加えるスクリプト — ブラウザの最新のネイティブ API を使い、
フレームワークなしで — さらに SEO をページそのものに書き込みます。
コードは英語のままです — 技術の世界共通語として。
<!-- a page you can read before one byte of JavaScript arrives --> <main id="content"> <h1>Office of the Registry</h1> <nav aria-label="Services"> <a href="/apply">Apply</a> <a href="/status" aria-current="page">Check status</a> </nav> <article> <h2>Your case</h2> <p class="status status--open">Open — in review</p> <time datetime="2026-11-02T09:14:00Z">Updated today</time> </article> </main> <!-- no div soup, no bundle to boot. a landmark, a heading, a link. -->
// the data the page renders from — one shape, every language. the app reads the same. { "case": { "id": "c_7f3a91c4", "status": "open", "locale": "fr", "updated": "2026-11-02T09:14:00Z", "actions": [ { "label": "apply", "href": "/fr/apply" }, { "label": "status", "href": "/fr/status" } ] } }
// JavaScript · added only where it earns its weight — the browser's newest native APIs, no framework customElements.define("case-status", class extends HTMLElement { #case = JSON.parse(this.dataset.case ?? "{}"); // the same JSON the page already shipped with connectedCallback() { // View Transitions API — native to the browser, zero bundle to boot document.startViewTransition?.(() => this.#render()) ?? this.#render(); } #render() { this.textContent = this.#case.status; // enhances markup that already works without it } });
<!-- SEO is not a plugin here — it is written as the page is built --> <link rel="alternate" hreflang="fr" href="https://…/fr/status"> <link rel="alternate" hreflang="ar" href="https://…/ar/status"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "GovernmentService", "name": "Registry — case status", "availableLanguage": ["en","fr","de","ar","es","ja","zh"], "provider": { "@type": "GovernmentOrganization", "name": "Office of the Registry" } } </script> <!-- found and chosen is the same job as built. -->
なぜ手書きのサイトは、ここぞというとき、いつもテーマに勝るのか。
テーマは寸法どおりにできません — 万人のためにつくられたものだからです。一文を見せるのに 1メガバイトを要するページは、速くできません — その重さこそが本質だからです。だからこのページには テンプレートがなく、だから価格表もありません。サイトが何をすべきかを測り、測ったものを見積もります。
一行を書く前に、あなたの仕事がどう守られるか。この部分は交渉の余地がありません。
NDA はここでの標準であり、追加の売り込みではありません。あなたが共有したものは一人の技術者だけが読み、 ほかの誰も読みません — 売られることも、共有されることも、受け渡されることもありません。
認証情報と記録は最小権限のもと、あなたの家に留まります。必要のない写しは持たず、 あなたの言葉なしに何もあなたの手の届く範囲を離れません。
あなたの家で動くものは、あなたが読み、監査できます — 見えないまま信じるブラックボックスではありません。 機関室は私たちのもの、あなたが動かすものはあなたのものです。
二行で十分です — 何のためか、そして誰が見つけるべきか。私たち自身が読み、 私たち自身が答えます。
すでに Zürich の画面の上にあります — 行列の中でも、チケットの中でもなく。 これを築くことになる技術者が読み、自ら返信します。
·