Веб-разработка · Go · лендинги

Сайты, которые быстро открываются и не ломаются

Делаю чистые лендинги и сайты с настоящим бэкендом на Go: API, база данных, авторизация, тесты, Docker. Ниже рабочие проекты со скриншотами и разбором, у каждого есть команда запуска.

01 · Проекты

Что уже сделано

Почти все примеры учебно-демонстрационные: вымышленные бренды, демо-данные. Исключение — один реализованный клиентский сайт (имя клиента не указываю). Код лежит в приватных репозиториях, покажу по запросу.

Go-бэкенд

Янтарь: канбан-доска

Многопользовательская канбан-доска: регистрация, доски, колонки, карточки с перетаскиванием. Go + SQLite без CGO, фронт встроен в бинарник.

  • Go
  • SQLite
  • Docker
Go-бэкенд

Короче: сократитель ссылок

Сокращение ссылок с алиасами и сроком жизни, статистика кликов по дням, браузерам и устройствам, дашборд под токеном. IP не хранятся.

  • Go
  • SQLite
  • Docker
Go-бэкенд

Запись на приём

Онлайн-запись на услуги: свободные слоты с учётом длительности и рабочих часов, защита от двойной записи, админ-панель. Вымышленная студия, демо.

  • Go
  • SQLite
  • Docker
Лендинг

Полутон: студия света

Лендинг вымышленной студии интерьерного света: тёплая палитра, засечный шрифт, SVG-иллюстрация, FAQ и демо-форма. Адаптивный, без внешних картинок.

  • HTML
  • CSS
  • JS
Лендинг

Рубильник: трекер подписок

Лендинг вымышленного SaaS-продукта: тёмный градиентный hero, макет интерфейса на CSS, тарифы, FAQ, демо-форма. Все цены и названия придуманы.

  • HTML
  • CSS
  • JS
Лендинг

Малый масштаб: конференция

Лендинг вымышленной однодневной конференции: плакатная типографика, расписание, спикеры-заглушки, условия, демо-форма записи.

  • HTML
  • CSS
  • JS
Go-бэкенд

Пульс: монитор доступности

Монитор доступности: HTTP и TCP проверки по расписанию, аптайм, p50/p95, детектор инцидентов, живой дашборд на SSE и публичная статус-страница. Go + SQLite без CGO.

  • Go
  • SQLite
  • SSE
  • REST API
  • Docker
Go-бэкенд

Конвейер: очередь задач

Очередь фоновых задач: приоритеты, отложенные и cron-задачи, ретраи с backoff и jitter, dead-letter, идемпотентные ключи, lease с fencing, метрики Prometheus.

  • Go
  • SQLite
  • REST API
  • SSE
  • Prometheus
  • Docker
Go-бэкенд

Комнаты: чат и доска в реальном времени

Комнаты в реальном времени: чат с историей в SQLite, список «кто онлайн», индикатор «печатает», общая доска со штрихами и курсорами, анонимные ники. WebSocket (RFC 6455) написан на stdlib.

  • Go
  • WebSocket
  • SQLite
  • Canvas
  • Docker
Go-бэкенд

Шлюз: API-gateway

API-шлюз на чистой stdlib: маршруты по хосту/префиксу из JSON-конфига с горячей перезагрузкой без обрыва соединений, балансировка round-robin и least-conn, health-checks, circuit breaker на узел, ретраи идемпотентных запросов, rate limit, хэшированные API-ключи, метрики Prometheus, живой дашборд на SSE.

  • Go
  • stdlib only
  • Reverse proxy
  • Circuit breaker
  • Token bucket
  • SSE
  • Prometheus
  • slog
  • Vanilla JS
  • embed
  • Docker
  • GitHub Actions
Go-бэкенд

Картотека: заметки с поиском

