Слой архитектора

Дизайн

Имя, адреса, мета и внешний вид этого проекта. Сохранённые настройки читаются на лету — изменение видно при следующей загрузке страницы, без пересборки.

Блоки

Все блоки, из которых этот проект собирает страницы, нарисованные настоящим рендерером. Сгруппированы по назначению.

Блок — это единица, из которой собрана страница. Страница здесь не свёрстанный файл, а СПИСОК БЛОКОВ. Рендереры уже собраны; страница лишь говорит, какие виды на ней стоят, в каком порядке и с каким текстом. Именно поэтому все страницы проекта выглядят одним продуктом, а не работой пяти разных людей.

workspace01workspace · без верхнего ряда

Рабочий экран, а не страница для чтения: меню слева, содержимое справа. Из него строятся дашборды и инструменты проекта. Раскладка взята у слоя архитектора, который на ней уже работает, а не придумана заново. На телефоне левая колонка превращается в выдвижной ящик: он открывается на 90 % ширины и закрывается от нажатия на любой пункт. Пункт становится ссылкой только там, где у него есть адрес: мёртвая ссылка в каталоге хуже её отсутствия.

Languages

Which languages the site speaks. Enabling one later is a setting, not a rebuild of the way the site works.

Add one language at a time

Each language is its own set of prerendered pages. Adding them one by one keeps a build failure attributable to a single change.

A language costs pages, not speed

Serving a prerendered page is the same work regardless of how many languages exist beside it — but every language multiplies what has to be generated.

Saving is not applying

The language set lives in the environment file and is baked in at build time. Until the project is rebuilt, the site keeps serving the previous set.

Enabled languages

This is the part a project fills with whatever it needs: fields, a table, an island. The block gives the frame and the rules; the content is yours.

  • English — the base language
  • Russian — the owner’s translation
workspace02workspace · с верхним рядом

Тот же вид с необязательным верхним рядом разделов — второй случай, и он сделан ПОЛЕМ, а не вторым видом. Рисунок остаётся тем же, добавляется одно поле. Два отдельных вида разошлись бы между собой на первой же правке темы — ровно так же, как разошлась бы цитата, у которой необязательную первую строку сделали бы отдельным видом.

Blocks

The catalogue of what pages are built from. The type answers what to put here; the kind answers what draws it.

The catalogue is closed

A kind not declared in the set does not exist for the application, and the build refuses. That is the whole reason two pages of one site cannot drift apart.

Below the row goes whatever the section is about — here a catalogue, on a dashboard a chart, in a tool its own controls.

chat01

Череда сообщений как секция страницы: лента инструмента чата, без поля ввода. Берут, чтобы показать переписку — с человеком, с ассистентом, с ботом. Под сообщением помещаются шесть родов вложений: аудио, изображение, видео и документ, которые библиотека узнаёт по типу содержимого, плюс место и календарное событие — наши. Работающий чат ставит потребитель, который владеет состоянием.

Chat

One implementation of a conversation for the whole project — and everything a message can carry.

@roma · 10:14

Sending the voice note and the photo from the site.

voice-note.m4a
development-loop-2026.jpg
development-loop-2026.jpg
assistant · 10:14

Got both. The photo is shown as a preview, the voice note as a row — the library decides that by media type, not by us.

@roma · 10:21

Here is the walkthrough and the offer.

walkthrough.mp4
offer.pdf
@roma · 10:26

And this is where we meet.

Fatih, Istanbul
41.01380, 28.94970
Walkthrough of the first build
Tue, 3 Sep, 18:00 · one hour, at the office
assistant · 10:26

The place and the event are ours: the library has neither, and both are drawn in the same row shape so a message keeps one list of attachments rather than two.

@roma · 10:31 · Переслано от @julia

Forwarded messages keep the line above the text — who wrote it, when, and where it came from.

Powered by Fractera