Or "Backend is the new frontend". A story of a totally over-engineered personal website that uses a Go binary running in Docker container on a lightweight Kubernetes installation as a "frontend".
(TV journalism) • Lived in 5 countries • In Berlin since 2019 • SRE at Le Wagon (Ruby, Rails, Kubernetes, code sandboxing) • Writer at Evil Martians https://evl.ms/blog github.com/progapandist twitter.com/progapandist
full terminal to the frontend • Xterm.js — powers Terminal in VS Code, Hyper, etc… Full support for ANSI • Svelte.js because I wanted to try out smth new • Parcel.js to bundle with zero config • 100 lines of full “frontend” code in one file, mostly to handle WebSocket connections • WebSocket messages are our STDIN/STDOUT • Send every keystroke as a binary message
and the hell out of a server. Or mine my crypto! • Not unless we can control the environment you PTY into • Alpine Linux! • No network • Limit resources Docker
k8s with Traefik ingress • docker:stable-dind for sidecar (to run user sandbox) • 1 Go binary for HTTPS/WSS server • 1 Go binary for TUI app • 2 Docker images • Survived Reddit