Santal Tour
Сайт турагентства: 21 статическая страница на трёх языках, 6 КБ JS и заявка, которая доходит
О проекте
Сайт турагентства из Ташкента: международные туры, визы, пакеты умры и авиабилеты. Семь разделов на трёх языках — узбекском, русском и английском — собираются Python-скриптом в чистую статику: ни базы, ни админки, ни фреймворка. Единственная динамика — форма заявки: она уходит на PHP-обработчик и отвечает JSON, не перезагружая страницу.
Задача
Турагентство выбирают с телефоном в руке и часто на мобильном интернете. Прежний сайт тянул тему и плагины ради страницы, где по сути пять блоков текста и номер телефона. Сверху три языка: их легко развести так, что через месяц узбекская версия отстанет от русской на пол-сайта.
Решение
Никакого фреймворка: 6 КБ JS без зависимостей, и всё, что он делает, — необязательное, сайт полностью читается с выключенным JS, а форма в этом случае просто отправляется обычным POST. Разметка, ассеты и srcset собираются одним build.py, брейкпоинты живут в согласии со стилями, поэтому картинка не приезжает мыльной. Три локали выходят из одной сборки с общими адресами и одинаковой структурой — разойтись они не могут. Форму прикрывают honeypot-поле и обязательное согласие, заголовки безопасности выставлены на nginx.
Результат
- 21 страница: семь разделов × три языка, с canonical, hreflang и x-default
- 6 КБ JS без зависимостей — сайт работает и с выключенным JavaScript
- Картинки в WebP в двух ширинах со srcset и sizes, шрифты — сабсеты в preload
- JSON-LD TravelAgency, sitemap.xml и OG-карточки: поиск и мессенджеры показывают агентство правильно
Следующий проект
coder.abuu.uz
Сайт, который вы сейчас читаете: три языка, статическая сборка, свой сервер