Your Name

visitors

← All projects

This portfolio

A statically prerendered SvelteKit site with a live visitor counter served by a small Go API, verified and deployed by GitLab CI.

Client
Personal project, web development
Period
2026
My role
Sole developer — design, frontend, backend and delivery
Stack
  • SvelteKit
  • TypeScript
  • Go
  • PostgreSQL
  • GitLab CI
  • Playwright

View the source code

Problem

Recruiters and hiring engineers need one link that shows both my experience and how I build software. Most of my professional work is under NDA, so the site itself has to be the code sample.

What I built

  • Frontend: SvelteKit with every page prerendered to static HTML, typed content modules and Markdown case studies, light and dark themes from the system setting, and accessibility checks in the test suite.
  • API: a Go service that stores a visitor count in PostgreSQL, streams changes over Server-Sent Events and limits abuse with in-memory per-IP limits.
  • Delivery: GitLab CI lints, type-checks, builds and tests every change against a local build, then deploys the tested artifact to Netlify from main.
Architecture of this portfolioGitLab CI builds and tests the SvelteKit site and deploys it to Netlify. The browser loads static pages from Netlify and calls the Go API on Render, which stores the visitor count in PostgreSQL on Neon and streams updates back over Server-Sent Events. Render deploys the API from the repository on push.GitLab CIlint · test · buildNetlifyprerendered SvelteKitBrowservisitorGo APIRender · api.<domain>PostgreSQLNeondeploypagesGET · POSTSSESQL
Static pages from Netlify; a live count from the Go API.

Outcome

Lighthouse (mobile settings, median of three runs against the production build) scores 99 for performance and 100 for accessibility and SEO on every page; the Lighthouse budget (npm run lighthouse) fails if any category drops below 95. Automated WCAG AA checks run on every page in both themes in Chromium, Firefox and WebKit.

Placeholder: add what you learned while building it.