Web development · Go · landing pages

Websites that open fast and do not break

I build clean landing pages and sites with a real Go backend: API, database, auth, tests, Docker. Below are working projects with screenshots and write-ups; each one has a run command.

01 · Projects

What I have built

Almost all examples are demos: fictional brands, demo data. The exception is one delivered client site (the client is not named). The code lives in private repositories and is shown on request.

Go backend

Amber: kanban board

A multi-user kanban board: sign-up, boards, columns, drag-and-drop cards. Go + SQLite without CGO, the front end is embedded in the binary.

  • Go
  • SQLite
  • Docker
Go backend

Short: link shortener

Link shortening with aliases and expiry, click statistics by day, browser and device, a token-protected dashboard. IP addresses are not stored.

  • Go
  • SQLite
  • Docker
Go backend

Appointment booking

Online booking: free slots computed from service duration and working hours, double-booking protection, an admin panel. A fictional studio, demo.

  • Go
  • SQLite
  • Docker
Landing page

Halftone: lighting studio

A landing page for a fictional interior lighting studio: warm palette, serif type, SVG illustration, FAQ and a demo form. Responsive, no external images.

  • HTML
  • CSS
  • JS
Landing page

Kill Switch: subscription tracker

A landing page for a fictional SaaS product: dark gradient hero, a UI mock-up in CSS, pricing, FAQ, a demo form. All prices and names are made up.

  • HTML
  • CSS
  • JS
Landing page

Small Scale: conference

A landing page for a fictional one-day conference: poster typography, schedule, placeholder speakers, terms, a demo registration form.

  • HTML
  • CSS
  • JS
Go backend

Pulse: uptime monitor

An uptime monitor: scheduled HTTP and TCP checks, uptime, p50/p95, an incident detector, a live SSE dashboard and a public status page. Go + SQLite without CGO.

  • Go
  • SQLite
  • SSE
  • REST API
  • Docker
Go backend

Conveyor: job queue

A background job queue: priorities, delayed and cron jobs, retries with backoff and jitter, dead-letter, idempotency keys, leases with fencing, Prometheus metrics.

  • Go
  • SQLite
  • REST API
  • SSE
  • Prometheus
  • Docker
Go backend

Rooms: realtime chat and board

Realtime rooms: chat with SQLite history, an online list, a typing indicator, a shared board with strokes and cursors, anonymous nicknames. WebSocket (RFC 6455) written on the stdlib.

  • Go
  • WebSocket
  • SQLite
  • Canvas
  • Docker
Go backend

Sluice: API gateway

An API gateway on the pure stdlib: host/prefix routes from a JSON config with hot reload that keeps connections alive, round-robin and least-conn balancing, health checks, a per-node circuit breaker, retries of idempotent requests, rate limiting, hashed API keys, Prometheus metrics and a live SSE dashboard.

  • Go
  • stdlib only
  • Reverse proxy
  • Circuit breaker
  • Token bucket
  • SSE
  • Prometheus
  • slog
  • Vanilla JS
  • embed
  • Docker
  • GitHub Actions
Go backend

Card Index: notes with search

A Markdown notes base on Go and SQLite: [[wiki]] links with backlinks and a link graph, FTS5 full-text search (bm25, highlighting, simplified Russian morphology), version history with its own diff, autosave with conflict resolution, .md export and import.

  • Go
  • SQLite
  • FTS5
  • bm25
  • modernc.org/sqlite (no CGO)
  • REST API
  • Markdown (custom safe renderer)
  • SVG force-layout
  • Vanilla JS
  • embed
  • Docker
  • GitHub Actions
Landing page

OKSO T1: 3D landing page

A landing page for a fictional air sensor (demo): the object is drawn by one fragment shader on plain WebGL2 with no libraries, four SDF shapes morph on scroll, with an SVG fallback, reduced-motion support and a pause when off screen.

  • HTML5
  • CSS3
  • Vanilla JS
  • WebGL2
  • GLSL ES 3.00
  • Raymarching/SDF
  • Scroll choreography
  • GitHub Actions
Go backend

Raft KV: a key-value store on Raft

A from-scratch teaching implementation of Raft on the pure stdlib: leader election, log replication, quorum commit, a log and term/vote on disk with fsync, snapshots with compaction, linearizable reads (read-index) and follower-to-leader redirects. It is tested with a deterministic network and time simulator that checks linearizability; the dashboard can kill the leader and cut the network (demo).

  • Go
  • Raft
  • Distributed systems
  • Consensus
  • stdlib only
  • HTTP/JSON
  • SSE
  • WAL + fsync
  • Snapshots
  • Linearizability
  • Deterministic simulation testing
  • Vanilla JS
  • Docker
  • GitHub Actions
Go backend

Keyring: an authentication service

