About this page, specifically
This is a landing page built to double as a CV — a small, real Laravel application, deployed the way a real one would be, not a static template. A few things worth pointing out:
Application
- → The animated chart on the ISG Macedonia entry is a React component, dropped in alongside the Laravel backend to show some frontend work too.
- → The visit counter below and the app's cache both run on Redis — and degrade gracefully instead of crashing the page if Redis is ever unreachable.
- → Submitting the contact form dispatches a queued job (Redis-backed) that sends a real email over SMTP — protected by Cloudflare Turnstile so it isn't just a bot magnet — and posts to Slack over a plain Incoming Webhook, so a new message doesn't just sit in an inbox.
- → Page views are tracked server-side, straight from Laravel to GA4's Measurement Protocol — no analytics JavaScript ships to the browser at all.
- → Genuinely unexpected exceptions — not the already-handled Redis/S3 hiccups above, which just log a warning — raise a separate Slack alert, so a real bug surfaces immediately instead of waiting on a bug report.
- → The dark/light toggle in the nav is a real preference, persisted in the browser — light by default regardless of your system setting.
- → A Pest feature test suite — real HTTP requests against real routes, covering all of the above — fully isolated (in-memory SQLite, faked mail/queue/HTTP), so it needs no real Redis, mail server, or Turnstile account to run.
Infrastructure
- → Fully Dockerized — nginx and PHP-FPM in one container (via supervisord), plus MySQL, Redis, and LocalStack as separate services, for local dev and production alike.
- → The CV download button streams the PDF straight from S3 (LocalStack-backed), with the bucket and object provisioned by Terraform rather than uploaded by hand.
- → Runs on a Hetzner VPS behind Cloudflare, terminating TLS twice — once at Cloudflare's edge, once again at the origin via a Cloudflare Origin CA certificate.
Performance & accessibility
- → Lighthouse scores 0.3s LCP, 0 CLS, 0ms blocking time — critical CSS is inlined and everything else deferred, below-the-fold sections use content-visibility: auto so the browser skips laying them out until scrolled into view, and fonts have metric-matched fallbacks so nothing shifts when they load.
- → Checked against WCAG with axe-core (the same engine behind Lighthouse's own accessibility audit) — real landmarks, a skip-to-content link, and color contrast that actually passes, not just a clean score.
- → Structured data (JSON-LD), a real sitemap, and Open Graph tags — so search engines and link previews see something more useful than a bare title.
Delivery
-
→
Static analysis with PHPStan/Larastan at max strictness (level 9, zero errors) and Laravel Pint for style, plus a custom check that fails the build over a stray
dd(),dump(), orconsole.loganywhere in the codebase. - → composer audit and npm audit scan every dependency for known vulnerabilities, and gitleaks scans the full git history for accidentally-committed secrets — on every push, not just once.
- → GitHub Actions runs all of the above on every push to main, then deploys straight to the server over SSH only if every one of them is green — with a Slack notification either way, so I know a deploy landed (or failed) without checking the Actions tab. This page updates itself.
Visit #16,236, tracked in Redis. Yes, you can refresh.