Как я собрал сайт-открытку и не заплатил ни рубля
Мне нужен был сайт, который можно показать вместо резюме: пара проектов с инструкциями, несколько статей и фотографии с хакатонов. Условия — бесплатно и без возни с серверами.
Почему не готовый движок#
Сначала я честно попробовал большой фреймворк. Через полчаса в проекте было
триста мегабайт node_modules, а сайт всё ещё показывал приветственную заглушку.
Для открытки это перебор.
Что получилось в итоге#
Генератор на чистом Python: читает markdown из content/, кладёт готовый HTML в dist/.
site = load_site(root)
for post in site["posts"]:
write(dist / "posts" / post["slug"] / "index.html", render_post(site, post))
Сборка занимает меньше секунды, зависимостей нет вообще — значит, нечему ломаться при обновлении.
Развёртывание#
- Залить репозиторий на GitHub.
- В Cloudflare Pages нажать «Connect to Git».
- Указать команду сборки и папку вывода.
Дальше каждый git push сам обновляет сайт. Cloudflare раздаёт статику
через свою сеть, бесплатный тариф не ограничивает трафик.
Совет
Локально всё поднимается одной командой: python build.py serve —
и правки видно сразу, без пересборки руками.
Итоги#
| Что | Раньше | Стало |
|---|---|---|
| Размер проекта | 300 МБ | 400 КБ |
| Время сборки | ~20 с | ~0,3 с |
| Стоимость | 5 $/мес | 0 |
Оказалось, что для личного сайта хватает markdown, чуть-чуть HTML и одной идеи: не усложнять.