Inki
← Все шаблоны
Приложениепроверен 4 октября 2026 г.

Тест с общей таблицей лидеров

Приложение с живыми данными: вопросы хранит сайт, каждый записывает свой результат, таблица лидеров одна на всех и обновляется сама. Один файл, без своего сервера.

Claude.ai и Claude DesktopChatGPTDeepSeekClaude CodeCodexCursorОткрыть пример
Промпт
Сделай тест с общей таблицей лидеров: приложение в одном HTML-файле, JavaScript внутри, без сборки и внешних библиотек. Тема: [тема теста]. Вопросы:
- [вопрос 1: варианты ответа и какой верный]
- [вопрос 2: варианты ответа и какой верный]
- [ещё 3-8 вопросов]

Данные хранит сайт (раздел «Данные Inki» ниже):
1. Коллекция quiz, режим owner: text, answers (список строк), right (номер верного ответа с нуля), order с индексом, читай по order.
2. Вопросы из запроса положи в файл как запасные, пока quiz пуста.
3. Коллекция scores, режим own: name (до 40 знаков), points с индексом.

Поведение:
1. Один вопрос на экране, строка «Вопрос 3 из 10», ответ одним нажатием; на секунду подсвети верный и выбранный ответ, потом следующий вопрос.
2. В конце результат «7 из 10», поле «Ваше имя для таблицы», подпись «Имя увидят все», кнопка «Записать результат».
3. Таблица «Лидеры»: десять лучших по points, строка самого человека помечена «это вы» (поле mine), обновляется сама.
4. Кнопка «Пройти ещё раз».

Оформление телевикторины: тёмно-синий фон, ответы крупными плитками четырёх ярких цветов с буквами А Б В Г, прогресс чёрточками, результат огромной жёлтой цифрой. Шрифты Google Fonts: Unbounded для заголовков, Onest для текста. Лидеры справа, первые три места в кружках золото, серебро, бронза. Адаптивно под телефон, видимый фокус. В <title> и meta description: тест по [теме].

Правила Inki, добавляются к промпту при копировании:

## Правила Inki (добавь к результату)
- Внешние скрипты, стили и шрифты только с этих хостов: cdnjs.cloudflare.com, cdn.jsdelivr.net, unpkg.com, esm.sh, fonts.googleapis.com, fonts.gstatic.com, code.jquery.com, cdn.tailwindcss.com, mc.yandex.ru. Остальное Inki вырежет при публикации.
- Встраивать видео только с: www.youtube.com, www.youtube-nocookie.com, vk.com, vkvideo.ru, rutube.ru, kinescope.io.
- Без автоматических переходов, скачиваний и всплывающих окон при открытии.
- Отдай один самодостаточный файл index.html: стили и скрипты внутри, картинки рядом с файлом или по https.
- Обязательны <title> и <meta name="description">: из них Inki делает превью для соцсетей и поиска.
- Размер: index.html до 5 МБ, папка страницы до 50 МБ, один файл до 25 МБ.

## Данные Inki (записи хранит сайт)
- Объяви данные блоком в <head>, иначе запись отклонят:
<script type="application/inki+json">
{ "collections": {
  "items": { "mode": "owner", "fields": { "title": "string!", "order": "int! @index" } },
  "scores": { "mode": "own", "fields": { "name": { "type": "string", "required": true, "maxLength": 40 }, "tags": "string[]", "points": "int! @index" } }
} }
</script>
- Типы: string, text, int, number, bool, datetime, enum(a|b|c), json; string[] это список, ! в конце обязательное (text!, string[]!). Сортировка и сравнения только по полю с @index или по createdAt.
- Режимы: owner: читают все, пишет владелец сайта; own: читают все, каждый правит своё; open: читают и правят все; private: читает и пишет только автор; append: посетители добавляют, читает владелец.
- Личные данные людей (почта, телефон) только в private, append или owner.
- Подключи <script src="/_inki/sdk.js"></script> и работай из <script type="module">:
const scores = inki.db.collection('scores')
await scores.add({ name, points })
const top = scores.orderBy('points', 'desc').limit(10) // без 'desc' по возрастанию
const { docs } = await top.get() // doc: id, поля, createdAt, mine
const stop = top.onSnapshot(({ docs }) => render(docs)) // живое обновление
await scores.doc(id).update({ points: inki.db.op.increment(1) })
- Ещё: where(field, '==', value), mine(), count(), doc(id).get(), doc(id).set(data) со своим id, doc(id).delete().
- Лимиты: запись до 64 КБ, за запрос до 200 записей.
- Без объекта inki (файл с диска, предпросмотр в чате) покажи примерные данные и строку «Записи заработают после публикации на Inki».
- Отказ это ошибка с полем code (quota, rate_limited, schema, forbidden): покажи человеку понятный текст.
- Введённое посетителями вставляй через textContent, не innerHTML.

Как достать артефакт

Claude.ai и Claude Desktop
  1. Открой артефакт справа от ответа
  2. Меню артефакта, «Скачать»: получишь файл .html
  3. Перетащи файл на inki.ru/new и нажми «Опубликовать»
ChatGPT
  1. Открой результат в Canvas
  2. Меню Canvas, «Скачать»: файл .html
  3. Перетащи файл на inki.ru/new и нажми «Опубликовать»
DeepSeek
  1. Скопируй код из ответа целиком
  2. На inki.ru/new открой вкладку «Код» и вставь
  3. Нажми «Опубликовать»
Claude Code
  1. Попроси сохранить результат в папку с index.html
  2. В терминале: npx -y inki-cli publish ./папка-со-страницей
  3. Или скажи агенту «опубликуй на Inki»: подключение на inki.ru/agent
Codex
  1. Попроси сохранить результат в папку с index.html
  2. В терминале: npx -y inki-cli publish ./папка-со-страницей
  3. Или скажи агенту «опубликуй на Inki»: подключение на inki.ru/agent
Cursor
  1. Сохрани файл агента как index.html в отдельную папку
  2. В терминале: npx -y inki-cli publish ./папка-со-страницей
  3. Или скажи агенту «опубликуй на Inki»: подключение на inki.ru/agent

Готовый файл или папку: опубликовать на Inki.

Что получится

Тест, который живёт по одному адресу и помнит результаты всех, кто его прошёл: таблица лидеров общая и обновляется на глазах. Вопросы можно менять в кабинете Inki, в разделе «Данные», не трогая страницу.

Как доработать

Добавь таймер: 20 секунд на вопрос, за быстрый верный ответ больше очков.
После каждого ответа показывай, сколько человек выбрали каждый вариант: веди счётчики в отдельной коллекции с режимом open и inki.db.op.increment.
Сделай вход по почте (inki.auth) и личную историю попыток в коллекции с режимом private.