База Markdown-заметок на Go и SQLite: вики-ссылки [[заметка]] с обратными ссылками и графом связей, полнотекстовый поиск FTS5 (bm25, подсветка, упрощённая русская морфология), история версий с собственным diff, автосохранение с разрешением конфликтов, экспорт и импорт .md.

  • Go
  • SQLite
  • FTS5
  • bm25
  • modernc.org/sqlite (без CGO)
  • REST API
  • Markdown (свой безопасный рендер)
  • SVG force-layout
  • Vanilla JS
  • embed
  • Docker
  • GitHub Actions
Лендинг

ОКСО Т1: 3D-лендинг

Лендинг вымышленного датчика воздуха (демо): объект рисуется одним фрагментным шейдером на чистом WebGL2 без библиотек, четыре SDF-формы перетекают по скроллу, есть SVG-фолбэк, reduced-motion и пауза вне экрана.

  • HTML5
  • CSS3
  • Vanilla JS
  • WebGL2
  • GLSL ES 3.00
  • Raymarching/SDF
  • Scroll choreography
  • GitHub Actions
Go-бэкенд

Плот: KV на Raft

Учебная реализация Raft с нуля на чистой stdlib: выборы лидера, репликация лога, коммит по кворуму, лог и term/vote на диске с fsync, снапшоты с компакцией, линеаризуемые чтения (read-index), редирект фолловера на лидера. Тестируется детерминированным симулятором сети и времени с проверкой линеаризуемости; дашборд умеет убивать лидера и рвать сеть (демо).

  • Go
  • Raft
  • Distributed systems
  • Consensus
  • stdlib only
  • HTTP/JSON
  • SSE
  • WAL + fsync
  • Snapshots
  • Linearizability
  • Deterministic simulation testing
  • Vanilla JS
  • Docker
  • GitHub Actions
Go-бэкенд

Ключница: сервис аутентификации

Сервис аутентификации и авторизации на Go: EdDSA-JWT с ротацией ключей и JWKS, refresh-токены с ротацией и обнаружением кражи, TOTP-2FA (RFC 6238) с резервными кодами, RBAC, блокировка при переборе, сброс пароля по одноразовому токену, журнал аудита, список устройств, openapi.yaml. Не прошёл независимый аудит, не production-IdP.

  • Go
  • stdlib crypto
  • SQLite
  • modernc.org/sqlite (без CGO)
  • JWT EdDSA/Ed25519
  • JWKS
  • PBKDF2
  • TOTP
  • RBAC
  • REST
  • OpenAPI 3
  • Vanilla JS
  • embed
  • Docker
  • GitHub Actions
Go-бэкенд

Книга учёта: личные финансы

Учёт личных финансов: счета в разных валютах с ручными курсами, доходы, расходы и переводы, бюджеты, платежи по cron-подобному расписанию, импорт CSV с превью, отчёты. Деньги только в целых минорных единицах, данные пользователей изолированы, графики нарисованы на SVG без библиотек. Go + SQLite и фронтенд на Nuxt 4.

  • Go
  • SQLite
  • modernc.org/sqlite (без CGO)
  • REST API
  • Nuxt 4
  • Vue 3
  • TypeScript
  • Pinia
  • SVG-графики
  • vitest
  • ESLint
  • Docker
  • GitHub Actions
  • PBKDF2
  • CSV import/export
Go-бэкенд

Пиксельная стена: общий холст

Совместный холст 256×256 в духе r/place: 16 цветов, кулдаун на сессию и IP, свой WebSocket-слой на stdlib (RFC 6455) с бинарным протоколом (4 бита на пиксель), снимок и дельты, снапшот плюс журнал с восстановлением, таймлапс, зум и пан, мини-карта, экспорт PNG, админ-инструменты. Пет-проект.

  • Go
  • stdlib only
  • WebSocket
  • Canvas 2D
  • Vanilla JS
  • embed
  • Binary protocol
  • Snapshot + journal
  • Docker
  • GitHub Actions
CLI-утилита

GitPulse: аналитика git-репозиториев

