Стек
- Framework
- Next.js 16.2 (App Router, static export)
- Language
- TypeScript 5.9 (strict)
- Styling
- Tailwind CSS 4 (oklch native), CSS @theme tokens
- Motion
- Motion 12 (Framer Motion lineage), GSAP, Lenis smooth scroll
- 3D moment
- react-three-fiber + drei (one scene on /journey)
- i18n
- next-intl, 4 locales (EN / UK / RU / ID)
- Forms
- react-hook-form + zod (no form on /contact by default)
- Lint + format
- Biome (replaces eslint + prettier)
- Package manager
- pnpm@9
Шрифти
- Display
- Fraunces (variable: wght · SOFT · WONK · opsz)Pangram-feel editorial, single-axis serif for cinematic emphasis.
- Body
- Newsreader (variable opsz)Designed for long reading at body sizes.
- Mono
- JetBrains MonoEyebrows, year stamps, marginalia, switcher.
Інфраструктура
- Hosting
- Bare nginx on Debian, static files via rsync
- CI/CD
- GitHub Actions on push to main → build → rsync to /var/www/zapleo.com (~50s end-to-end)
- TLS
- Cloudflare Origin Cert + edge proxy
- Analytics
- Cloudflare Web Analytics (cookieless)
- Backups
- Server-side nightly snapshots, off-site mirror
AI / людський поділ (чесне розкриття)
- Design system
- Drafted with Claude · reviewed and adjusted by Dmitriy
- Copy
- Co-authored with Claude · facts cross-checked against LinkedIn, GitHub, Clutch, DOU, Tripadvisor public records
- Photos / b-roll
- Mine. Or labelled stock when used.
- Voice in social
- AI-augmented per Vibe Coding strategy. Decisions and replies — mine.
Вихідний код та аудити
- github.com/zapleoceo/zapleo.com →
- Ліцензія: MIT для збірки; контент © Дмитро Запорожець.
- Ціль доступності: WCAG 2.2 AA. Знайшов порушення? Напиши на dima@zapleo.com.
- Без кукі. Без сторонніх трекерів. Без поп-апа на розсилку.