Ibrohim.dev

Uses

Everything that actually runs this site.

Not an aspirational stack - the real contents of the three repositories delivering this page. You can check every line of it against the site you are reading it on.

Server and deploy

Hetzner VPS
Ubuntu 24.04, amd64 - one machine, everything on it
Docker Compose
Five services on one machine: site, admin, API, database, proxy
Caddy
Reverse proxy and Let’s Encrypt certificates, automatically
GitHub Actions → GHCR
Every push builds an image, runs the tests and ships over SSH

Backend

Go
The REST API - one compiled binary, no runtime dependencies
chi
A small router; no framework underneath it
PostgreSQL 16 + pgx
The single source of truth; never exposed to the internet
sqlc
Generates Go from SQL - not an ORM, I write the queries

Frontend

Next.js 15 (App Router)
With ISR: content comes from the database, pages stay static
React 19 + TypeScript
Server components first
Tailwind CSS 4
Design tokens as CSS variables
next-intl
uz and en, paired through hreflang and a translation key
MDX + Shiki
Post bodies are MDX in the database, highlighted on the server

Quality and observability

Vitest
Front-end unit tests; they run in CI before the build
go test
Unit and integration tests against a real PostgreSQL
Umami
Self-hosted analytics; no third-party scripts
Telegram bot
An ops bot in its own container - status, notifications, alerts

When the list changes, this page changes first.