CLI на Go для анализа git-репозиториев без внешних зависимостей (нужен только git): stats с цветами и спарклайнами в терминале, report — самодостаточный HTML-отчёт с тепловой картой активности, churn и горячими файлами, вкладом авторов, bus factor по каталогам, ростом кода по языкам и периодами тишины (светлая и тёмная темы), diff-hotspots между ревизиями и локальный serve на 127.0.0.1. История читается потоком через git log -z --numstat -M. Пет-проект.

  • Go
  • stdlib only
  • CLI
  • git
  • html/template
  • SVG
  • ANSI
  • os/exec
  • GitHub Actions
  • Docker
Сайт

Многостраничный сайт юридической компании

Реализованный сайт юридической и экспертной компании на Nuxt 4: 65 страниц с серверным рендерингом, JSON-LD разметка и 301-редиректы со старого сайта. Заявки уходят через серверный эндпоинт с проверкой Origin, лимитом размера тела и ограничением частоты запросов.

  • Nuxt 4
  • Vue 3
  • TypeScript
  • Bootstrap 5
  • Zod
  • Vitest
  • Playwright
  • Docker
  • GitHub Actions
Веб-приложение

Bad Club: бронирование мест в игровом коворкинге

Демо-приложение на Vue 3 и Express с SQLite: интерактивная карта зала с бронированием мест, личный кабинет и админ-панель с редактором расстановки. Вход без паролей, по одноразовому коду на e-mail.

  • Vue 3
  • Vite
  • Pinia
  • Vue Router
  • GSAP
  • Express
  • node:sqlite
  • JWT (httpOnly cookie)
  • Resend
Лендинг

Довод: концепт лендинга экспертной организации

Концепт лендинга на Nuxt 4 для вымышленной экспертной организации: направления услуг, форма консультации с маской телефона, карусель отзывов и страница политики. Компания, отзывы, цифры и контакты придуманы; форма ничего не отправляет.

  • Nuxt 4
  • Vue 3
  • TypeScript
  • CSS
  • GitHub Actions
Сайт

Каталог демо-лендингов под 10 ниш

Vue-каталог из десяти самостоятельных лендингов под разные ниши малого бизнеса: у каждого своя палитра, шрифты и структура секций. Каждый лендинг загружается отдельным чанком; весь контент демонстрационный.

  • Vue 3
  • Vue Router 4
  • Vite 8
  • GitHub Actions
Лендинг

Кварц: концепт лендинга стоматологии

Концепт одностраничного лендинга вымышленной стоматологии в стиле Liquid Chrome Dark: стеклянные карточки, хромированные заголовки и 3D-блоб в виде зуба на canvas. Один HTML-файл без сборки и зависимостей.

  • HTML
  • CSS
  • JavaScript
  • Canvas 2D
  • htmlhint
  • GitHub Actions

02 · Инженерия

Как устроены Go-проекты

Для каждого из тринадцати Go-проектов (двенадцать бэкендов и одна CLI-утилита) есть схема компонентов, нумерованные потоки данных, принятые решения и честные компромиссы.

03 · Процесс

Как мы будем работать

  1. 01

    Разговор

    Выясняем задачу, аудиторию и ограничения. Если сайт не нужен, скажу об этом сразу.

  2. 02

    Договорённости

    Состав работ, сроки и что считается готовым. Письменно, без сюрпризов.

  3. 03

    Сборка

    Короткие итерации: промежуточный результат можно открыть и потрогать.

  4. 04

    Проверка

    Тесты, мобильные экраны, доступность, нагрузка на форму и API.

  5. 05

    Запуск

    Docker-образ или статика, инструкция по запуску, передача кода.

04 · Контакты

Расскажите о задаче

Опишите, что нужно сделать, и оставьте почту. Отвечу письмом.

Почта: hello@ewsirdev.example

Это статичная копия сайта: серверной части здесь нет, поэтому форма отключена. Напишите письмом.

hello@ewsirdev.example

Адрес пока заглушка на зарезервированном домене: письма на него не доходят.