Слой архитектора
Дизайн
Имя, адреса, мета и внешний вид этого проекта. Сохранённые настройки читаются на лету — изменение видно при следующей загрузке страницы, без пересборки.
Блоки
Все блоки, из которых этот проект собирает страницы, нарисованные настоящим рендерером. Сгруппированы по назначению.
Блок — это единица, из которой собрана страница. Страница здесь не свёрстанный файл, а СПИСОК БЛОКОВ. Рендереры уже собраны; страница лишь говорит, какие виды на ней стоят, в каком порядке и с каким текстом. Именно поэтому все страницы проекта выглядят одним продуктом, а не работой пяти разных людей.
Section heading. It also builds the table of contents and the anchor.
A section heading
Sub-heading inside a section. It becomes the second level of the table of contents, nested under its own h2.
A sub-heading
Fourth level — a topic inside a sub-heading. For documents that are genuinely three levels deep.
A fourth-level heading
Fifth and deepest level: a label for a short enumeration. Same size as body text, set apart by caps — a heading smaller than prose stops reading as a heading.
A fifth-level label
Ordinary prose. Supports **bold** and [links](https://example.com).
A paragraph carries the argument. Inline markup is limited on purpose: bold for emphasis and a link — anything richer belongs in a block of its own, where the renderer can be held to a contract.
Somebody else’s words. `cite` names the author; the optional `lead` is a headline-sized first line INSIDE the quote — a field rather than a second kind, so the drawing cannot drift.
“A quote is the one place where the text is not yours — so the block shows attribution, and the attribution is a separate field rather than a line of prose.”
The same block, with a lead“The lead is not a heading tag: inside a quotation it would announce a section that does not exist, both in the table of contents and in the machine twin. It is a first line that simply reads larger.”
Unordered set: the order carries no meaning.
- Items that could be read in any order.
- Each one stands on its own.
- Inline markup works here too: bold.
Ordered steps: the order IS the meaning.
- First the goal is set.
- Then the work is done.
- Then a machine checks it.
An illustration. `media:<name>` takes it from the store, a path takes it from the project.
Code or an ASCII diagram. Never reformatted, never highlighted.
goal ──▶ agent ──▶ gates ──▶ green? ──▶ shipped
▲ │
└────── failure ────┘A footnote-weight remark: a source, a caveat.
A note sits below the argument and does not compete with it — quieter type, but still above the contrast threshold.
An aside the reader should not miss. `title` is the lead-in.
One action, one link. Inside a site the only legal form is the language root.
A call to action states what the reader gets, not what the button does.
Open the home pageA comparison. The LAST column is emphasized as “ours”.
| By hand | In a loop | |
|---|---|---|
| Who repeats the work | a person | a machine |
| Who notices a mistake | a person, later | a gate, immediately |
| What scales | nothing | the verification |
A card pointing at a full document, with a download button.
A pull-quote in the owner’s voice. The byline comes from the settings.
A quote in the owner’s own voice, signed by whoever the project settings say the author is — never by a name typed into the content.
Two or three columns on wide screens, stacked on a phone. Holds any blocks.
Left column
A container renders its children through the same registry, so anything nests inside anything.
Right column
- Including lists.
- Including another container.
A plain vertical grouping — a column’s contents, or a semantic wrapper.
A group adds no decoration of its own. It exists so a container can hold a sequence where one block was expected.
The project mark and the eyebrow above the H1. The mark comes from settings, never from content; the H1 itself is drawn by the page factory.
A landing page's first screen: the words on the left, the illustration on the right. The ONLY section that carries the H1 itself — the page using it declares `titleInBody`, so the factory does not print a second one. The picture names a SETTINGS SLOT, not a file: every project has its own and it changes in the panel without a rebuild.
Eyebrow above the titleThe headline of a landing page
The paragraph that earns the visit — long enough to say what the product is and why it matters, short enough to read before scrolling.

The OUTRO section: the last thing on a page, always full width, never governed by the width toggle. A marquee of all 82 languages — flag plus the name in that language — read straight from config/translations/language-metadata.ts, never from page data. Movement is pure CSS: it works with JavaScript off and stops for prefers-reduced-motion.
Eighty-two languages, ready before you need them
Every one of them ships with the product.
- English
- Français
- Español
- Português
- Deutsch
- Italiano
- Nederlands
- Svenska
- Norsk
- Dansk
- Suomi
- Íslenska
- Ελληνικά
- Polski
- Čeština
- Slovenčina
- Magyar
- Română
- Hrvatski
- Slovenščina
- Eesti
- Latviešu
- Lietuvių
- Malti
- Català
- Galego
- Cymraeg
- Gaeilge
- Euskera
- Русский
- Українська
- Беларуская
- Български
- Српски
- Bosanski
- Македонски
- Shqip
- Қазақша
- Oʻzbekcha
- Кыргызча
- Тоҷикӣ
- Türkmençe
- Azərbaycan
- Հայերեն
- ქართული
- Монгол
- العربية
- Türkçe
- עברית
- فارسی
- Kurdî
- Afrikaans
- Kiswahili
- Hausa
- Yorùbá
- Igbo
- አማርኛ
- isiZulu
- isiXhosa
- Kinyarwanda
- Soomaali
- 中文
- 日本語
- 한국어
- हिन्दी
- اردو
- বাংলা
- తెలుగు
- मराठी
- ಕನ್ನಡ
- ગુજરાતી
- മലയാളം
- தமிழ்
- नेपाली
- Tiếng Việt
- ไทย
- Bahasa Indonesia
- Bahasa Melayu
- Tagalog
- မြန်မာဘာသာ
- ភាសាខ្មែរ
- ລາວ
A marquee of the 22 project directions a customer can build — landing page, store, company brain. Read from config/project-types.ts and its corpus, never from page data, so it cannot drift from the catalogue the control panel offers. Right-to-left, pure CSS, 200px of blur at both edges; clicking a card pauses the belt and opens a reference dialog with no buttons at all. Title and note are optional and normally absent: the section sits directly under the hero, where a second heading argues with the H1.
A row of capability labels. The tone is a MEANING group, not a colour.
One row of measures: a number and the thing it measures. Semantically a description list, NOT a table — three independent value/label pairs carry no row-to-column relationship, and markup that promises one lies to whoever cannot see the page. `value` is machine-side and never translated; the label beside it is an ordinary page string.
- ×4
cheaper to build
- ×9
faster to launch
- ×100
more reliable in production
A set of independent cases, read ONE at a time: the list on the left, the opened case on the right — what is required on top, why it works here underneath. Different from flow: flow has ORDER and shows every step at once; here there is no order, and each case has two sides that must sit one under the other so the lower one reads as the answer to the upper. Switching is pure CSS (radio + :checked in styles/globals.css) — every case ships in the server markup, so the crawler and a visitor without JavaScript get all of it, and no separate copy "for robots" is needed. Panels are stacked in ONE grid cell, so the height equals the longest case and the page never jumps while switching. Six cases maximum — that is how many rules the stylesheet carries.
Two sides of the same case
Pick a case on the left; the card shows what it demands and how this project answers it.
What is required
The upper half states what the situation asks of you — plainly, in the words of somebody living through it rather than of somebody selling a cure.
Why it works here
The lower half answers. It reads as a reply because it stands underneath: put the two side by side and the connection turns into a comparison.
What is required
Cases are independent — there is no first and no last. That is precisely why this is not a numbered list: numbering would promise an order that does not exist.
Why it works here
The list on the left is a group of radio buttons, so a keyboard walks the cases with arrow keys and a screen reader announces them without any help from us.
What is required
Cases differ in length, and a card that resizes on every switch makes the page jump under the cursor — the reader loses the place they were holding.
Why it works here
All panels live in one grid cell, so the section is as tall as the longest case and stays that way. Nothing moves except the text fading in.
How something works, as steps that light up in turn with a spark running along the link between them. Order is the CONTENT here, not decoration — that is what separates it from an olist in a box. Movement is pure CSS (styles/globals.css): it works with JavaScript off and stands still for prefers-reduced-motion. The wording never dims — only the frame, the glow and the numbered node do, because text faded with opacity drops below the contrast threshold.
How it works
Three steps, and the third feeds the first: the loop is the product.
Stand the server up
An installer robot leaves you an operating system, a starter template, a control panel, storage and authorization — already wired together.
Work where you work
Sync with GitHub, clone onto your own machine, open your usual editor. The data keeps coming from your server; only the code runs locally.
Push, and it is live
A push starts a deployment on your own server, and the visitor sees the new version.
A section of equal cards with NO order between them — the same strip as `flow`, minus the numbers, the link and the animation. The difference is meaning, not decoration: lighting cards up in turn would show a sequence that does not exist, and an untruth told by a good animation is the more convincing kind. Hence `<ul>`, not `<ol>`. The header (badge, heading, lead) is the SHARED `SectionHead`, identical to `flow` and `noBill`. Equal height comes from the grid, never from measuring.
Three things worth knowing
A lead paragraph under the heading — it says what the cards have in common. The badge above carries the RUBRIC, and its colour is decided by the section, not by the content: a rubric has no semantic group to take a colour from.
A card holds one self-contained statement. Read in any order they still make sense — that is the test for using this kind instead of `flow`.
The cards are the same height because the grid row is as tall as its tallest item and each card fills it. No script measures anything.
A card is a CONTAINER: it holds any blocks — a heading, a list, a paragraph — so one kind serves both three short statements and two long side-by-side panels.
One cell of a `cards` section. A container: it holds any blocks. `tone` gives it a light gradient wash in the colour of its MEANING group — `data` for what you do, `access` for what is worth doing first — never "make it green". A cell with no tone is a plain border: a wash has to mean something, and a wash on every cell stops singling out anything.
Two cells, two meanings
What you do
- Order matters inside a cell.
- The cell holds any blocks.
What is worth doing first
- The same tone the panel warns with.
- Nothing is blocked by it.
A large spaced-out claim — the thing a section exists to say. The SAME drawing as the owner's pull-quote, minus the byline, and that difference is substantive: `founder` is signed with a name and a photo from the settings, so it marks what a PERSON said. A product rule was said by nobody; signing it would attribute to the owner a sentence he never uttered. The drawing is shared (`sections/pull-quote.server.tsx`) so the two cannot drift apart.
And this is a product rule, not advice: while a single case is unconfirmed the panel keeps its alarm lit and the coding agent refuses to build.
Приглашение в пунктирной рамке: здесь пока ПУСТО, и это место можно занять. Не `cta` — та сплошная и про готовое действие, а пунктир говорит обратное: ничего ещё нет. Ссылка — вся карточка целиком: попасть по ней должно быть так же легко, как промахнуться трудно. Рисунок общий с карточкой заявки на страницах подвала (`lib/ui/dashed-card.ts`): там она КНОПКА и открывает окно, здесь ССЫЛКА и ведёт по адресу — природа разная, вид один, и класс живёт в одном файле, чтобы они не разошлись.
The bills that will not arrive: the section is NAMED by an H2 on top, then a struck-through vendor with a badge saying what you stopped buying, then the conclusion as an H3. The vendor is a SEPARATE field because it is the one word never translated — merge it into the sentence and the renderer no longer knows what to strike; the badge beside it IS translated, because "a database" is what a person understands without knowing the name "Neon". The conclusion sits AFTER the list on purpose: the struck names are the evidence, the sentence is what follows from them. The strike runs 2px past each word through padding, never through blank characters typed into the data.
A fully independent space
The section header takes the same shape as `flow` and `cards` — heading centred, lead paragraph beneath it, same width. Three sections of one page, one anatomy.
you do not pay
Vercelhostingyou do not pay
Neondatabaseyou do not pay
Clerkauthorization
You pay nobody
You depend on nobody. The project is yours, end to end.
A bordered section holding any blocks. Three tones: plain, warn, accent.
A plain panel
The sections of a landing page are all this one kind, differing by tone and contents.
Worth doing
Something that is not blocking, but is expensive to postpone.
The one place
Where the model works
The only glow on the page: highlighting everything highlights nothing.
Questions and answers — the last content section of a page, and the only one search engines read as a pair of "term and definition". The heading is printed by the MECHANISM, not by the material: "Frequently asked questions" is already translated into ten languages in `lib/content/page-ui.ts`, so `title` is only for a page whose questions are about one thing rather than frequent. Inline markup is deliberately absent: the very same strings go into the `FAQPage` structured data, where asterisks and brackets would be printed to the search engine verbatim.
Частые вопросы
- Why is this a catalogue kind rather than layout inside the page template?
- Because a page must have ONE source of markup. While the template drew this section itself, the catalogue promised to show what a page is made of and knew nothing about it — and a rule added to the kind never reached the page.
- Does the page now declare its questions differently?
- No. They still live in the `faq` field of the language cell, and the same field feeds the FAQPage markup for search. Only the drawing moved.
- Can two of these stand on one page?
- No. The anchor is fixed so that it can be linked to from outside, and two sections would produce the same id twice.
The table of contents of a page. You never write it: the page factory builds `items` from the `h2` blocks of the body, using the SAME `headingId` the headings themselves print — two ways of turning a heading into an address drift apart on the first text with punctuation, and then the contents lead nowhere. Its own heading ("On this page") is a word of the mechanism and lives in `lib/content/page-ui.ts`. Written by hand, the list becomes a second copy of the headings that goes stale silently: the link keeps working while the word in it no longer matches.
A text field that can be dictated — the first kind of the catalogue that TAKES something from a visitor instead of showing them something. One kind, two sizes: 'line' puts the microphone inside the frame of a single-line input, 'area' puts a full-width button under a text area. While recording, an equaliser bar appears below; when recording stops, the bar is REPLACED in the same place by the transcript, which the visitor edits before accepting. It has NO receiver, by the owner's decision of 2026-08-28: the text lives in the browser and disappears on reload, so this is not a contact form. Transcription needs HTTPS, a session and a server key; without them the field stays an ordinary input and says why the microphone is unavailable.
What should the assistant be called?
One word or two. Hold the microphone and say it.
The transcript lands in the field only after you accept it — a misheard word costs one correction, not a second dictation.
What is this project about?
A paragraph is fine. The button sits under the whole area, not inside it.
The same control in its long form: only the shape of the field and the place of the button differ.
Рабочий экран, а не страница для чтения: меню слева, содержимое справа. Из него строятся дашборды и инструменты проекта. Раскладка взята у слоя архитектора, который на ней уже работает, а не придумана заново. На телефоне левая колонка превращается в выдвижной ящик: он открывается на 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
Тот же вид с необязательным верхним рядом разделов — второй случай, и он сделан ПОЛЕМ, а не вторым видом. Рисунок остаётся тем же, добавляется одно поле. Два отдельных вида разошлись бы между собой на первой же правке темы — ровно так же, как разошлась бы цитата, у которой необязательную первую строку сделали бы отдельным видом.
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.
Ряд карточек-возможностей, каждая заканчивается ссылкой. От `cards` отличается рисунком, а не полями: порядок внутри закреплён — заголовок, черта, текст, ссылка, — и ссылка прижата к низу, поэтому в ряду из трёх все ссылки стоят на одной линии, как бы ни различалась длина текста.
What the server brings
Three capabilities that arrive together, not one after another.
Orchestration
Several agent platforms share one context, so a task started in one continues in another.
Persistent memory
What the project already knows stays in context between sessions instead of being re-read every time.
One machine
Everything runs on the server you own. No cloud accounts to open, no per-token bill to watch.
Две половины с картинками — продукт, показанный с двух сторон. Первый вид семейства «демонстрация продукта», которое стояло пустым. Ровно две: форма держится на равновесии, а третья ячейка превращает пару в ряд, для которого уже есть `cards`.
Two sides of the same day
Writing
Open a tab and describe what is needed. No local environment to prepare first.
Shipping
One action moves the change to the address people visit. No pipeline to configure.
Ряд карточек, называющих, чья каждая вещь. Первый вид семейства «витрина», которое стояло пустым. Третья строка — то, ради чего вид существует: без неё карточка неотличима от `cards`, с ней ряд отвечает на вопрос, который витрине задают первым, — «а это чьё?».
What is already connected
Coding agent
Writes, runs and fixes code in a terminal.
Anthropic
Browser agent
Keeps the whole project in context while working in a tab.
OpenAI
Local runner
Runs on the machine without sending anything outward.
in-house
Слайды, которые листает человек. БЕЗ автоперехода — осознанное отличие от витрины, откуда взята форма: движение, которое нельзя остановить, отнимает право дочитать. Листание — переключатель и правило CSS, поэтому работает при выключенном JavaScript, а все слайды лежат в разметке, где их видит поисковик. Предел — десять слайдов.
Step by step
Each slide is one move; nothing advances on its own.
The server is born
A clean machine becomes a working contour without anyone configuring it by hand.
The project arrives
The repository is yours; the code travels to it and back with one action.
The change is live
What was edited appears at the address people visit.
Тарифы с переключателем периода. Перенесены из внешней библиотеки блоков без её мёртвого груза: восемь полей источника были объявлены и ни разу не отрисованы. Обе цены лежат в разметке, показана одна — поисковик читает обе, и годовая цена, та самая, которую сравнивают, существует для всех, а не только для браузера с работающими скриптами. Переключатель — радиокнопка и правило CSS, а не островок.
Simple pricing plans
Choose the plan that fits your needs. Start free and scale as you grow.
$0
$0
- Up to 5 components
- Community support
- Weekly updates
- 100MB storage
- Basic analytics
$20
$200
Per month
Per year
- Unlimited components
- Priority support
- Daily updates
- 10GB storage
- Advanced analytics
$80
$800
Per month
Per year
- Unlimited components
- Dedicated support
- Real-time updates
- Unlimited storage
- Custom integrations
Широкая полоса с акцентной чертой сверху и снизу: заголовок, абзац и кнопка слева, картинка справа. Перенесена с витрины. Занимает ВСЮ ШИРИНУ СВОЕГО КОНТЕЙНЕРА и ни пикселем больше — приём выхода за колонку (`w-screen` плюс отрицательный отступ) снят владельцем 2026-08-30: он ломал разметку страницы вокруг. Где полосе место — часть описания вида: нижняя часть страницы, которая сама растянута на всю ширину. Фон полосы совпадает с фоном страницы, отделяют её две черты и ширина.
Your own white-label platform on Open Code
The sources are open. Fork the repository, raise your own instance and build products with AI — for yourself or as a business: deploying servers for clients and consulting alongside.

Сетка возможностей: значок, заголовок, ярлык-пилюля, описание. Перенесена с витрины — две колонки на телефоне, три на мониторе, и промежутки между строками намеренно шире, чем между колонками: рамок у ячеек нет, и разделяет их только расстояние. От `badges` отличается предметом: там сами ярлыки, здесь ярлык — метка ВНУТРИ возможности, у которой есть ещё заголовок, значок и объяснение.
What comes with the server
Twelve things that are already there — not a roadmap.
- for everyone
Agents with memory
Ready to answer from what the project already knows, without an hour of setup first.
- for everyone
Voice input
Dictate into any field meant for speech; the rest keep the ordinary keyboard.
- for everyone
Sign-in out of the box
Email links and Google, with roles and sessions. Nothing to configure to start.
- for everyone
Database and storage
Rows and files on the machine you own, behind one door and one key.
- for everyone
Backups by parts
Six parts chosen one at a time: people restore one thing, not everything.
- for everyone
Your repository
The project travels to your GitHub and back with one action.
- for everyone
Static by default
Pages are built ahead of time, so a traffic spike costs nothing extra.
- for everyone
Products on one server
A landing page today, a scheduled watcher next week — neither can damage the other.
- for everyone
Many languages
Enabling one later is a setting, not a rebuild of the way the site works.
- advanced
Maps on your machine
Routes and distances computed on the server, so requests are not metered one by one.
- advanced
Communication channels
A two-way link with the project, not just the ability to send a message.
- advanced
Search by meaning
Next to the rows it describes: one backup, one access contour, one meaning of deletion.
Витринная карусель, перенесённая один в один: автопереход раз в пять секунд с затуханием 700 мс, слайды блоками по три, стрелки листают блок целиком, кружки с номерами ставят паузу и показывают ‖, полоса прогресса следует за паузой, свечение появляется после загрузки картинки, ленивая загрузка текущего и следующего блока, пауза при уходе секции из вида. Цвета берутся из темы, а не из палитры витрины. Все слайды продублированы скрытым блоком для поисковика: карусель раскрывает их по одному скриптом.
Step by step, how it works
Five seconds per slide; click a circle to hold it.
Your server
заглушка — картинка появится позже
Your repository
заглушка — картинка появится позже
Your address
заглушка — картинка появится позже
Your data
заглушка — картинка появится позже
Your server
Credentials — and it is ready
Your repository
The code is yours from day one
Your address
One action to publish
Your server
Credentials — and it is ready
Infrastructure right after purchase
A clean machine becomes a working contour: site, panel, agents, memory, database and storage, without anyone configuring them by hand.
Infrastructure right after purchase — Your server, Credentials — and it is ready
A clean machine becomes a working contour: site, panel, agents, memory, database and storage, without anyone configuring them by hand.
The project arrives in your GitHub — Your repository, The code is yours from day one
What travels there is the application; the cockpit stays on the server, which is why an editing mistake cannot break it.
The change is live — Your address, One action to publish
What was edited appears at the address people visit, without a pipeline to configure first.
Memory that survives the session — Your data, Four stores, one door
Rows, files, meaning-search and a graph of connections sit behind one key on the machine you own.
Тарифы поддержки, перенесены с витрины один в один: ряд из трёх, у каждого крупная сумма с периодом по одной базовой линии, подпись, достоинства со звёздочкой и кнопка внизу. Один тариф несёт ярлык НАД карточкой и залит — и ярлык единственное, что делает его выделенным: выделить тариф, не объяснив за что, нельзя. Под рядом — строка условия и широкая ссылка на тех, кто уже поддерживает. НЕ прайс-лист: цена обязывает, взнос нет, поэтому кнопка ведёт туда, где принимают взносы, а не в оплату.
Support Open Code agentic engineering
This project is built by one person. Many features are still ahead — and your support keeps the lights on.
If you have the means to help, your name appears on the «Sponsors» page of the project, here and on GitHub.
$1
/mo
Coffee tier — every dollar counts
Your name listed on the Sponsors page, here and on GitHub
A direct line to submit feature requests
$5
/mo
Supporter — fuel the roadmap
Access to the private sponsors-only group
Instructions to remove the white-label badge
$20
/mo
Champion — featured on the Sponsors page
Personal one-on-one access to the founder
Access to all VIP features and skills
Sign in first to become a sponsor.
Our sponsors
See everyone who supports the project →
Две половины, между которыми ходит подсветка: активная занимает 7/10 ширины, соседняя 3/10, а полоса под заголовком отсчитывает девять секунд. Перенесена с витрины. От `splitPair` отличается ПОВЕДЕНИЕМ, а не рисунком: `splitPair` берут, чтобы показать продукт с двух равных сторон, этот вид — чтобы противопоставить две вещи и заставить смотреть на одну за раз. Ни строки скрипта: движение делает анимация, выбор — радиокнопка, и нажатие на половину останавливает подсветку на ней навсегда.
Two halves of the same day
The spotlight moves on its own every nine seconds. Click a half and it stops there.
Сетка площадок, где свечение идёт ИЗ ЩЕЛЕЙ: ячейки стоят в двух пикселях друг от друга поверх радиальной подложки, поэтому решётка ярче в середине и гаснет к краям — ни рамок, ни теней. Перенесена с витрины. Число ячеек кратно шести: колонок две на телефоне и три на мониторе, и только кратное шести заполняет обе раскладки без обрубка. От `featureGrid` отличается предметом: тот перечисляет умения ПРОДУКТА, этот — ЧУЖИЕ площадки, отсюда строка компании и оговорка о торговых марках внизу.
Five agent platforms, one environment
No API keys, no local setup — all five run on your server with full terminal access and shared memory.
Claude Code
Writes, runs and fixes code in your terminal. The gold standard for AI-assisted development.
Anthropic
Codex
Browser-native coding agent. Full project context, no terminal required.
OpenAI
Gemini CLI
Long-context coding agent. Understands the whole project structure in one prompt.
Qwen Code
Open-source coding agent. No subscription lock-in — powerful and free.
Alibaba
Kimi Code
Context-first model for large codebases. Excellent for refactoring and architecture work.
Moonshot
LightRAG
Your company brain: persistent vector memory shared across all five platforms.
Fractera
* The project runs on your own subscriptions to these platforms — no additional fees or commissions are charged for their use. Connect one, several or all of them, at your own discretion.
Два ряда с накоплением по оси времени и выбор отрезка в шапке. Берут, когда вопрос — КАК МЕНЯЛОСЬ ЦЕЛОЕ и из чего оно состояло: накопление отвечает на оба сразу. Не для долей одного момента — это круговая. Данные необязательны: без них вид рисует образец, и карточка каталога не бывает пустой.
Столбцы по ряду времени с переключателем в шапке: два итога, рисуется один ряд. Берут, когда величины сравнивают поточечно и важна ровно высота. Два ряда столбиками за девяносто дней превращаются в кашу — поэтому источник переключает, а не накапливает.
Линия по ряду времени с тем же переключателем в шапке, что у столбцов. Берут, когда важна ФОРМА движения — рост, провалы, сезонность, — а не высота отдельного значения. Точки скрыты намеренно: девяносто одна точка читается пунктиром, а не кривой.
Целое, разделённое на части в ОДИН момент, подписи долей стоят прямо на секторах. Берут, когда вопрос — из чего состоит целое. Никогда для движения во времени: у круговой нет оси времени, а две круговые рядом читаются как одна картинка, а не как изменение.
Несколько мер сразу, у каждой своя ось по кругу, два ряда наложены друг на друга. Берут, когда важна форма профиля — где сильно, где проседает, — а не точные значения. Шесть осей — потолок: дальше подписи наезжают друг на друга.
Те же доли, что у круговой, но у каждой своя дорожка: полосу читают относительно дорожки, поэтому видно и абсолютную величину, а не только соотношение. Подписи лежат на самих полосах и переживают любую палитру — они смешиваются по яркости.
Короткая стопка столбцов, смысл которой — ПОДСКАЗКА: без указателя, без подсветки курсора и открыта с первого кадра, а не по наведению. Берут, чтобы показать вид подсказки, и на страницах, которые читают с телефона, где наведения не существует.
Четыре слоя вокруг центра: кольца, медленно вращающийся сектор и значок в середине, а от lg карточки стоят по четырём углам. Берут, когда продукт держится ровно на четырёх независимых опорах и показать их надо ОДНОЙ конструкцией, а не списком. Число — геометрия, а не вкус: пятой карточке негде встать, при трёх пустует угол. Движение необязательно по устройству: сервер печатает покой, анимация приходит только после входа указателя и только на широком экране.
Security is built into the foundation
Four layers of protection — each one works on its own.
Made to fit the regulator
01Personal data stays where the law of your country requires it to stay — on your own server, under your own jurisdiction.
your country's lawYour data survives you
02Backups, moving to another server, export and import — the project is yours to carry away whole.
backups and movingMoney with no surprises
03Cloud AI costs and everything else stay on the server you own. Nothing bills you from somewhere else.
no surprisesYour own authorization
04The whole project is closed by authorization that belongs to you. Security is entirely in your hands.
your authorizationЧереда сообщений как секция страницы: лента инструмента чата, без поля ввода. Берут, чтобы показать переписку — с человеком, с ассистентом, с ботом. Под сообщением помещаются шесть родов вложений: аудио, изображение, видео и документ, которые библиотека узнаёт по типу содержимого, плюс место и календарное событие — наши. Работающий чат ставит потребитель, который владеет состоянием.
Chat
One implementation of a conversation for the whole project — and everything a message can carry.
Sending the voice note and the photo from the site.
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.
Here is the walkthrough and the offer.
And this is where we meet.
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.
Forwarded messages keep the line above the text — who wrote it, when, and where it came from.
