Весь сайт в двух файлах
Без возни с сервером и плагинами: только программа Eile и база SQLite. PHP и MySQL ставить не нужно, а сайт с менеджером запускается одной командой.
Где обычно уходит время
Сам сайт делается быстро. Время уходит на всё вокруг: сервер, плагины, переезды и правки по звонку пользователя. Вот что Eile берёт на себя.
Чтобы показать пользователю сайт, сначала нужно поднять веб-сервер, PHP и MySQL.
Eile ставится одной командой и запускает сайт с менеджером ещё одной.
Обновили плагин, и поехала вёрстка или легла админка.
SEO, формы, поиск, копии и HTTPS уже внутри. Обновление одно, cms update, и новую версию оно сначала проверяет.
Переезд на другой хостинг съедает вечер: дамп базы, файлы, конфиги.
Весь сайт лежит в двух файлах, программе и базе SQLite. Скопировали их, и сайт работает на новом сервере.
Одна опечатка в шаблоне, и вместо сайта ошибка.
Шаблон с ошибкой не сохранится: менеджер покажет строку, а сайт продолжит работать на прежней версии.
Пользователь боится трогать админку и звонит вам по каждой запятой.
Понятное дерево страниц, текст блоками и история правок: любую версию можно вернуть одной кнопкой.
Заявки с сайта теряются в почте.
Заявки приходят в менеджер со статусами и сразу уведомляют в Telegram или на почту.
Что заменяют два файла
Обычный сайт держится на веб-сервере, PHP, базе данных и десятке плагинов, и у каждого свои обновления и поломки. В Eile весь сайт это исполняемый файл и база SQLite. Только их и нужно обновлять, переносить и копировать.
Обычно
типичный сайт на PHP-CMS
- Веб-сервер и его настройка
- PHP с расширениями
- Сервер базы данных
- Сама CMS
- Плагин кэша
- Плагин SEO и карты сайта
- Плагин форм
- Плагин резервных копий
- Cron для фоновых задач
- Certbot для HTTPS
У каждого слоя свои обновления, настройки и способы сломаться.
Eile
весь сайт
cmsисполняемый файл- сервер, менеджер, компилятор Svelte, миграции, HTTPS
site.dbбаза SQLite- страницы, шаблоны, медиа, пользователи, заявки
cms backup copy.db делает копию всего сайта одним файлом. Для переезда нужно скопировать два файла.
Быстрый сайт без плагина кэша
Не нужно подбирать кэш, CDN и сжатие. Страницу сервер отдаёт готовым HTML из памяти, кэш сбрасывается ровно там, где что-то изменилось, а JavaScript попадает на страницу, только если без него не обойтись.
Эта страница тоже на Eile Замер вашего браузера, прямо сейчас.
- HTML
- …
- скрипты островов
- …
- ответ сервера с учётом сети
- …
- Двухфазный кэш
- Страница целиком лежит в памяти, а живые места (формы, корзина) дорисовываются на каждом запросе.
- Точный сброс
- Правка страницы или компонента сбрасывает только те страницы, которые от них зависят.
- ETag, br и gzip
- Сжатые копии готовятся заранее, а повторный визит получает 304 без тела.
- JavaScript только у островов
- Страница без островов уходит без единого скрипта. Здесь четыре острова (копирование, меню, ролик и замер выше) и строка в шапке, которая помнит выбранную тему.
Пользователь правит сам, а любую правку можно откатить
Весь сайт виден деревом, как он вложен. Текст собирается из блоков, картинки берутся из медиатеки, страница выходит сразу или по расписанию. Если правка не удалась, история вернёт любую версию одной кнопкой.


- Дерево страниц
- id у каждой страницы, перетаскивание мышью и курсив у черновиков.
- Текст блоками
- Абзацы, заголовки и картинки вперемешку с компонентами; форма параметров строится сама.
- Публикация по расписанию
- Страница выйдет и снимется сама в назначенный час.
- История правок
- Сравнение версий по словам и возврат любой из них одной кнопкой.
- Быстрый переход
- Ctrl K ведёт к любой странице, элементу или файлу в пару нажатий.
- Медиатека
- Уменьшенные копии картинок для разных экранов делаются сами, а описание для alt подставляется при вставке.
Вёрстка без сборки и деплоя
Шаблоны пишутся на обычном Svelte и правятся прямо в браузере. Сохранили, и сайт уже другой: без npm, сборщика и выкладки. Шаблон с ошибкой не сохранится, поэтому опечатка не положит сайт.
<script>
import Layout from '$components/Layout';
import { link, listing } from '$core';
let { page, site } = $props();
const posts = listing(page.id, { perPage: 10 });
</script>
<Layout {page}>
<h1>{page.longTitle || page.title}</h1>
{#each posts.items as post (post.id)}
<a href={link(post.id)}>{post.title}</a>
{/each}
<p>{site.custom.phone}</p>
</Layout>- Правка видна сразу
- Шаблоны и компоненты компилируются при сохранении, без сборки и деплоя.
- Ошибка не роняет сайт
- Если код не компилируется, сохранение отклоняется с указанием места ошибки, а сайт работает на прежней версии.
- JavaScript по требованию
- Страница уходит чистым HTML. Компонент-остров гидрируется в браузере, только если его так подключили.
Черновик текста по паре слов
Пустое поле больше не держит работу. Палочка у поля пишет черновик заголовка, описания, текста страницы или даже шаблона на Svelte. Напишите, что нужно, посмотрите вариант и вставьте его или попросите другой.


- Нажмите палочку у поля или Alt+I.
- Напишите пару слов: «короче», «анонс в одно предложение», «добавь кнопку записи».
- Посмотрите вариант и нажмите «Вставить» или «Ещё вариант».
- Тексты и код
- Заголовки, описания, текст страницы, а ещё шаблоны, компоненты и плагины.
- Знает ваш сайт
- С просьбой уходят название и язык сайта, поле и где оно стоит, поэтому хватает пары слов.
- Ваша модель
- DeepSeek, OpenAI или любая модель с таким же API, хоть локальная. Ключ хранится только на сервере и в копию сайта не попадает.
- Ваши правила
- Тон и правила текстов задаются один раз в настройках и уходят с каждой просьбой.
Всё, ради чего ставят плагины, уже внутри
SEO и находимость для ИИ, формы с заявками, поиск, резервные копии, HTTPS и переводы. Их не нужно подбирать, совмещать и обновлять по отдельности: они приходят и обновляются вместе с Eile.
Находимость
Формы и заявки
Поиск по сайту
Спокойствие владельца
Сервер
Языки
Первый сайт уже сегодня
Готовый сайт разворачивается одной командой: блог, портфолио, сайт компании, витрина или магазин.
-
Установить
curl -fsSL …/install.sh | bashСкрипт выберет сборку под систему, сверит SHA256 и положит cms в PATH.
-
Развернуть сайт
cms new blog --db site.dbКаркасы: blog, portfolio, company, showcase, shop. Без каркаса получится пустая база с приветствием.
-
Запустить
cms --db site.dbСайт и менеджер откроются на localhost:8080. При первом запуске сервер напечатает ссылку, чтобы создать администратора.
Подробно и по шагам, от пустой папки до сайта в интернете: Кукбук
curl -fsSL https://github.com/a-sharapov/eile/releases/latest/download/install.sh | bash Это альфа-версия: делать сайты уже можно, но до 1.0 возможны несовместимые изменения. Перед обновлением сделайте cms backup.

