Go backendAmber: 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
Web development · Go · landing pages
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
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 backendA 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 backendLink shortening with aliases and expiry, click statistics by day, browser and device, a token-protected dashboard. IP addresses are not stored.
Go backendOnline booking: free slots computed from service duration and working hours, double-booking protection, an admin panel. A fictional studio, demo.
Landing pageA landing page for a fictional interior lighting studio: warm palette, serif type, SVG illustration, FAQ and a demo form. Responsive, no external images.
Landing pageA 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.
Landing pageA landing page for a fictional one-day conference: poster typography, schedule, placeholder speakers, terms, a demo registration form.
Go backendAn 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 backendA background job queue: priorities, delayed and cron jobs, retries with backoff and jitter, dead-letter, idempotency keys, leases with fencing, Prometheus metrics.
Go backendRealtime 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 backendAn 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 backendA 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.
Landing pageA 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.
Go backendA 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 backendAn 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.
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.
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.
CLI toolA 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.
SiteA 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.
Web appA 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.
Landing pageA 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.
SiteA 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.
Landing pageA 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.
03 · Process
We clarify the task, the audience and the constraints. If you do not need a site, I will say so right away.
Scope, timing and what counts as done. In writing, no surprises.
Short iterations: every intermediate result can be opened and tried.
Tests, mobile screens, accessibility, load on the form and the API.
A Docker image or static files, run instructions, code handover.
04 · Contact
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.exampleThe address is a placeholder on a reserved domain for now: mail sent to it is not delivered.