Labs · веб-поверхность
Сайт, который переживёт свой редизайн.
Для тех, кто не имеет права на отказ: государственный портал, международная компания, серьёзная операция. Написан вручную, раздаётся с edge-узлов на языке самого посетителя, а SEO и автоматизация, которые держат его живым, вшиты внутрь — не привинчены сверху.
Не шаблон, в который вставили ваш логотип. Документ, написанный под один-единственный сайт.
Семантичная разметка, доступность, вес настолько малый, что страница читается до загрузки первого байта JavaScript. Один сайт, одна задача — ничего лишнего в поставке.
SEO — не второй подрядчик. Структурированные данные и чистая разметка пишутся вместе со страницей, поэтому сайт находят те, кому он нужен, — на семи языках, и каждый из них реальная страница.
Формы, которые доходят до человека, контент, который обновляется сам, тихая автоматизация за страницей — часть сборки, поэтому сайт работает и тогда, когда вы за ним не смотрите.
Четыре цифры сайта, написанного вручную.
Ремесло серьёзного сайта — это сдержанность: верный тег, данные, из которых он рендерится, и скрипт только там, где он отрабатывает свой вес, — на самых новых нативных 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": "ru", "updated": "2026-11-02T09:14:00Z", "actions": [ { "label": "apply", "href": "/ru/apply" }, { "label": "status", "href": "/ru/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. -->
Почему написанный вручную сайт выигрывает у шаблона каждый раз, когда это важно.
Шаблон нельзя сделать по мерке — он сделан для всех. Страницу, которой нужен мегабайт, чтобы показать одну фразу, нельзя сделать быстрой — её вес и есть её суть. Поэтому на этой странице нет шаблона и нет прайс-листа: мы измеряем, что сайт должен делать, и называем цену за измеренное.
Ещё до первой строки кода — как хранится ваша работа. Эта часть не обсуждается.
NDA здесь по умолчанию, а не доплата. То, что вы передаёте, читает один инженер и никто больше — ничего не продаётся, не раскрывается и не передаётся дальше.
Доступы и записи остаются в вашем доме, по принципу минимальных привилегий. Мы не держим ни одной копии, которая нам не нужна, и ничто не выходит из вашей зоны контроля без вашего слова.
То, что работает в вашем доме, вы можете читать и проверять — никакого чёрного ящика, которому нужно верить не глядя. Машинное отделение остаётся нашим; то, что вы эксплуатируете, — ваше.
Хватит двух строк: для чего он и кто должен его найти. Мы читаем их сами и отвечаем сами.
Оно уже на экране в Цюрихе — не в очереди и не в тикете. Инженер, который это построит, читает его и отвечает сам.
·