diff --git a/admin/admin.css b/admin/admin.css index 613862e..49b60ea 100644 --- a/admin/admin.css +++ b/admin/admin.css @@ -400,6 +400,7 @@ p { .breadcrumb, .panel-note, .field-path, +.media-upload-hint, .block-meta, .group-desc, .status, @@ -1103,6 +1104,13 @@ textarea { line-height: 1.42; } +.editor-error-note { + border-radius: var(--launcher-radius-control); + background: rgba(255, 116, 116, 0.09); + color: #ffd8d8; + padding: 1rem; +} + .service-media-field { min-width: 0; } @@ -1213,14 +1221,35 @@ textarea { height: 2.78rem; place-items: center; overflow: hidden; + border: 1px solid rgba(255, 255, 255, 0.16); border-radius: var(--launcher-radius-circle); - background: rgba(255, 255, 255, 0.055); + background: + linear-gradient(45deg, rgba(255, 255, 255, 0.18) 25%, transparent 25% 75%, rgba(255, 255, 255, 0.18) 75%), + linear-gradient(45deg, rgba(255, 255, 255, 0.18) 25%, transparent 25% 75%, rgba(255, 255, 255, 0.18) 75%), + rgba(18, 18, 20, 0.92); + background-position: + 0 0, + 6px 6px, + 0 0; + background-size: + 12px 12px, + 12px 12px, + auto; color: rgba(255, 255, 255, 0.62); font-size: 0.78rem; text-transform: none; } -.service-media-preview img, +.service-media-preview img { + position: absolute; + inset: 0.28rem; + display: block; + width: calc(100% - 0.56rem); + height: calc(100% - 0.56rem); + border-radius: inherit; + object-fit: contain; +} + .service-media-preview video { position: absolute; inset: 0; @@ -1231,6 +1260,28 @@ textarea { object-fit: cover; } +.service-media-preview.is-solid-dark { + border-color: rgba(255, 255, 255, 0.34); + box-shadow: + inset 0 0 0 1px rgba(255, 255, 255, 0.08), + 0 0 0 1px rgba(255, 255, 255, 0.08); +} + +.media-upload-hint { + font-size: 0.72rem; + font-weight: 720; + line-height: 1.32; + text-transform: none; +} + +.media-upload-hint:empty { + display: none; +} + +.media-upload-hint:not(:empty) { + color: rgba(255, 228, 170, 0.9); +} + .media-upload-error { color: #ffd2d2; font-size: 0.72rem; diff --git a/admin/admin.js b/admin/admin.js index 7b6d88a..3d501f7 100644 --- a/admin/admin.js +++ b/admin/admin.js @@ -362,6 +362,12 @@ function mediaKindFromValue(value) { return null; } +function shouldWarnAboutSolidLogoBackground(editableField) { + const path = String(editableField?.path || "").toLowerCase(); + const label = String(editableField?.label || "").toLowerCase(); + return /logo|icon|wordmark|логотип|икон/.test(`${path} ${label}`); +} + function uploadBucketForField(block, editableField) { const path = editableField.path.toLowerCase(); const currentValue = String(getByPath(block, editableField.path) ?? "").toLowerCase(); @@ -773,6 +779,19 @@ function setStructuralControlsDisabled(disabled) { } } +function renderEditorError(error) { + console.error(error); + el.empty.classList.add("hidden"); + el.form.classList.remove("hidden"); + el.contentFields.innerHTML = ""; + + const note = document.createElement("div"); + note.className = "empty-note editor-error-note"; + note.textContent = `Редактор не смог отрисовать поля блока: ${error.message}`; + el.contentFields.append(note); + setStatus(`Ошибка редактора: ${error.message}`); +} + function renderEditor() { const region = activeRegion(); const block = activeBlock(); @@ -801,13 +820,24 @@ function renderEditor() { el.enabled.disabled = isStatic; el.enabled.closest(".toggle-row").hidden = isStatic; setStructuralControlsDisabled(isStatic); - renderContentFields(block); + + try { + renderContentFields(block); + } catch (error) { + renderEditorError(error); + } + el.json.value = JSON.stringify(block, null, 2); } function renderAll() { - renderRegions(); - renderEditor(); + try { + renderRegions(); + renderEditor(); + } catch (error) { + console.error(error); + setStatus(`Ошибка рендера админки: ${error.message}`); + } } function syncBlockFromFields() { @@ -840,8 +870,62 @@ function groupEditableFields(block) { return groups; } -function renderMediaPreview(preview, value) { +function resetMediaPreview(preview, hint) { + preview.classList.remove("is-image", "is-video", "is-solid-dark"); preview.innerHTML = ""; + preview.title = ""; + if (hint) hint.textContent = ""; +} + +function analyzeLogoPreview(image, preview, hint, editableField) { + if (!hint || !shouldWarnAboutSolidLogoBackground(editableField)) return; + + try { + const sampleSize = 24; + const canvas = document.createElement("canvas"); + const context = canvas.getContext("2d", { willReadFrequently: true }); + if (!context) return; + + canvas.width = sampleSize; + canvas.height = sampleSize; + context.drawImage(image, 0, 0, sampleSize, sampleSize); + const data = context.getImageData(0, 0, sampleSize, sampleSize).data; + let opaque = 0; + let edgeOpaque = 0; + let edgeDark = 0; + + for (let y = 0; y < sampleSize; y += 1) { + for (let x = 0; x < sampleSize; x += 1) { + const offset = (y * sampleSize + x) * 4; + const alpha = data[offset + 3]; + if (alpha < 240) continue; + + opaque += 1; + const isEdge = x <= 1 || y <= 1 || x >= sampleSize - 2 || y >= sampleSize - 2; + const isDark = data[offset] + data[offset + 1] + data[offset + 2] < 66; + + if (isEdge) { + edgeOpaque += 1; + if (isDark) edgeDark += 1; + } + } + } + + const total = sampleSize * sampleSize; + const edgeRatio = edgeOpaque ? edgeDark / edgeOpaque : 0; + const opaqueRatio = opaque / total; + + if (opaqueRatio > 0.92 && edgeRatio > 0.82) { + preview.classList.add("is-solid-dark"); + hint.textContent = "Файл с непрозрачным тёмным фоном. Для логотипа на тёмном интерфейсе лучше PNG/SVG с прозрачностью."; + } + } catch { + // External images can be blocked by canvas CORS. Preview still works, just without diagnostics. + } +} + +function renderMediaPreview(preview, value, hint = null, editableField = null) { + resetMediaPreview(preview, hint); const src = adminPreviewUrl(value); const kind = mediaKindFromValue(value); @@ -853,6 +937,7 @@ function renderMediaPreview(preview, value) { if (kind === "video") { const video = document.createElement("video"); + preview.classList.add("is-video"); video.src = src; video.autoplay = true; video.loop = true; @@ -864,12 +949,15 @@ function renderMediaPreview(preview, value) { if (kind === "image") { const image = document.createElement("img"); + preview.classList.add("is-image"); image.src = src; image.alt = ""; image.loading = "lazy"; + image.addEventListener("load", () => analyzeLogoPreview(image, preview, hint, editableField)); image.addEventListener("error", () => { - preview.innerHTML = ""; + resetMediaPreview(preview, hint); preview.textContent = "FILE"; + if (hint) hint.textContent = "Превью не загрузилось. Проверьте путь или внешний URL."; }); preview.append(image); return; @@ -878,13 +966,13 @@ function renderMediaPreview(preview, value) { preview.textContent = "FILE"; } -function updateMediaFieldValue({ block, editableField, hiddenInput, urlInput, fileName, preview, value }) { +function updateMediaFieldValue({ block, editableField, hiddenInput, urlInput, fileName, preview, hint, value }) { hiddenInput.value = value; urlInput.value = value; fileName.textContent = truncateText(fileNameFromUrl(value), 28); fileName.title = fileNameFromUrl(value); setByPath(block, editableField.path, value); - renderMediaPreview(preview, value); + renderMediaPreview(preview, value, hint, editableField); if (activeBlock() === block) { el.json.value = JSON.stringify(block, null, 2); @@ -911,6 +999,7 @@ function renderMediaField({ block, editableField, grid }) { const urlSourceButton = document.createElement("button"); const preview = document.createElement("div"); const path = document.createElement("span"); + const hint = document.createElement("span"); const error = document.createElement("span"); const inputId = `media-${editableField.path.replace(/[^a-z0-9_-]+/gi, "-")}-${Math.random().toString(36).slice(2)}`; let source = /^(https?:)?\/\//i.test(value) ? "url" : "file"; @@ -971,10 +1060,11 @@ function renderMediaField({ block, editableField, grid }) { sourceSwitch.append(fileSourceButton, urlSourceButton); preview.className = "service-media-preview"; - renderMediaPreview(preview, value); + renderMediaPreview(preview, value, hint, editableField); path.className = "field-path"; path.textContent = `${editableField.path} -> assets/uploads/${uploadBucketForField(block, editableField)}`; + hint.className = "media-upload-hint"; error.className = "media-upload-error"; fileSourceButton.addEventListener("click", () => setSource("file")); @@ -991,6 +1081,7 @@ function renderMediaField({ block, editableField, grid }) { urlInput, fileName, preview, + hint, value: urlInput.value, }); }); @@ -1027,6 +1118,7 @@ function renderMediaField({ block, editableField, grid }) { urlInput, fileName, preview, + hint, value: payload.url, }); setSource("file"); @@ -1042,7 +1134,7 @@ function renderMediaField({ block, editableField, grid }) { setSource(source); control.append(fileControl, urlInput, sourceSwitch, preview); - container.append(labelRow, hiddenInput, control, path, error); + container.append(labelRow, hiddenInput, control, path, hint, error); grid.append(container); } diff --git a/assets/uploads/images/static-elements/2025-05-14-23.46.35-mqupw9qd.jpg b/assets/uploads/images/static-elements/2025-05-14-23.46.35-mqupw9qd.jpg new file mode 100644 index 0000000..4c283bb Binary files /dev/null and b/assets/uploads/images/static-elements/2025-05-14-23.46.35-mqupw9qd.jpg differ diff --git a/assets/uploads/images/static-elements/dclogo_darck-mquq1l13-transparent.png b/assets/uploads/images/static-elements/dclogo_darck-mquq1l13-transparent.png new file mode 100644 index 0000000..ee8a16a Binary files /dev/null and b/assets/uploads/images/static-elements/dclogo_darck-mquq1l13-transparent.png differ diff --git a/assets/uploads/images/static-elements/dclogo_darck-mquq1l13.png b/assets/uploads/images/static-elements/dclogo_darck-mquq1l13.png new file mode 100644 index 0000000..ffef888 Binary files /dev/null and b/assets/uploads/images/static-elements/dclogo_darck-mquq1l13.png differ diff --git a/assets/uploads/images/static-elements/dclogo_darck-mquq2kmb.png b/assets/uploads/images/static-elements/dclogo_darck-mquq2kmb.png new file mode 100644 index 0000000..ffef888 Binary files /dev/null and b/assets/uploads/images/static-elements/dclogo_darck-mquq2kmb.png differ diff --git a/assets/uploads/images/static-elements/dcnt_dark-mqupt7tb.png b/assets/uploads/images/static-elements/dcnt_dark-mqupt7tb.png new file mode 100644 index 0000000..f6624aa Binary files /dev/null and b/assets/uploads/images/static-elements/dcnt_dark-mqupt7tb.png differ diff --git a/assets/uploads/images/static-elements/dcnt_dark-mqupuge5.png b/assets/uploads/images/static-elements/dcnt_dark-mqupuge5.png new file mode 100644 index 0000000..f6624aa Binary files /dev/null and b/assets/uploads/images/static-elements/dcnt_dark-mqupuge5.png differ diff --git a/assets/uploads/images/static-elements/dcnt_dark-mqupvf12.png b/assets/uploads/images/static-elements/dcnt_dark-mqupvf12.png new file mode 100644 index 0000000..f6624aa Binary files /dev/null and b/assets/uploads/images/static-elements/dcnt_dark-mqupvf12.png differ diff --git a/content/pages/home.json b/content/pages/home.json index f6339be..2c46b74 100644 --- a/content/pages/home.json +++ b/content/pages/home.json @@ -34,7 +34,7 @@ "target": "" } ], - "logoSrc": "./assets/webflow/images/69ad964d951f9d17cc5a919e_logo-app.svg" + "logoSrc": "./assets/uploads/images/static-elements/dclogo_darck-mquq1l13-transparent.png" }, "notifications": [ { diff --git a/index.html b/index.html index 4e658f6..1d44d30 100644 --- a/index.html +++ b/index.html @@ -120,4 +120,4 @@ visibility: hidden;

Ваш Webflow ИИ-инструменты

Несколько агентов для проекта Webflow: от Designer до кастомного кода.

Полныйагентный контроль

Интеграция с Webflow MCP, мультиагентный режим позволяет работать с несколькими экземплярами параллельно.

Компонентнаябиблиотека

Собирайте с учетом ИИ-агентов разные компонентные заготовки дают основу, а стиль и сложную функциональность можно дорабатывать промптами.

Деплой пайплайн

Деплой в один клик, непрерывный пайплайн, мгновенный откат и быстрая доставка через CDN.
Логотип NODE.DC
Бета-релиз: июль 2026

Ранний доступ

Кастомный код, MCP и ИИ-агенты для Webflow в одном рабочем контуре.

Заявка принята. Спасибо.

Мы скоро свяжемся.

Подать заявку в бету?

Или оформить ранний Founder-доступ

Оформить Founder-доступ 350€
До 200 мест

Не получилось

Что-то пошло не так.
Попробуйте ещё раз чуть позже.

демо-видео.mp4

Всё в одномприложение.

Универсальный инструмент для ИИ-агентов в вашем Webflow-проекте.
Контекст проекта
Подключитесь к MCP чтобы агенты получили полный контекст вашей сборки.
Группы агентов
Используйте несколько агентов параллельно чтобы добавлять кастомный код, анимации и функциональность.
Среда разработки
Используйте быстрые Bun сборки и автообновление для вашего кастомного кода.
Деплой в один клик
Нажмите и публикуйте кастомный код, написанный ИИ, чтобы он стал доступен всем посетителям сайта.

АгентнаяКомпонентнаябиблиотека.

Готовая к работе с агентами компонентная библиотека: добавление в один клик через приложение NODE.DC для Webflow и дальнейшая настройка под проект.

Переключение режимов ИИ

Создание нового проекта

ИИ-док

Аккаунт

Редактирование кода с ИИ

Dev-сервер с ИИ

Webflow MCP

Публикация

Одинкликдобавления.

С помощью расширения NODE.DC для Webflow.
Понимание компонентов
Используйте несколько агентов параллельно чтобы добавлять кастомный код, анимации и функциональность.
Быстрый старт
Используйте быстрые Bun сборки и автообновление для вашего кастомного кода.

Получитеболее сильныйMCP.

Полностью переработанный и более быстрый MCP-сервер.
Понимание Webflow
Используйте несколько агентов параллельно чтобы добавлять кастомный код, анимации и функциональность.

Гибкиережимы ИИ.

Разные режимы и модели для разных задач.

Переключение режимов ИИ

Создание нового проекта

ИИ-док

Аккаунт

Редактирование кода с ИИ

Dev-сервер с ИИ

Webflow MCP

Публикация

Частыевопросыи ответы

Подробный обзор возможностей, логики работы и внутреннего устройства.
FAQ
NODE.DC
Это влияет на производительность?
NODE.DC
Где размещаются мои файлы?
NODE.DC
Что делать, если я опубликовал не те файлы?
NODE.DC
Что такое ИИ-агент Webflow?
NODE.DC
Что такое собственная база знаний?
NODE.DC
Как использовать это с Webflow?
NODE.DC
Какие ИИ-модели доступны?
NODE.DC
Как это работает?
NODE.DC
Как работает публикация?
NODE.DC
Это работает с MCP?
NODE.DC
Ответить
Это влияет на производительность?

Как и любой кастомный код, это добавляет только ту нагрузку, которую несёт сам код.

Все файлы собираются, минифицируются и сжимаются, чтобы минимально влиять на проект и не плодить внешние библиотеки и CDN-скрипты.

Отправлено с iPhone
NODE.DC
Ответить
Где размещаются мои файлы?

После сборки файлы загружаются в Cloudflare R2 и отдаются через CDN-ссылку на выделенном домене проекта, чтобы получить быстрый и совместимый с Webflow результат.

Отправлено с iPhone
NODE.DC
Ответить
Что делать, если я опубликовал не те файлы?

В панели деплоя есть мгновенный откат.

Нажмите откат, верните предыдущую рабочую версию, исправьте локально и опубликуйте заново.

Отправлено с iPhone
NODE.DC
Ответить
Что такое ИИ-агент Webflow?

Помимо @plan, @build и @explore стандартных режимов агентов мы готовим @webflow режим, специально заточенный под Webflow: структуру проекта, взаимодействие с ним и эффективную разработку.

Отправлено с iPhone
NODE.DC
Ответить
Что такое собственная база знаний?

Основано на многолетнем опыте написания кастомного кода для Webflow-анимаций.

WebGL, Three.js, GSAP и кастомная функциональность собраны в набор практик, пайплайнов и модульную систему, чтобы всё работало согласованно.

Также доступна библиотека компонентов: выберите компонент, добавьте в проект и попросите ИИ адаптировать его под задачу.

Отправлено с iPhone
NODE.DC
Ответить
Как использовать это с Webflow?

При запуске NODE.DC доступна отдельная вкладка для встраивания.

В зависимости от задачи можно получить скрипты для конкретной страницы или единый app.js для всего проекта.

Сгенерированная ссылка содержит и продакшен-версию, следующую за URL деплоя, и локальную версию для предпросмотра без влияния на посетителей сайта.

Отправлено с iPhone
NODE.DC
Ответить
Какие ИИ-модели доступны?

Мы используем основные доступные модели: OpenAI до Claude до Gemini.

Оркестратор выбирает модель под задачу автоматически, но вы можете вручную переключиться на нужную модель.

Отправлено с iPhone
NODE.DC
Ответить
Как это работает?

Во время работы NODE.DC выполняет две задачи параллельно.

Поднимает локальную среду разработки на Bun, синхронизирует JavaScript и TypeScript, включает HMR и держит webhook для автоматического обновления сайта при изменениях.

Одновременно работает оркестратор ИИ-агентов: обрабатывает запросы, меняет код, проверяет состояние сборки и при необходимости обновляет проект Webflow.

Отправлено с iPhone
NODE.DC
Ответить
Как работает публикация?

Процесс многоэтапный: сначала Bun собирает, сжимает, минифицирует и подготавливает проект вместе с библиотеками.

Затем файлы отправляются в CDN: cdn.node.dc/{USERNAME}/{PROJECT-NAME}. Ссылка уже содержит нужную структуру: вы видите локальную версию, а пользователи получают опубликованный скрипт.

Отправлено с iPhone
NODE.DC
Ответить
Это работает с MCP?

Система изначально рассчитана на работу с Webflow MCP.

Подключите проект и авторизацию, чтобы ИИ-агенты получили доступ к Webflow-сборке. Подключение приложения в Webflow Designer даёт агентам доступ к контенту, элементам, стилям и CSS, а кастомный код получает полный контекст проекта.

Отправлено с iPhone

Подключить.Поставить задачу.Опубликовать.

Единый путь от разработки до продакшена.
Настройка примерно в 12 кликов: от скачивания приложения до запуска в проекте.
Встать в лист ожидания
Тарифы

Коддля No-Code,усиленный ИИ.

Подписки на приложение с
включённым объёмом в каждом тарифе.
Токенная оплата сверх лимитов.
200 Founder мест с фиксированной ценой на первый год.
Тарифы.app

Бета

Бесплатно
1 месяц

Founder

310
/ год, навсегда
Скидка 50%

Basic

20
/ месяц

Advanced

50
/ месяц
Старт
Старт
Старт
Всего доступно
Расширение (20M)
Расширение (10M)
Глубина рассуждения
Базовый интеллект
Рабочее пространство
Объём токенов
Старт
Объём токенов
Объём токенов
Рабочее пространство
Всего доступно
Расширение (20M)
Расширение (10M)
Глубина рассуждения
Базовый интеллект
Рабочее пространство
Базовый интеллект
Глубина рассуждения
Расширение (10M)
Расширение (20M)
Всего доступно
Июнь 2026
Июнь 2026
Июнь 2026
Июнь 2026
Кредиты тарифа
Без ограничений
40 000 включено
12 000 включено
40 000 включено
Рабочее пространство
Без ограничений
Без ограничений
10 проектов
Без ограничений
Базовый интеллект
Все модели
Все быстрые
Все быстрые
Все быстрые
Глубина рассуждения
Полный
Полный
Ограниченный
Полный
Расширение SM 10€
Обновления без лимита
+ 10 000 кредитов
+ 8 000 кредитов
+ 10 000 кредитов
Расширение MD 20€
Обновления без лимита
+ 26 000 кредитов
+ 20 000 кредитов
+ 26 000 кредитов
Всего доступно
40 тестировщиков
200 мест
--
--
Подать заявку в бету
Оформить Founder-доступ
(*) Условия могут меняться по ходу тестирования, но мы постараемся сохранить заявленные обещания.
Enterprise BYOK-тарифы будут доступны с сентября 2026.
публикация-в-один-клик.png
Иконка MOV-файла.
публикация-в-один-клик.png
полноценный-редактор-кода.webp
Иконка MOV-файла.
полноценный-редактор-кода.webp
ИИ-док-режим.jpg
Иконка MOV-файла.
ИИ-док-режим.jpg
глубокая-интеграция-webflow.webp
Иконка MOV-файла.
глубокая-интеграция-webflow.webp
установка-настройка-запуск.jpg
Иконка MOV-файла.
установка-настройка-запуск.jpg
Логотип NODE.DC
Бета-релиз: июль 2026

Ранний доступ

Кастомный код, MCP и ИИ-агенты для Webflow в одном рабочем контуре.

Заявка принята. Спасибо.

Мы скоро свяжемся.

Подать заявку в бету?
Иконка TXT-файла
fff
fff
Иконка TXT-файла
Ergtrr
Ggg
Иконка TXT-файла
Paul
только что нашёл ваш сайт — выглядит отлично!
Иконка TXT-файла
s
s
Иконка TXT-файла
rkxkr
пока не уверен, но да, интересно
Иконка TXT-файла
Ali Awan
Дайте, пожалуйста, посмотреть продукт!
Иконка TXT-файла
rox del toro
ХОЧУ ДОСТУП
Иконка TXT-файла
Flavio
Привет!
Иконка TXT-файла
Daniel Clydesdale
Мы работаем с Webflow с 2016 года и используем его постоянно. Сейчас внедряем ИИ в процессы, поэтому ваш продукт нам очень интересен. Удачи с запуском!
Иконка TXT-файла
Carter Ogunsola
Для всех разработчиков: я нашёл это очень рано. Уже один из фаворитов.
Иконка TXT-файла
Marin Trajkovski
Здравствуйте, можно получить ранний доступ? Очень хочу протестировать ИИ, это сейчас действительно нужно.
Иконка TXT-файла
Arul
Интересно. Хотелось бы узнать больше.
Иконка TXT-файла
Jeremy
Вау! -Пожалуйста, пустите меня в бету!
Иконка TXT-файла
Safin
С удовольствием протестировал бы продукт. Выглядит очень интересно.
Иконка TXT-файла
Ilja van Eck
Я теперь первый Founder? Берите деньги и запускайте это.
Иконка TXT-файла
Jordan Gilroy
Я ваш главный фанат
Иконка TXT-файла
hyun
привет
Иконка TXT-файла
kris
тестирую
Иконка TXT-файла
Syed Irfan
Интересно
Иконка TXT-файла
ramyar atlasi
Apm pflege schule Düsseldorf
Иконка TXT-файла
Muhammad Ashar
vv
Иконка TXT-файла
:DD
ka tu nx
Иконка TXT-файла
test
test
Иконка TXT-файла
Filip
Я знаю Fed!
Иконка TXT-файла
Arinbjørn
Пустите меня!
Иконка TXT-файла
Janarthanan
жду
Иконка TXT-файла
Jane Smith
Очень хочу ранний доступ к продукту!
Иконка TXT-файла
Daniel Apro
Привет, сайт огонь.
Иконка TXT-файла
Allonelabs
Нам очень нравится ваш дизайн. Спасибо!
Иконка TXT-файла
nicola romei
G.O.A.T. часто используют как сокращение от Greatest of All Time — «лучший за всё время».
Иконка TXT-файла
fff
.txt
Иконка TXT-файла
Ergtrr
.txt
Иконка TXT-файла
Paul
.txt
Иконка TXT-файла
s
.txt
Иконка TXT-файла
rkxkr
.txt
Иконка TXT-файла
Ali Awan
.txt
Иконка TXT-файла
rox del toro
.txt
Иконка TXT-файла
Flavio
.txt
Иконка TXT-файла
Daniel Clydesdale
.txt
Иконка TXT-файла
Carter Ogunsola
.txt
Иконка TXT-файла
Marin Trajkovski
.txt
Иконка TXT-файла
Arul
.txt
Иконка TXT-файла
Jeremy
.txt
Иконка TXT-файла
Safin
.txt
Иконка TXT-файла
Ilja van Eck
.txt
Иконка TXT-файла
Jordan Gilroy
.txt
Иконка TXT-файла
hyun
.txt
Иконка TXT-файла
kris
.txt
Иконка TXT-файла
Syed Irfan
.txt
Иконка TXT-файла
ramyar atlasi
.txt
Иконка TXT-файла
Muhammad Ashar
.txt
Иконка TXT-файла
:DD
.txt
Иконка TXT-файла
test
.txt
Иконка TXT-файла
Filip
.txt
Иконка TXT-файла
Arinbjørn
.txt
Иконка TXT-файла
Janarthanan
.txt
Иконка TXT-файла
Jane Smith
.txt
Иконка TXT-файла
Daniel Apro
.txt
Иконка TXT-файла
Allonelabs
.txt
Иконка TXT-файла
nicola romei
.txt
Иконка MOV-файла.
демо-видео.txt
ДАЛЕЕ — ИЮЛЬ 2026
Открытая бета
Открываем доступ всем. Будем собирать и отлаживать вместе.
ДАЛЕЕ ИЮЛЬ 2026
Альфа для Founder-доступа
На второй фазе тестирования бета открыта для всех подписчиков Founder-тарифа.
СЕЙЧАС
Инвайты в закрытую бету уже отправлены.
Сейчас тестируем базовую функциональность и ИИ-интеграцию.
Белая иконка корзины.
\ No newline at end of file +Пожалуйста, пустите меня в бету!
Иконка TXT-файла
Safin
С удовольствием протестировал бы продукт. Выглядит очень интересно.
Иконка TXT-файла
Ilja van Eck
Я теперь первый Founder? Берите деньги и запускайте это.
Иконка TXT-файла
Jordan Gilroy
Я ваш главный фанат
Иконка TXT-файла
hyun
привет
Иконка TXT-файла
kris
тестирую
Иконка TXT-файла
Syed Irfan
Интересно
Иконка TXT-файла
ramyar atlasi
Apm pflege schule Düsseldorf
Иконка TXT-файла
Muhammad Ashar
vv
Иконка TXT-файла
:DD
ka tu nx
Иконка TXT-файла
test
test
Иконка TXT-файла
Filip
Я знаю Fed!
Иконка TXT-файла
Arinbjørn
Пустите меня!
Иконка TXT-файла
Janarthanan
жду
Иконка TXT-файла
Jane Smith
Очень хочу ранний доступ к продукту!
Иконка TXT-файла
Daniel Apro
Привет, сайт огонь.
Иконка TXT-файла
Allonelabs
Нам очень нравится ваш дизайн. Спасибо!
Иконка TXT-файла
nicola romei
G.O.A.T. часто используют как сокращение от Greatest of All Time — «лучший за всё время».
Иконка TXT-файла
fff
.txt
Иконка TXT-файла
Ergtrr
.txt
Иконка TXT-файла
Paul
.txt
Иконка TXT-файла
s
.txt
Иконка TXT-файла
rkxkr
.txt
Иконка TXT-файла
Ali Awan
.txt
Иконка TXT-файла
rox del toro
.txt
Иконка TXT-файла
Flavio
.txt
Иконка TXT-файла
Daniel Clydesdale
.txt
Иконка TXT-файла
Carter Ogunsola
.txt
Иконка TXT-файла
Marin Trajkovski
.txt
Иконка TXT-файла
Arul
.txt
Иконка TXT-файла
Jeremy
.txt
Иконка TXT-файла
Safin
.txt
Иконка TXT-файла
Ilja van Eck
.txt
Иконка TXT-файла
Jordan Gilroy
.txt
Иконка TXT-файла
hyun
.txt
Иконка TXT-файла
kris
.txt
Иконка TXT-файла
Syed Irfan
.txt
Иконка TXT-файла
ramyar atlasi
.txt
Иконка TXT-файла
Muhammad Ashar
.txt
Иконка TXT-файла
:DD
.txt
Иконка TXT-файла
test
.txt
Иконка TXT-файла
Filip
.txt
Иконка TXT-файла
Arinbjørn
.txt
Иконка TXT-файла
Janarthanan
.txt
Иконка TXT-файла
Jane Smith
.txt
Иконка TXT-файла
Daniel Apro
.txt
Иконка TXT-файла
Allonelabs
.txt
Иконка TXT-файла
nicola romei
.txt
Иконка MOV-файла.
демо-видео.txt
ДАЛЕЕ — ИЮЛЬ 2026
Открытая бета
Открываем доступ всем. Будем собирать и отлаживать вместе.
ДАЛЕЕ ИЮЛЬ 2026
Альфа для Founder-доступа
На второй фазе тестирования бета открыта для всех подписчиков Founder-тарифа.
СЕЙЧАС
Инвайты в закрытую бету уже отправлены.
Сейчас тестируем базовую функциональность и ИИ-интеграцию.
Белая иконка корзины.
Сб, 10 июня
09:41
\ No newline at end of file