An authentication and authorization service in Go: EdDSA JWTs with key rotation and JWKS, refresh tokens with rotation and theft detection, TOTP 2FA (RFC 6238) with backup codes, RBAC, lockout on brute force, password reset by a one-time token, an audit log, a device list, openapi.yaml. Not independently audited, not a production IdP.

  • Go
  • stdlib crypto
  • SQLite
  • modernc.org/sqlite (no CGO)
  • JWT EdDSA/Ed25519
  • JWKS
  • PBKDF2
  • TOTP
  • RBAC
  • REST
  • OpenAPI 3
  • Vanilla JS
  • embed
  • Docker
  • GitHub Actions
Go backend

Ledger: personal finance tracker

Personal finance tracking: accounts in different currencies with manual exchange rates, income, expenses and transfers, budgets, payments on a cron-like schedule, CSV import with a preview, reports. Money is stored only in integer minor units, users' data is isolated, and the charts are drawn in SVG with no library. Go + SQLite with a Nuxt 4 front end.

  • Go
  • SQLite
  • modernc.org/sqlite (no CGO)
  • REST API
  • Nuxt 4
  • Vue 3
  • TypeScript
  • Pinia
  • SVG charts
  • vitest
  • ESLint
  • Docker
  • GitHub Actions
  • PBKDF2
  • CSV import/export
Go backend

Pixel Wall: a shared canvas

A shared 256x256 canvas in the spirit of r/place: 16 colors, a cooldown per session and IP, an own WebSocket layer on the stdlib (RFC 6455) with a binary protocol (4 bits per pixel), a snapshot plus deltas, a snapshot with a journal and recovery, a timelapse, zoom and pan, a minimap, PNG export and admin tools. A side project.

  • Go
  • stdlib only
  • WebSocket
  • Canvas 2D
  • Vanilla JS
  • embed
  • Binary protocol
  • Snapshot + journal
  • Docker
  • GitHub Actions
CLI tool

GitPulse: git repository analytics

A Go CLI that analyzes git repositories with no external dependencies (only git is needed): stats with colors and sparklines in the terminal, report, a self-contained HTML report with an activity heatmap, churn and hot files, author contributions, bus factor per directory, code growth by language and quiet periods (light and dark themes), diff-hotspots between revisions and a local serve on 127.0.0.1. History is read as a stream through git log -z --numstat -M. A side project.

  • Go
  • stdlib only
  • CLI
  • git
  • html/template
  • SVG
  • ANSI
  • os/exec
  • GitHub Actions
  • Docker
Site

Multi-page legal services website

A delivered website for a legal and expert-appraisal firm built with Nuxt 4: 65 server-rendered pages, JSON-LD markup and 301 redirects from the previous site. Lead requests go through a server endpoint that checks Origin, caps body size and rate-limits clients.

  • Nuxt 4
  • Vue 3
  • TypeScript
  • Bootstrap 5
  • Zod
  • Vitest
  • Playwright
  • Docker
  • GitHub Actions
Web app

Bad Club: seat booking for a gaming coworking space

A demo app on Vue 3, Express and SQLite: an interactive hall map with seat booking, a user account and an admin panel with a layout editor. Passwordless sign-in via a one-time e-mail code.

  • Vue 3
  • Vite
  • Pinia
  • Vue Router
  • GSAP
  • Express
  • node:sqlite
  • JWT (httpOnly cookie)
  • Resend
Landing page

Dovod: expert-firm landing concept

A Nuxt 4 landing concept for a fictional expert-appraisal firm: service areas, a consultation form with a phone mask, a reviews carousel and a policy page. The company, reviews, figures and contacts are made up; the form sends nothing.

  • Nuxt 4
  • Vue 3
  • TypeScript
  • CSS
  • GitHub Actions
Site

Catalog of 10 niche demo landing pages

A Vue catalog of ten standalone landing pages for different small-business niches, each with its own palette, fonts and section structure. Every landing loads as a separate chunk; all content is demonstration content.

  • Vue 3
  • Vue Router 4
  • Vite 8
  • GitHub Actions
Landing page

Kvarts: dental clinic landing concept

A single-page landing concept for a fictional dental clinic in the Liquid Chrome Dark style: glass cards, chrome headings and a canvas-drawn 3D tooth blob. One HTML file with no build step or dependencies.

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

02 · Engineering

How the Go projects are built

Each of the thirteen Go projects (twelve backends and one CLI tool) has a component diagram, numbered data flows, the decisions made and honest trade-offs.

03 · Process

How we will work

  1. 01

    Talk

    We clarify the task, the audience and the constraints. If you do not need a site, I will say so right away.

  2. 02

    Agreement

    Scope, timing and what counts as done. In writing, no surprises.

  3. 03

    Build

    Short iterations: every intermediate result can be opened and tried.

  4. 04

    Check

    Tests, mobile screens, accessibility, load on the form and the API.

  5. 05

    Launch

    A Docker image or static files, run instructions, code handover.

04 · Contact

Tell me about your project

Describe what you need and leave your email address. I will reply by email.

Email: hello@ewsirdev.example

This is a static copy of the site with no server behind it, so the form is switched off. Please write an email instead.

hello@ewsirdev.example

The address is a placeholder on a reserved domain for now: mail sent to it is not delivered.