Stack
- Framework
- Next.js 16.2 (App Router, static export)
- Language
- TypeScript 5.9 (strict)
- Styling
- Tailwind CSS 4 (oklch native), CSS @theme tokens
- Motion
- CSS animation, IntersectionObserver, Lenis smooth scroll
- i18n
- Typed content dictionaries, 4 locales (EN / UK / RU / ID)
- Contact
- Direct email and messaging links; no website form.
- Lint + format
- Biome (replaces eslint + prettier)
- Package manager
- pnpm@9
Type
- Display
- Bricolage Grotesque
- Body
- Literata
- Mono
- JetBrains Mono
Infrastructure
- Hosting
- Static export served through nginx and Cloudflare
- CI/CD
- GitHub Actions → typecheck, build and browser tests → rsync deployment
- Analytics
- No Google Analytics script is loaded by this version. Hosting and CDN services may process technical request logs. If other analytics is added, this text will be updated.
AI / human split (honest disclosure)
- Claude / Codex
- Built with Claude and Codex; decisions reviewed by Dmitriy. AI-assisted writing with source checks and explicit limits on project results.
Source code & audits
- github.com/zapleoceo/zapleo.com →
- Content © Dmitriy Zaporozhets.
- Accessibility target: WCAG 2.2 AA. Found a violation? Tell me at dima@zapleo.com.
- There is no form on this site and Google Analytics is not loaded. The web server and CDN may keep technical logs. If other analytics is added, this text will be updated.